Introduction to problem solving, analysis and design of small-scale computational systems and implementation using a procedural programming language. For students wishing to combine studies in computer science with studies in other disciplines.


  • Continuous Tutorial (CT) help will be provided by Teaching Assistants following a set schedule. TAs will only be avilable for the time that they are scheduled. TAs will be expected to leave when their scheduled time expires.

  • CPSC Account Passwords (IT Page)
  • Course material posted on this course website.
  • Exercises via (Invite link in D2L Content)
  • Community Discussion Boards via (Invite link in D2L Content)
  • Exams and Assignment Submission/Grading via D2L
  • Class interaction via TopHat (UCIT ID, not CPSC ID) - Do not sign in with high school or other institution TopHat login


  • Lectures begin on Monday, January 9th, 2023
  • Last day to drop is Thursday, January 19th, 2023
  • Lectures end and last day to withdraw is Wednesday, April 12th, 2023
  • CPSC 217 L01 TueThu 14:00-15:15 TI Forum
  • CPSC 217 L02 TueThu 15:30-16:45 TI Forum
  • CPSC 217 L03 MonWedFri 12:00-12:50 ST 145


  • Tutorials will begin on Monday/Tuesday January 16-17th, 2023
  • IE: Pycharm an IDE for Python here
  • CPSC 217 T01 MonWed 09:00-09:50 MS 160 Joweria Ekram
  • CPSC 217 T02 MonWed 10:00-10:50 MS 160 Joweria Ekram
  • CPSC 217 T03 MonWed 15:00-15:50 MS 160 Joweria Ekram
  • CPSC 217 T04 TueThu 12:00-12:50 MS 160 Namita Nair
  • CPSC 217 T05 TueThu 16:00-16:50 MS 160 Safeena Meghji
  • CPSC 217 T06 TueThu 17:00-17:50 MS 160 Aref Motamedi
  • CPSC 217 T07 TueThu 08:00-08:50 MS 160 Hosein Beheshtifard
  • CPSC 217 T08 TueThu 13:00-13:50 MS 160 Namita Nair
  • CPSC 217 T09 MonWed 18:00-18:50 MS 160 Naman Bhoj
  • CPSC 217 T10 TueThu 18:00-18:50 MS 160 Aref Motamedi
  • CPSC 217 T11 TueThu 19:00-19:50 MS 160 Hosein Beheshtifard
  • CPSC 217 T12 TueThu 09:00-09:50 MS 160 Joweria Ekram
  • CPSC 217 T13 MonWed 13:00-13:50 MS 160 Shanna Hollingsworth
  • CPSC 217 T14 MonWed 14:00-14:50 MS 160 Naman Bhoj
  • CPSC 217 T15 TueThu 15:00-15:50 MS 160 Safeena Meghji

Office Hours

  • MonWed 01:00-01:50 in -person ICT 712 (or setup via email - can use zoom link in D2L for these appointments) for other time (info in D2L Content)

Important Dates

  • Term Break: Sunday-Saturday, February 19-25th, 2023 (no L01/L02/L03).
  • University Closed for Family Day Monday, February 20th, 2023. (during Term Break, no office hours)
  • University Closed for Good Friday Friday, April 7th, 2023. (no L03)
  • University Closed for Easter Monday, April 10th, 2023. (no L03, no office hours)
  • Midterm Exam: Thursday, March 9, 2023 at 19:00-21:00 (7:00-9:00pm). [out-of-class activity]
  • Final Exam: Xday, December XXth, 2023 TBD. (registrar schedule during term)


  • Join Code: 002436
  • Use your UofC Account to access Tophat, not a computer science, former institution, or prior high school 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


  • Python 3 (labs -> 3.10.6)
    • Python 3.11.1 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.
  • IDE: Pycharm an IDE for Python here
  • exercises and optional online IDE here
  • Optional: Google Colab: interactive notebooks for python here


  • This section is expected to be expanded before term in Winter. (original posted 2020-05-17)

    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 Sec. K.3 in the University Calendar for complete information.
    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
  • SimpleGraphics
    • The SimpleGraphics library makes it easy to generate graphics output with Python.
    • - This is the library itself. Save it in the same folder as your exercise or assignment. You can look at the code in the file if you want to, but don't change it!
    • tutorial.pdf - A tutorial that describes how to draw with the SimpleGraphics library.
    • - A program that demonstrates the shapes available with the SimpleGraphics library.
  • Assignment 1
    • Due Date: Friday, February 3rd, 2023 23:59 (11:59 PM)
    • Topics: Variables, External Libraries, Function Usage, Expressions, Input, Output, Casting, Types
    • Assignment Description
  • Assignment 2
  • Assignment 3
    • Due Date: Friday, March 24th, 2023 23:59 (11:59 PM)
    • Topics: Functions, Lists, Strings
    • Assignment Description
  • Assignment 4
    • Due Date: Friday, April 14th, 2023 23:59 (11:59 PM)
    • Topics: Dictionaries, Lists, File Input/Output, Error Handling, Arguments
    • Assignment Description

Exercise Schedule

  • Completed via
  • Exercise 0: Friday, January 20th, 2023 23:59 (11:59 PM)
  • Exercise 1: Friday, January 27th, 2023 23:59 (11:59 PM)
  • A1 Due
  • Exercise 2: Friday, February 10th, 2023 23:59 (11:59 PM)
  • Exercise 3: Friday, February 17th, 2023 23:59 (11:59 PM)
  • A2 Due
  • Exercise 4: Friday, March 10th, 2023 23:59 (11:59 PM)
  • Exercise 5: Friday, March 17th, 2023 23:59 (11:59 PM)
  • A3 Due
  • Exercise 6: Friday, March 31st, 2023 23:59 (11:59 PM)
  • Exercise 7: Friday, April 7th, 2023 23:59 (11:59 PM)
  • A4 Due