Ryerson
University
Department of Computer Science
CPS125 �
Digital Computation and Programming
Course Outline and Course
Management Form (Winter 2010)
Professors
Dr.
Maryam Davoudpour |
Dr.
Cherie Ding |
Bart
Gajderowicz |
Dr.
Denis Hamelin |
Dr.
Joshua Panar |
Dr.
Marcus Santos |
Dr.
Hamid Timorabadi |
Dr.
Isaac Woungang |
Course
Description:
Digital Computation and Programming. The C
programming language is used to develop good programming techniques.
Topics covered include: C program form, language statements,
pseudo-code algorithmic representation, numeric data types, flow of
control with selection and repetition, standard C libraries,
functions and call modes, arrays, pointers, sorting, matrix
operations, character and string data types, dynamic storage,
structures and linked lists, file I/O. Only regular first year
students from the Faculty of Engineering and Applied Science may
preregister for this course.
Course
Format:
3 weekly lecture hours and 2 weekly lab hours.
Course
Websites:
The
official course website (www.courseweb.ca/cps125)
and
your professor's website for specific section information. (must be
consulted at least once a week) .
The example programs website can
be found at c.ihypress.ca.
Course
Texts:
�Hanly,
J. R. & Koffman, E. B. (2010), Problem
Solving and Program Design in C � Custom Edition for Ryerson
University,
Boston: Pearson Custom Publishing. [mandatory]
�CPS125 Lab
Manual
(http://www.cs.ryerson.ca/dhamelin/cps125/labs/manual.html).
Optional
lab references:
�Academic
Computing Services (2004), User's
Guide to Academic Computing and the Internet,
Toronto: Ryerson University Bookstore. Also
available on line
�If your lab uses the facilities of the
Department of Computer Science (ENG Building), you will need the
User Guide to DCS Facilities.
Schedule of activities
(the material may not necessarily be covered in the exact order given)
Week
# |
Contents / Topics |
Format |
Readings
in |
Example Programs to Review |
Labs, tests and assignments |
---|---|---|---|---|---|
1 |
Course introduction. Computer and computing fundamentals: History of computing, computer architecture, networks, software engineering, programming languages. |
Lecture |
Chapter 1 |
|
NO LAB THIS WEEK |
2 |
Introduction to C: Basic structure, comments, formatting output, escape sequences, debugging. |
Lecture |
Chapter
2 |
Section
01 |
NO LAB THIS WEEK |
3 |
Variables, arithmetic operations, math functions and I/O: Identifier names, constant macros, arithmetic operators and expressions, evaluating expressions, type casting, reading data from the keyboard, reading data from a file, math functions, writing output to a file. |
Lecture |
Chapter
2 |
Section
02 |
|
4 |
Decision Making (Selection): Logical expressions, if statement, switch statement. |
Lecture |
Chapter 4 |
Section
03 |
LAB #2 |
5 |
Loops I: Theoretical kinds of loops (counting loops, sentinel loops, EOF loops, input validation loops, general loops). C statements implementing counting loops. |
Lecture |
Chapter
5 |
Section
04 |
LAB
#3 |
6 |
Loops II: C statements implementing advanced loops. Nested loops. Practical applications. |
Lecture |
Chapter
5 |
Section
04 |
LAB
#4 |
7 |
Functions I: Concepts. Defining functions. Calling functions. Scope of names. Function with value arguments (no arguments/no result, 1 argument/no result, 2 or more arguments/no result, no arguments/1 result, 1 argument/1 result, 2 or more arguments/1 result). Number-Order-Types of arguments/parameters pairs. Case studies. |
Lecture |
Chapter
3 |
Section
05 |
LAB
#5 |
8 |
Functions II: Pointers. Using pointer parameters to simulate multiple results from a function. |
Lecture |
Chapter 6 |
Section
06 |
NO
LAB THIS WEEK |
9 |
Arrays I: Numerical arrays of one dimension. Passing such arrays to functions (pointers and arrays). Dynamic allocation of 1D numerical arrays. |
Lecture |
Chapter
8 |
Section
07 |
LAB
#6 |
10 |
Arrays II: Strings. Passing strings to functions (pointers and arrays). Dynamic allocation of strings. String functions (string.h). Character functions (ctype.h). Arrays of strings (Introduction to 2D arrays). |
Lecture |
Chapter 9 |
Section
08 |
LAB
#7 |
11 |
Arrays III: Multidimensional arrays. Passing such arrays to functions (pointers and arrays). Dynamic allocation of 2D arrays. Case studies. |
Lecture |
Chapter
8 |
Section
09 |
LAB #8 |
12 |
Structures: The typedef construct. Operations on structures. Structures and functions. Pointers on structures (arrow operator). |
Lecture |
Chapter
11 |
Section
10 |
LAB
#9 |
13 |
Advanced topics: Binary files. Command line arguments. Course review. Review exercises. |
Lecture |
Chapter 12 |
Section
12 |
LAB
#10 |
|
|
|
|
|
|
Evaluation:
Tests
and exams (75%) |
Labs
and assignments (25%) |
Important
notice: In order to pass the course, it is necessary to obtain 50% of
the tests and examination marks and 50% of the total marks. In
other words, your labs and assignments will not count if you
don't have the required minimum 50% (37.5/75) on tests and exams.
General
Information:
The
term tests and final exam will consist mainly of writing C functions
and programs. There may also be questions related to specifying the
exact output produced by the execution of a given program, finding
errors in a program, writing or choosing appropriate C statements or
filling the blanks in an incomplete program. All
tests must be written in pen, not pencil (unless specified otherwise
in the test announcement on the course website).
The labs will
be graded based upon attendance and your ability to demonstrate an
understanding of the problem and the relevant C language material.
You may be asked to demonstrate your preparation for the lab, asked
questions in the lab or asked to hand in the product of the lab.
Attendance for the entire lab period (2 hours) is required to avoid
being marked absent. Also, engaging in any activity other than the
one prescribed in the lab manual will give you an absentee status (a
zero mark) for that lab. Again, lab attendance and work is
*mandatory*. If you get three or more labs with a zero mark, you will
get an F grade. If you do have a valid reason to miss a lab (approved
by the FYCEO), you will make arrangements with your lab assistant to
submit your lab by email. Email submissions will not be accepted
under any other circumstance.
Assignments
consist of designing, writing and testing a program to solve a given
problem. Assignments and labs are to be done individually, and are
marked based on correctness of results, quality of documentation,
style and layout. Assignments and lab programs must contain the
following comment: /* This program is my own individual work */.
Copied work (both copy and original) will be given a grade of zero.
Involvement with plagiarism can ultimately result in course failure
and/or expulsion from the University in accordance with the Ryerson
Student Conduct Code. If you are found guilty of academic
misconduct the minimum penalty you will receive is a mark of zero on
the test, exam, paper, project or assignment in question and the
notation �Disciplinary Notice (DN)� will be placed on
your academic record and official transcript where it will remain for
eight years.
Late assignments will not be accepted for marking. Assignments must be submitted in the format detailed in class, and are to be submitted as directed by your professor. Assignments submitted in any other fashion are deemed void.
It
is important to know your CPS125 section number. Marks will be lost
on any evaluation missing proper identification, i.e. Family/Last
Name, Given/First Name, Section Number and Student Identification
Number (only if specifically requested).
Again,
a reminder that in order to pass the course, it is necessary to
obtain 50% of the (tests + examination) marks and
50% of the total marks and
having attended 8 labs or more.
Students
are responsible for logging on to the course website regularly, and
for following all course related instructions so transmitted.
Students should also check their email
(the ryerson.ca email as per academic policy) daily for any notices
from the professors and are responsible for following any directives
so sent.
As
course topics typically develop based on material from previous
lectures, students are strongly urged to attend ALL classes. If you
miss any material due to illness or other unavoidable circumstance be
sure to catch up before the next class.
Grades
on assignments, tests and labs will be available on the
Blackboard/RAMSS system or other means specified by your professor.
As per Ryerson regulation, final exam marks and grades will be
disclosed only by the registrar's office.
A faculty course
survey will be filled by the students during week 11.
Rules
and regulations:
The rules and regulations are for the
enjoyment and respect of everyone in the class including yourself.
Thank you very much for abiding by them:
Please refrain of
talking during the lecture. Everybody needs to hear correctly. If you
feel the urge to talk, you are invited to step out of the
classroom.
Please shut down you cell phone or put it in
vibrating mode during the lecture. If you are expecting an important
call, and do not have a vibrating function, please answer it
immediately and step out of the classroom to talk.
Please
arrive on time, class will promptly begin at :10. If you arrive late
or have to leave early, please do so quietly and be nice and close
the door behind you if it doesn't close automatically.
Please
be reminded that the Graduate Assistants (GAs) have the authority of
the professor in the lab sessions. You are to treat the GAs with
respect.
Emails to your professor should always begin with a greeting (Dear Dr. X, Dear Professor Y) and be written in proper English (no chat room lingo please). Your should also always indicate your name (family, given in that order), course (CPS125) and section number in all communications. You must always use your ryerson.ca email to communicate with your professor. Messages sent from other addresses (gmail, hotmail, ...) or missing proper identification as noted just above likely will not be read.
Changes:
Modifications
to the course procedures will be made in consultation with the
students and will be announced on the course website.