Physics & Computer Science

CP104: Introduction to Programming - Fall 2025

Course schedule, methodology, assessments, lab attendance and exam policies have been planned based on current public health guidelines. Should these guidelines change, adjustments will be communicated to students.

An introductory course designed to familiarize the student with modern software development techniques. Emphasis is on problem-solving and structured program design methodologies. Programming projects are implemented in a widely used high-level language.

3 lecture hours, 2.5 lab hours
Credit: 0.50

Section Campus Days Times Room Instructor
A Waterloo MWF 08:30 AM - 09:20 AM BA201 Mr. David Brown
B Waterloo MWF 10:30 AM - 11:20 AM BA201 Mr. David Brown
IC1 Int College, Waterloo -
ICA Int College, Waterloo -
L1 Waterloo M 03:30 PM - 05:20 PM BA113 Dr. Heider Ali
L2 Waterloo T 02:30 PM - 04:20 PM BA113 Dr. Heider Ali
L3 Waterloo R 02:30 PM - 04:20 PM BA113 Ms Xuyang Ma
L4 Waterloo F 11:30 AM - 01:20 PM BA113 Dr. Heider Ali
MC1 Milton MW 10:00 AM - 11:20 AM MAC128 Dr. Saiqa Aleem
ML1 Milton W 04:00 PM - 05:50 PM MAC117 Mr. David Brown
VA1 Virtual - Mr. Muhammad Malik

Course Overview and Approach

Course Tools and Learning Materials

Items
Item Purchase Cost Notes
Textbook:
Textbook CoverThe textbook: Starting Out with Python
By: Tony Gaddis
ISBN-13 978-0137619139
Required $52.40 CAD This is an electronic version available through MyLearningSpace .
You must opt out of using the textbook if you do not want to pay for it. The last opt out date is .
Previous editions of the text may be used.
Interactive Learning Tool: ZyBook Optional $64.00 USD
~ $90.00 CAD
See: ZyBook

You are required to have a personal computer capable of running the Python programming language and the Eclipse / PyDev IDE (Integrated Development Environment). Windows, Mac, and Linux are all appropriate operating systems for this on desktop or laptop machines. Chromebooks are not appropriate.

Python is a programming language used extensively on the World Wide Web. Eclipse is an Integrated Development Environment (IDE) program. Together with the PyDev plug-in it eases the task of writing and executing programs written in Python. Python, Eclipse, and PyDev are all freely available from the Internet, and we provide instructions for downloading and installing them in the Resources section of this page.

You are responsible for storing all your assignment and lab work on your own memory sticks, Laurier network storage, the cloud, or other media. We strongly suggest that you keep at least two copies of your work at all times.

Student Evaluation

You must pass the final exam in order to pass the course. A pass is defined as 50%.

If you pass the final exam, the following evaluation is applied:

Evaluation
Assessment Weighting
Assignments 25%
Labs 10%
Midterm 20%
Final Exam 45%
or
Zybook 5%
Final Exam 40%

Schedule

Note: this schedule is subject to change. All times are based upon Eastern Standard Time - i.e. Waterloo, ON time.

Week Starting Labs
Due: 23:59 Friday
Assignments
Due: 23:59 Saturday
Other
1 1: Introduction
Due:
2 2: Problem Solving
Due:
3 3: Formatted Output
Due:
1: Simple Programs
Due:
4 4: Functions and Libraries
Due:
2: Simple Problems
Due:
5 5: Decisions
Due:
3: Functions
Due:
6 Reading Week
7 6: Repetition - For
Due:
4: Decisions
Due:
8 7: Repetition - While
Due:
5: for Loops
Due:
9 8: Lists
Due:
6: while Loops
Due:
10 9: Strings
Due:
7: Lists
Due:
11 10: Files
Due:
8: Strings
Due:
12 11: 2D Lists
Due:
9: Files
Due:

University and Course Policies

Resources

MyLearningSpace
Laurier Library
Study Skills and Course Support
writing centre, math centre, academic advising, study skills/supplemental instruction, accessible learning
CP104 Software Installation
Instructions for installing CP104 course software at home.
Using Eclipse / PyDev
An introduction to creating projects in Eclipse / PyDev.
PyDev Problems
Some typical problems when using PyDev.
A Free Textbook
How to Think Like a Computer Scientist: Learning with Python: a free textbook available for downloading.
Python Library Reference
This library reference manual documents Python's standard library, as well as many optional library modules.
Style Guide for Python Code
A style guide for Python from the creator of Python.
http://wiki.python.org/moin/
The Python wiki.

The educational materials developed for this course, including, but not limited to, lecture notes and slides, handout materials, examinations and assignments, and any materials posted to MyLearningSpace, are the intellectual property of the course instructor. These materials have been developed for student use only and they are not intended for wider dissemination and/or communication outside of a given course. Posting or providing unauthorized audio, video, or textual material of lecture content to third-party websites violates an instructor's intellectual property rights, and the Canadian Copyright Act. Recording lectures in any way is prohibited in this course unless specific permission has been granted by the instructor. Failure to follow these instructions may be in contravention of the university's Code of Student Conduct and/or Code of Academic Conduct, and will result in appropriate penalties. Participation in this course constitutes an agreement by all parties to abide by the relevant University Policies, and to respect the intellectual property of others during and after their association with Wilfrid Laurier University.

© 2025 David Brown. All Rights Reserved.