The outline is available in the UWaterloo Outline Repository, and is duplicated here for convenience.

This is an offline copy which can be shared, archived, or embedded.
view original document online
If you require a PDF version for any reason please use your browser's function.

Published January 7, 2026

CS 114 Winter 2026 Principles of Computing for Science Section 001, 101, 102, 201


Class Schedule

Course Meet Days Meet Time Location Instructor(s)
CS 114 001 [LEC]
Tuesday, Thursday -
Jan 5 - Apr 6
02:30PM - 03:50PM DWE 1501
CS 114 101 [TUT]
Fridays -
Jan 5 - Apr 6
10:30AM - 11:20AM MC 4060
CS 114 102 [TUT]
Fridays -
Jan 5 - Apr 6
11:30AM - 12:20PM MC 4060
CS 114 201 [TST]
Monday -
Mar 2
07:00PM - 08:50PM
Scott King sfking@uwaterloo.ca
schedule data automatically refreshed daily

Instructional Team

Instructor

Gregor Richards, gkrichar@uwaterloo.ca

Coordinator

Scott Freeman King sfking@uwaterloo.ca

Instructional Support Assistants

cs114@uwaterloo.ca

Office Hours

We will hold office hours throughout the term.  This is an opportunity for you to talk with your instructor or an ISA, to ask questions about course material, assignments, or other topics. Student who make use of office hours usually get better grades; use them! The schedule is posted in Piazza and the course website.

Course Description

Calendar Description for CS 114

Introduction to basic imperative programming principles; programming concepts including functions, flow control, lists, arrays; numerical accuracy and efficiency; data analysis and general-purpose algorithms. Introduction to object-oriented programming concepts.

Learning Outcomes

By the end of this course students should be able to:
Given a clear and concise statement of a problem or task, write a program from scratch of up to a hundred lines of properly-formatted, tested, and documented Python code to solve the problem or carry out the task.
Write useful Python programs working with scientific data stored in common file formats.
Write programs that create plots, using Matplotlib.
Use various forms of iteration (for, while) in programs.
Describe the basic memory model for mutation of basic types, lists, and objects in Python.
Distinguish between constant, linear, quadratic and exponential running times of algorithms.
Explain the relative advantages and disadvantages of lists and dictionaries.
Use NumPy to work with numerical data in arrays.
Identify situations where recursion is an appropriate tool, and use it.

Tentative Class Plan

Week

Module coverage

Assessments

Jan 5–Jan 11

Module 1: Basics

No tutorial

Jan 12–Jan 18

Module 2: Making decision

Assignment 0: Friday, January 16th, 17:30
(Note: Assignment 0 does not contribute to your course grade.)
Normal tutorials start this week

Jan 19–Jan 25

Module 3: Repetition

Tutorial problem 1: Friday, January 23rd (MC2062, MC2063)

Jan 26–Feb 1

Module 4: Strings and lists

Assignment 1: Friday, January 30th, 17:30

Feb 2–Feb 8

Module 4, Module 5

Tutorial problem 2: Friday, February 6th (MC2062, MC2063)

Feb 9–Feb 13

Module 5: Sorting and dictionaries

Assignment 2: Friday, February 13th, 17:30

Feb 14–Feb 22

(Reading week)

Feb 23–Mar 1

In-class exercises and examples

Mar 2–Mar 8

Module 6: Files and plotting

Midterm exam: Monday, March 2nd, 19:00
Assignment 3: Friday, March 6th, 17:30

Mar 9–Mar 15

Module 7: AI

Tutorial problem 3: Friday, March 13th (MC2062, MC2063)

Mar 16–Mar 22

Module 8: Classes

Assignment 4: Friday, March 20th, 17:30

Mar 23–Mar 29

Extra material: Using Python outside of Jupyter

Module 9: Recursion

Tutorial problem 4: Friday, March 27th (MC2062, MC2063)

Mar 30–Apr 5

Module 9, Module 10: Efficiency

Assignment 5: Thursday, April 2nd, 17:30

Apr 6

Tutorials on Monday, April 6th
(Friday schedule)
Tutorial problem 5: Monday, April 6th (MC2062, MC2063)

(Final exam to be announced)

Required Materials & Technologies

Note: Any prices provided in course outlines are best estimates based on recent online prices and do not include shipping or taxes. Prices may vary between retailers.

This course has no additional costs for students.

Technology

Name of Technology Notes / Comments Required URL (student access) Price (CAD)
CS114 Website https://student.cs.uwaterloo.c... Required https://student.cs.uwaterloo.c... Free
Jupyter https://jupyter.math.uwaterloo... Required https://jupyter.math.uwaterloo... Free
Piazza https://piazza.com/class/mex12... Required https://piazza.com/class/mex12... Free
EdX Interactive Textbook https://online.cs.uwaterloo.ca... Optional / Supplemental https://online.cs.uwaterloo.ca... Free

Assessments & Activities

Course Grade
Component / Activity Date or Due Date Location / Submission Method Weight (%)
Assignments MarkUs 20%
Tutorial Problems In person, MarkUs 20%
Midterm Exam In person 20%
Final Exam In person 40%
Lecture Participation
Component / Activity Date or Due Date Location / Submission Method Weight (%)
Lecture Participation In person 100%

Notes:

  • Grades on any component, particularly exams, may be adjusted linearly to account for student performance. In particular, exams are expected to have a low median grade, and thus may be adjusted upwards. These adjustments will be announced on Piazza.

  • Students are expected to attend lectures. The lecture participation grade does not contribute to your course grade (the final grade for the course), but any adjustment to exam grades may be reduced or eliminated for students who do not regularly attend lectures, at the instructor's prerogative.

  • The weighted exam average is (20 × midterm + 40 × final) / 60.

  • The weighted programming average is (20 × assignments + 20 × tutorial problems) / 40.

  • You must pass both the programming portion and the weighted exam average portion of the course in order to pass the course.  If you do not pass both the programming portion and the weighted exam average, then your final grade is either the programming portion or the weighted exam average, whichever is lower.

  • All assignments are weighted equally, except for Assignment 0 which does not contribute to the final grade in the course.

  • All tutorial problems are weighted equally.

Late / Missed Content

  • Normally, late or missed content receives a 0% grade.

  • Students have the option of self-declaring a short-term absence, as described here: https://uwaterloo.ca/registrar/current-students/undergraduate-student-short-term-absences
    You must inform the ISC if you submit a short-term absence, as well as submitting the form. If you declare a short-term absence that overlaps a due time for an assignment, tutorial problem, or midterm exam:

    • Assignment: Your due time will be delayed by 48 hours.

    • Tutorial problem: The weight of the tutorial problem will be shifted to later tutorial problems, unless it's the final tutorial problem, in which case it will be shifted to the final exam.

    • Midterm exam: The weight of the midterm exam will be shifted to the final exam.

  • Other exceptions are only made for University-approved reasons, on a case-by-case basis and you must inform the ISC.

Assignment Screening

Measure of Software Similarities (MOSS) is used in this course as a means of comparing students' assignments in order to support academic integrity.

Generative AI

Generative artificial intelligence (GenAI) trained using large language models (LLM) or other methods to produce text, images, music, or code, like Chat GPT, DALL-E, or GitHub CoPilot, may only be used when explicitly allowed on an assignment in this course with proper documentation, citation, and acknowledgement. Permitted uses of and expectations for using GenAI will discussed in class and outlined on assignment instructions. Most course components do not permit the use of GenAI.

Recommendations for how to cite generative AI in student work at the University of Waterloo may be found through the Library.

Please be aware that generative AI is known to falsify references to other work and may fabricate facts and inaccurately express ideas. GenAI generates content based on the input of other human authors and may therefore contain inaccuracies or reflect biases. 

To protect the privacy and security of any data entered, students should use the University’s version of Co-Pilot and login with their UW ID. Data entered into other systems can be added to training sets, monitored, geolocated and even reproduced as output which may share private personal information or result in intellectual property breaches.  

In addition, you should be aware that the legal/copyright status of generative AI inputs and outputs is unclear. Exercise caution when using large portions of content from AI sources, especially images. More information is available from the Copyright Advisory Committee. 

You are accountable for the content and accuracy of all work you submit in this class, including any supported by generative AI. You should be able to readily demonstrate your knowledge of your submissions. To demonstrate your learning, you should keep your rough notes, including sources, research notes, brainstorming, drafting notes and prompts. You may be asked to submit these notes along with earlier drafts of your work, either through saved drafts or saved versions of a document. 

Administrative Policy

Assignments: Assignments will be submitted to MarkUs. Once you submit an assignment to MarkUs, you will receive an email consisting of basic tests that you passed or failed. Students should check their basic tests email to ensure that the code meets the specification exactly. We will not accept submissions that do not match our test output exactly. There will be no extensions on assignments. If ill, please complete a complete a Verification of Illness Form and contact the course coordinator to discuss alternate arrangements. Reweighting of assignments is not automatic even with a valid doctor's note and is up to the sole discretion of the instructor and coordinator to allow for reweighting. Remark requests for assignments can be made up to one week after the assignment has been returned by filling out the remark request form and submitting it to the appropriate drop box in our LEARN course shell.

Students are encouraged to reach out to campus supports if they need help with their coursework including: 

University Policy

Mental Health: At the University of Waterloo, we are dedicated to supporting your mental and emotional well-being. Our Counselling Services offer confidential support, including individual counselling, workshops, and crisis intervention.
If you're struggling, please reach out for help at 519-888-4096 or visit their website for more information.

Academic integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility.

Grievance: A student who believes that a decision affecting some aspect of their university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt, please be certain to contact the department’s administrative assistant who will provide further assistance.

Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for their actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.

Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes they have a ground for an appeal should refer to Policy 72, Student Appeals.

Note for students with disabilities and disabling conditions: The University of Waterloo recognizes its obligations under the Ontario Human Rights Code to accommodate students with known or suspected disabilities and disabling conditions (e.g. medical conditions, injuries, impacts of trauma such as from violence or discrimination) to the point of undue hardship. To support this obligation, AccessAbility Services (AAS) collaborates with all academic departments and schools to facilitate academic accommodations for students with disabilities and disabling conditions without compromising the academic integrity of the curriculum. If you believe you may require academic accommodations (e.g., testing accommodations, classroom accommodations), register with AAS as early in the term as possible by completing the online application. Students already registered with AAS must activate their accommodations for each of their courses at the beginning of each term using AAS' online system. If you require assistance, contact AAS by phone (519-888-4567 ext. 35082), email (access@uwaterloo.ca) or in-person (Needles Hall North, 1st Floor, Room 1401). 

Turnitin.com: Text matching software (Turnitin®) may be used to screen assignments in this course. Turnitin® is used to verify that all materials and sources in assignments are documented. Students' submissions are stored on a U.S. server, therefore students must be given an alternative (e.g., scaffolded assignment or annotated bibliography), if they are concerned about their privacy and/or security. Students will be given due notice, in the first week of the term and/or at the time assignment details are provided, about arrangements and alternatives for the use of Turnitin in this course.

It is the responsibility of the student to notify the instructor if they, in the first week of term or at the time assignment details are provided, wish to submit alternate assignment.