CPS188
Computer Programming Fundamentals
Home/Outline/CMF
HOME/CMF
Documents
DOCUMENTS
Toolbox
TOOLBOX
D2L/RAMSS
MY.TMU
Toronto Metropolitan University
Department of Computer Science
Land Acknowledgement
Toronto is in the 'Dish With One Spoon Territory'. The Dish With One Spoon is a treaty between the Anishinaabe, Mississaugas and Haudenosaunee that bound them to share the territory and protect the land. Subsequent Indigenous Nations and peoples, Europeans and all newcomers have been invited into this treaty in the spirit of peace, friendship and respect.
CPS188 - Computer Programming Fundamentals
Course Outline and Course Management Form [Winter 2024]
Professors
Dr. Maryam Davoudpour
Sections 18 to 22
maryam.davoudpour[at]torontomu.ca
Office Hours: See D2L
Dr. Denis Hamelin
Sections 01 to 09
dhamelin[at]torontomu.ca
Office Hours: See D2L
Dr. Sadaf Mustafiz
Sections 14 to 17
sadaf.mustafiz[at]torontomu.ca
Office Hours: See D2L
Dr. Isaac Woungang
Sections 10 to 13
iwoungan[at]torontomu.ca
Office Hours: MO 12-1 (ENG264)
Lab Assistants and Markers
Amir Mohammadi Bagha
Sections 8, 11, 12
amir.mohammadi[at]torontomu.ca
Mohsena Chowdhury
Sections 10, 13
mohsena.chowdhury[at]torontomu.ca
Nabeel Dahoo
Section 3
ahmadenabeel.dahoo[at]torontomu.ca
Chang Nian Chuy
Sections 18, 19, 21
chang.chuy[at]ryerson.ca
Sean Davies-Lee
Sections 14, 15, 16, 17
sdavieslee[at]torontomu.ca
Mohammad Emrul Hasan
Sections 02, 08,22
e1hasan[at]torontomu.ca
Austin Vuong
Sections 05, 06, 07, 20
austin.vuong[at]torontomu.ca
Murrium Zaheer
Sections 01, 04, 09
mzaheer[at]torontomu.ca
Calendar Description:
This course introduces concepts, theory and practice of computer programming, using the C programming language. It serves as a foundational course for higher year programming dependent engineering courses. In-depth emphasis is on program form/organization, pseudo-code, data types, conditional expressions, repetition, standard C libraries, casting,functions, arrays, pointers, sorting, recursion, matrix operations, dynamic storage, structures, linked lists, I/O. This is a required course in Biomedical, Computer, Electrical, Industrial, and Mechanical Engineering programs. (Students in other engineering programs can enrol with permission from their respective departments.)
Prerequisites:
None.
Course Organization:
4 weekly lecture hours and 2 weekly lab hours.
Course Websites:
See the official course website (https://www.cs.torontomu.ca/~cps188/), and your Professor's D2L shell (or website) for specific section information (details provided during the first class).
Recommended Textbook:
Jeri R. Hanly & Elliot B. Koffman (2016). Problem Solving and Program Design in C, 8th Edition*. Pearson. ISBN: 978-01342-4394-8
*Older editions or any other textbook with exercises in them are also recommended.
Lab References:
For the Computer Science Department labs: User's Guide to the Computer Science Department Labs
For the general TMUtorontomu labs: Academic Computing Labs
Learning Objectives:
At the end of the course, a successful student will be able to:
1. Have an understanding of what are computers, how they work, and how data is represented and processed inside them.
2. Use the basic and advanced functionalities of the C programming language.
3. Create algorithms to solve different engineering related problems.
4. Write programs in the C programming language to solve simple and complex engineering problems.
Course Evaluation:
Lab Practice & Assessment: 25%
Practical Midterm Test: 25%
Term Project: 25%
Final Examination: 25%
Grading Variation:
Cheating and plagiarism are a serious offenses. In accordance with the revised Policy 60 on academic integrity, a 10% penalty against your final course grade will be applied if submitted projects are found not to be original work in addition to the 0 (zero) mark which will be assigned for a non-original assignment.
Missed Evaluations:
Students are required to inform their instructors of any situation which arises during the semester which may have an adverse effect upon their academic performance, and must request any considerations and accommodations according to the relevant policies and well in advance. Failure to do so will jeopardize any academic appeals.

Medical certificates: If a student misses the deadline for submitting an assignment, or the date of an exam or other evaluation component because of illness, he or she must submit a TMU Health Certificate AND an Academic Consideration Request within 3 working days of the missed date.

Religious observance: If a student needs accommodation because of religious observance, he or she must submit a Request for Accommodation of Student Religious, Aboriginal and Spiritual Observance AND an Academic Consideration Request within the first 2 weeks of the class or, for a final examination, within 2 weeks of the posting of the examination schedule. If the required absence occurs within the first 2 weeks of classes, or the dates are not known well in advance as they are linked to other conditions, these forms should be submitted with as much lead time as possible in advance of the required absence. If you are a full-time or part-time degree student, then you submit the forms to your own program department or school (FYCSO). If you are a certificate or non-certificate student, then you submit the forms to the staff at the front desk of the Chang School.

In the event that the missed evaluation is the final exam, students are required, in addition to the forms previously mentioned, to petition for an INC grade with the Incomplete Grade Request Form. To be allowed to write the makeup exam, you will need that form and a verified Academic Consideration Request.
Accommodation Support:
Students who need academic accommodation support should register with the Academic Accommodation Support office (formerly called the Access Centre). Before the first graded work is due, registered students should inform their instructors through an Accommodation Form for Professors that they are registered with Academic Accommodation Support and what accommodations are required.
Communication with Students:
TMU's Email Policy states that only TMU e-mail accounts are to be used for communication with students. All students, including continuing education students, have access to TMU email through their my.torontomu.ca site, and this is the official way in which they receive communication. All students are required to register for and maintain this account. Emails sent from other accounts may not be answered!
Course Content (Schedule of Activities):
WeekContentsLecture
Slides
Book
Chapters
Lab
Activities

Jan 8-12
Overview of Computers and Programming
Computer Hardware. Computer Software. Software Development Method. Internal Data Representation. Professional Ethics.
LESSON #1 Chapter 1 NO LAB

Jan 15-19
Overview of C
C Language Elements. Variable Declarations and Data Types. Executable Statements. General Form of a C Program. Arithmetic Expressions. Formatting Numbers in Program Output. Interactive Mode, Batch Mode, and Data Files. Common Programming Errors.
LESSON #2 Chapter 2 NO LAB

Jan 22-26
Top-Down Design with Functions
Modular programming. Library functions. Functions without arguments. Functions with input arguments. Defining and using functions.
LESSON #3 Chapter 3 LAB #1

Jan 29-Feb 2
Control Structures I
Control Structures and Conditions. The if Statement. If Statements with Compound Statements. Decision Steps in Algorithms and More Problem Solving. Nested if Statements and Multiple-Alternative Decisions. The switch Statement.
LESSON #4 Chapter 4 LAB #2

Feb 5-9
Control Structures II
Repetition and Loop Statements. The while Statement. The for Statement. Conditional Loops. Loop Design. Nested Loops. The do-while statement and Flag-Controlled Loops. Iterative Approximations. How to Debug and Test Programs. Advanced Loops.
LESSON #5 Chapter 5 LAB #3

Feb 12-16
Pointers and Modular Programming
Pointers and the Indirection Operator. Functions with Output Parameters. Multiple Calls to a Function with Input/Output Parameters. Scope of Names. Formal Output Parameters as Actual Arguments.
LESSON #6 Chapter 6 LAB #4

Feb 19-23
Study Week
No classes. No labs.
- - -

Feb 26-Mar 1
Numerical Arrays
Declaring and Referencing Arrays. Array Subscripts. Arrays and Loops. Arrays and Functions. Searching and Sorting an Array. Parallel Arrays and Enumerated Types. Multidimensional Arrays. Advanced Arrays.
LESSON #7 Chapter 7 LAB #5

Mar 4-8
Strings and Plotting
Strings and Characters Operations. Concatenation and Whole-Line Input. String Comparison. String-to-Number and Number-to-String Conversions. Working with large data sets. Introduction to plotting with GNUPlot.
LESSON #8 Chapter 8 PRACTICAL MIDTERM TEST

Mar 11-15
Recursion
The Nature of Recursion. Tracing a Recursive Function. Recursive Mathematical Functions. Recursive Functions with Array and String Parameters. Problem Solving with Recursion. Case Studies.
LESSON #9 Chapter 9 LAB #6

Mar 18-22
Structure and Union Types + Binary Files
User-Defined Structure Types. Structure Type Data as Input and Output Parameters. Functions Whose Result Values Are Structured. Problem Solving with Structure Types. Parallel Arrays and Arrays of Structures. Union Types. Binary Files.
LESSON #10 Chapters 10, 11 LAB #7

Mar 25-29
Programming in the Large
Using Abstraction to Manage Complexity. Personal Libraries: Header Files and Implementation Files. Storage Classes. Modifying Functions for Inclusion in a Library. Conditional Compilation. Command-Line Arguments. Defining Macros with Parameters.
LESSON #11 Chapter 12 TERM PROJECT DUE

Apr 1-5
Advanced Data Structures
Dynamic Memory Allocation. Linked Lists. Stacks and Queues. Ordered Lists. Binary Trees.
LESSON #12 Chapter 13 LAB #8

Apr 8-12
Course Review
Course review and question period.
- - NO LAB
 
Academic Policies:
a. TMU Policies of Interest (torontomu.ca/senate/policies):
Policy 46 - Undergraduate Grading, Promotion and Academic Standing
Policy 60 - Student Code of Academic Conduct
Policy 61 - Student Code of Non-academic Conduct
Policy 134 - Undergraduate Academic Consideration and Appeals
Policy 135 - Examination Policy
Policy 150 - Accommodation of Student Religious Observance Obligations
Policy 157 - Student Email Accounts for Official University Communication

b. Obligations: Students need to inform faculty of any situation arising during the semester which may have an adverse effect upon their academic performance; they must request any necessary considerations (e.g. medical or compassionate), or accommodations [e.g. religious observance, disability (should be registered with the Access Center), etc.] according to policies and well in advance. Failure to do so will jeopardize any academic appeals.

c. Re-grading and Re-calculation: Must be requested within 10 working days of the return of the graded assignment to the class.
Academic Conduct:
In order to create an environment conducive to learning and respectful of others' rights, phones and pagers must be silenced during lectures, lab sessions and evaluations. Students should refrain from disrupting the lectures by arriving late and/or leaving the classroom before the lecture is finished.
Academic Misconduct:
According to the TMU policy 60 (see link above), academic misconduct includes, but not limited to: Plagiarism which is the claiming of words, ideas, artistry, drawings or data of another person. This also includes submitting your own work in whole or in part for credit in two or more courses.
Cheating
Misrepresentation of personal identity or performance
Submission of false information
Contributing to academic misconduct
Damaging, tampering, or interfering with the scholarly environment
Unauthorized copying or use of copyrighted materials
Violations of departmental policies or professional behavior
Violations of specific departmental or course requirements
Posting your work (like lab and project reports) online on sharing sites.

Committing academic misconduct will trigger academic penalties, including failing grades, suspension and possibly expulsion from the University. As a TMU student, you are responsible for familiarizing yourself with the conduct policies (torontomu.ca/academicintegrity).
Automatic Plagiarism Detection:
Turnitin.com is an originality detection and plagiarism prevention service to which TMU subscribes. It is a tool to assist instructors in determining the similarity between students’ work and the work of other students who have submitted papers to the site (at any university), internet sources, and a wide range of books, journals and other publications. While it does not contain all possible sources, it gives instructors some assurance that students’ work is their own. No decisions are made by the service; it generates an “originality report,” which instructors must evaluate to judge if something is original/plagiarized.

Students agree by taking this course that their written work will be subject to submission for textual similarity review to Turnitin.com. Instructors can opt to have student’s papers included in the Turnitin.com database or not. Use of the Turnitin.com service is subject to the terms-of-use agreement posted on the Turnitin.com website. Students who do not want their work submitted to this plagiarism detection service must, by the end of the second week of class, consult with their instructor to make alternate arrangements.

Even when an instructor has not indicated that a plagiarism detection service will be used, or when a student has opted out of the plagiarism detection service, if the instructor has reason to suspect that an individual piece of work has been plagiarized, the instructor is permitted to submit that work in a non-identifying way to any plagiarism detection service.
Use of Generative AI:
Students may use Generative AI (e.g. ChatGPT, Grammarly, Perplexity, DeepL Translator) for grammar correction only. Failure to stay within these limits will be considered a breach of Policy 60.
Non-Academic Conduct:
TMU's Student Code of Non-academic Conduct is described in Senate Policy 61 (see link above). Among many other infractions, the code specifically refers to the following as a violation: "Disruption of Learning and Teaching - Students shall not behave in disruptive ways that obstruct the learning and teaching environment".
Diversity and Inclusion Statement:
In this course I would like to create a learning environment that supports a diversity of thoughts, perspectives and experiences, and honors your identities (including race, gender, class, sexuality, religion, ability, etc.). For more information about our University's resources and services on Equity, Diversity, and Inclusion please visit torontomu.ca/equity
Wellbeing Support:
At Toronto Metropolitan University (TMU), we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis. If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:
  • Distress Line: 24/7 line for if you are in crisis, feeling suicidal or in need of emotional support (phone: 416–408–4357)
  • Good2Talk: 24/7-hour line for postsecondary students (phone: 1-866-925-5454)
  • Keep.meSAFE: 24/7 access to confidential support through counsellors via My SSP app or 1-844-451-9700
If non-crisis support is needed, you can access these campus resources:
  • Centre for Student Development and Counselling: 416-979-5195 or email csdc@torontomu.ca
  • Consent Comes First – Office of Sexual Violence Support and Education: 416-919-5000 ext: 553596 or email osvse@torontomu.ca
  • Medical Centre: call (416) 979-5070 to book an appointment
We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.
Copyright © 2024 Toronto Metropolitan University. All Rights Reserved.