Computer Science

 

COMPUTER SCIENCE

 

The Department of Mathematics, Statistics and Computer Science offers five 3-credit courses in Computer Science at the 100-level (see course descriptions below):

CSCI 125 – Computer Programming in C
CSCI 128 – Computing Literacy and Coding for Problem Solving
CSCI 135 – Computer Application Technology
CSCI 161 – Introduction to Programming
CSCI 162 – Programming and Data Structures

 
CSCI 161 and 162
CSCI 161 and 162 are the foundation courses for students intending further study in Computer Science.

CSCI 161 is a required course for students completing an advanced major or honours program in mathematics; CSCI 162 is also recommended (though not required).  Either CSCI 161 or 125 (see below) is required for students completing a major, advanced major, or honours in physics; 161 is the normal choice.

CSCI 161 and 162 are minimum prerequisites for all upper-level computer science courses, other than 215, 255, 277, and 335, for which there are alternate prerequisites.

CSCI 125
CSCI 125 is a course cross-listed as ENGR 144, which is a required course for students in the Diploma in Engineering. Students interested in an introductory course in computer programming, but not interested in the engineering program, should choose CSCI 161 rather than 125.  The department of physics will permit students to use either CSCI 125 or 161 as its required computer programming course, but most physics students take CSCI 161 unless they are concurrently completing the Diploma in Engineering.

Students cannot be granted credit for both CSCI 125 and 161.

CSCI 128 and 135
CSCI 128 and 135 are usable in any program, except the Diploma in Engineering.  Students intending the BSc with advanced major or honours in computer science may use these courses as approved or open electives only.

 

Course Descriptions from the Current Academic Calendar:

125   Computer Programming in C
Using C/C++ language, this course introduces the fundamental principles of computer programming for solving engineering problems. Topics include flow control, modularity, structured programming, algorithms for searching and sorting, and the conversion of these algorithms to C/C++ programs, with the necessary testing and debugging. Credit will be granted for only one of CSCI 125 or CSCI 161. Cross-listed as ENGR 144. Three credits and a two-hour lab.

128   Computing Literacy and Coding for Problem Solving
This course introduces coding for everyday problem solving. Coding is introduced through multimedia computing including manipulation of images, sound and video. Intuitive programming languages, constructs and environment are used to introduce basic coding structures. The prevalence of computing in modern society is discussed. Students from all disciplines can develop their powers of coding for problem solving. B.Sc. Advanced Major and Honours students may only count this course as an approved or open elective. Three credits.

135   Computer Application Technology
This course enables students to use a variety of software tools to assist in their postsecondary studies and future careers. The course covers a broad range of information and communication tools essential for analyzing and presenting data, communicating
information, organizing and writing papers, and preparing talks, slide presentations and posters. Webpage management is introduced. Topics covered support students in education, business, humanities and the health/social/physical sciences. B.Sc. Advanced Major and Honours students may only count this course as an approved or open elective; there is no such restriction for students in Arts or Business programs. Credit will be granted for only of CSCI 135 or CSCI 235. Three credits.

161   Introduction to Programming
An introduction to computers, algorithms and programming. Topics include problem analysis, algorithm development, data representation, control structures, arrays, and file manipulation. Credit will be granted for only one of CSCI 161, CSCI 125, ENGR 144 or INFO 255. Three credits and a two-hour lab.

162   Programming and Data Structures
Continuing from the material in CSCI 161, this course covers memory management and data abstraction via classes and objects, and introduces the linear data structures lists, stacks, and queues. Structured programming is encouraged via modular development. Credit will be granted for only one of CSCI 162 and INFO 256. Prerequisite: CSCI 125 or 161. Three credits and a two-hour lab.

 

Please refer to Section 9.11 Computer Science in the Academic Calendar.

Click here to go to the Computer Science subject webpage.