Introduction to problem solving, the analysis and design of small-scale computational systems, and implementation using a procedural programming language.


  • Website has been converted to inactive mode. (some links should no longer be expected to work)
  • More recent offering can be found here.


  • Lectures begin on Thursday, May 6th, 2021
  • Last day to drop is Thursday, May 11th, 2021
  • Lectures end and last day to withdraw is Thursday, June 17th, 2021
  • Zoom through D2L
  • L01 TuTh 13:00-15:45


  • Tutorials will begin on MoTu May 5/6th, 2021
  • Zoom through D2L
  • IE: Pycharm an IDE for Python
  • T01 MoWe 13:00 - 14:50
  • T02 TuTh 10:00 - 11:50
  • T03 MoWe 15:00 - 16:50

Office Hours

  • Zoom through D2L
  • TuTh 12:00-12:50 or setup via email

Important Dates

  • University Closed for Victoria Day Monday, May 24th, 2021.
  • Midterm Exam: 19:00 - 20:30 (7:00pm-8:30pm) Friday, June 4th, 2021. (D2L)
  • Final Exam: 15:30-17:30 (3:30pm-5:30pm) Tuesday June 22, 2021. (D2L)

Top Hat

  • Join Code: XXXXXX
  • Use your UofC Account to access Tophat, not a CPSC account.

Textbook Resources

  • Starting Out with Python 5e
    • Optional: For those who appreciate a self-paced textbook to assist the process of learning to code. No content referenced directly in course. No exercises references either.
    • Digital ebook is only 5e option however, older versions like 4e/3e have hard-copy versions can be found.
    • Earlier version 3e/4e is just as good for our purposes.
    • Digital course preparation for textbook (Not tracked for assessment)
  • The Python Workbook 2e: A Brief Introduction with Exercises and Solutions (Amazon link, since bookstore doesn't currently have link listed - April 26th, 2021.)
    • Optional: For those who want a set of challenges for coding. Written by a UofC Faculty member Dr. Stephenson a professor for introduction to programming via Python courses for 10+ years. Has both challenges and solutions as a reference.

The due dates for the assignments and exercises can be found in the Assignments sections of this page.

Support Materials

  • Course Information Sheet (Outline)
  • Topic 1: Course Organization pdf
  • Topic 2: Introduction to Computer Science
    • Computer Science pdf
  • Topic 3: Programming
  • Topic 4: Information and Data
    • Information and Data pdf
  • Topic 5: Decisions
  • Topic 6: Repetition
    • Loop Types pdf
    • Loop Usage pdf
  • Topic 7: Functions
  • Topic 8: Structures
    • Lists Basics pdf
    • Lists Complex pdf
    • Dictionaries pdf
    • Dictionaries pdf
    • Strings pdf
  • Midterm Exam: 19:00 - 20:30 (7:00pm-8:30pm) Friday, June 4th, 2021. (D2L>
  • Topic 9: System
  • Topic 10: Classes and Objects
    • Classes and Objects pdf
  • Topic 11: Recursion
    • Recursion pdf
  • Topic 12: Flexible Topics
    • Areas of Computer Science pdf
    • Brief History pdf
  • Final Exam: 15:30-17:30 (3:30pm-5:30pm) Tuesday June 22, 2021. (D2L)


  • Python 3 (labs -> 3.6.8)
    • Python 3.9.4 is most recent and can be found here for home use
    • Install with 'customize' 'environment variable' option.
    • Check installed version with python -V and python3 -V commands in shell.
    • I prefer a 3.8.9 release due to TensorFlow support.
  • IE: Pycharm an IDE for Python
  • exercises and optional online IDE
  • Optional: Google Collab: interactive notebooks for python


  • Academic misconduct includes, but is not limited to, plagiarism, cheating, tampering or attempts to tamper with examination scripts, class work, grades and/or class records; failure to abide by directions by an instructor regarding the individuality of work handed in; the acquisition, attempted acquisition, possession, and/or distribution of examination materials or information not authorized by the instructor; the impersonation of another student in an examination or other class assignment; the falsification or fabrication of clinical or laboratory reports; the non-authorized tape recording of lectures. Please refer to Student Academic Misconduct Policy.
    If you are involved in an academic misconduct investigation, you will be contacted by the Department of Computer Science to schedule a meeting to discuss the case. Please do not contact your instructor or teaching assistant.

  • Guidelines for Avoiding Plagiarism
  • Assignment 1
    • Due Date: Friday, May 21st, 2021 23:59 (11:59 PM)
    • Topics: Variables, Decisions, Importing Libraries, Constants, Magic Numbers, Expressions, I/O, Types, Casting
  • Assignment 2
    • Due Date: Friday, May 28th, 2021 23:59 (11:59 PM)
    • Topics: Repetition, Functions
  • Assignment 3
    • Due Date: Friday, June 11th, 2021 23:59 (11:59 PM)
    • Topics: Data Structures, Files I/O, Arguments, Error Handling
  • Assignment 4
    • Due Date: Friday, June 18th, 2021 23:59 (11:59 PM)
    • Topics: Classes and Objects