Course Number: CMPT 120
Course Title: Introduction to Computing Science and Programming I
Credit Hours: 3 Vector: 3-0-0
Course Description
An elementary introduction to computing science and computer programming, suitable for students with little or no programming background. Students will learn fundamental concepts and terminology of computing science, acquire elementary skills for programming in a high-level language and be exposed to diverse fields within, and applications of computing science. Topics will include: pseudocode, data types and control structures, fundamental algorithms, computability and complexity, computer architecture, and history of computing science. Treatment is informal and programming is presented as a problem-solving tool.
Prerequisite: BC Math 12
Recommended: None.
Corequisite: None.
Special Instructions: None.
Course(s) to be dropped if this course is approved:
CMPT 101-4 and CMPT 201-4 are proposed to be replaced by the new three-course sequence CMPT 120-3, CMPT 125-3, CMPT 225-3.
At present, students enter CMPT 101 with diverse backgrounds and expectations. A large proportion of students have little or no exposure to programming, and a similarly large fraction have written substantial programs or written programs in more than one language. This creates a problem in choosing a rate and depth of coverage for the course. CMPT 120 is designed for those with little or no exposure to computing science and programming, with a bypass mechanism for those with substantial prior experience.
Will this be a required or elective course in the curriculum; probable enrolment when offered?
Indicate Semester and Year this course would be first offered and planned frequency of offering thereafter.
Which of your present CFL faculty have the expertise to offer this course? Will the course be taught by sessional or limited term faculty?
Almost all present faculty could teach this course. Sessionals or limited term faculty may on occasion teach a parallel section to that taught by a CFL faculty member serving as course champion.
Are there any proposed student fees associated with this course other than tuition fees?
Is this course considered a `duplicate' of any current or prior course under the University's duplicate course policy? Specify, as appropriate.
Note: Senate has approved (S.93-11) that no new course should be approved by Senate until funding has been committed for necessary library materials. Each new course proposal must be accompanied by a library report and, if appropriate, confirmation that funding arrangements have been addressed.
Provide details on how existing instructional resources will be redistributed to accommodate this new course. For instance, will another course be eliminated or will the frequency of offering of other courses be reduced; are there changes in pedagogical style or class sizes that allow for this additional course offering.
This course will use instructional resources currently used for CMPT 101 as well as new resources made available through the Double the Opportunity (DTO) program.
Does the course require specialized space or equipment not readily available in the department or university, and if so, how will these resources be provided?
No.
Does this course require computing resources (e.g. hardware, software, network wiring, use of computer laboratory space) and if so, describe how they will be provided.
This course will use instructional resources currently used for CMPT 101 as well as new resources made available through the Double the Opportunity (DTO) program.
Unit |
Week |
Comp. Sci. |
Algorithms |
Prog. Lang. |
Assignment/Examples |
1. |
1 |
Sketch of CS Intro of course |
Familiar Algs. (e.g., manual arithmetic) +
non-obvious examples |
Psuedo-code+ real example |
Type, compile, run, submit a given sample program |
2. |
1 |
Computer, program, programming language, OS, application program |
Examples of computing with a sequence of integer calculations |
Int type (values + operators);variables and assignment, sequencing, very simple output |
Program with sequence of calculations and simple output |
3. |
1 |
RAM model of computation |
Simple conditionals |
Boolean type & simple expressions; simple
if-then/-else blocks |
Program with output depending on input and decisions by user |
4. |
1 |
RAMs and real computers |
Iteration, max/min/sum linear search |
Iteration (while/for) loops, 1-dim array |
Compute max/min/sum linear search |
5. |
1 |
File systems, OS, history of CS as a science |
Basic file I/O |
Examples on file I/O |
|
6. |
1 |
Binary encoding |
Binary and other bases, binary arithmetic |
EvaluatingBooleans, nesting conditionals |
Base conversion |
7. |
1 |
Computable functions |
Collections, dot production |
2-dim arrays |
Scalar x vector, dot product |
8. |
1 |
Problem decomposition & solving
strategies |
Basic graphics |
Library, procedures parameter passing |
Drawing/moving simple objects, bar-graphs |
9. |
1 |
Floating point numbers, errors |
Numerical methods |
Real type |
mean/std.dev/draw curves |
10. |
1 |
Non-computable functions |
String processing reverse |
String type, ASCII |
String processing |
11. |
1 |
Correctness |
Algorithmic paradigms |
Programming languages |
|
12. |
1 |
Time complexity |
Ordering, selection/insertion sort |
Programming languages |
Implementation of sorting algorithms |