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.


  • Rockets (July 2024) [rocket at 400,300 and moon at 100,100]
  • Website under construction.
  • Course material posted on this course website.
  • Community Discussion Boards via (Invite link in D2L Content)
  • Assignment Submission/Grading via D2L
  • Class interaction via TopHat (UCIT ID) - Do not sign in with high school or other institution TopHat login
  • Optional Tutorial Exercises via (Invite link in D2L Content) [may not work summer 2024 due to ending support]


  • Orientation on Friday, June 19th, 2024 @ 18:00
  • Campus Orientation begin on Tuesday, July 2nd, 2024 @ 09:00
  • Lectures begin on Wednesday, July 3rd, 2024 @ 09:00
  • Lectures end on Monday, July 29th, 2024 (exam following Wednesday the 31st)
  • L01 MoWeFr 09:00-12:00 MS 325


  • Tutorials will begin on Thursday, July 4th, 2024
  • T01 TuTh 09:00 - 12:00 MS 119

Office Hours

  • MoWe 12:00-12:50 (after class) ICT 712 or setup via email

Important Dates

  • Canada Day: Monday, July 1st, 2024. (university closed)
  • Midterm Exam: Monday, July 15th, 2024
  • Final Exam: Wednesday July 31st, 2024

Top Hat

  • Join Code: 095337
  • Use your UofC Account to access Tophat.

Textbook Resources (very very optional)

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


  • “Academic Misconduct” means any Student behaviour which compromises proper assessment of a Student’s Academic Activities and includes: i. Cheating; ii. Fabrication; iii. Falsification; iv. Plagiarism; v. Unauthorized Assistance; vi. failure to comply with an Instructor’s expectations regarding conduct required of Students completing academic assessments in their courses; and vii. failure to comply with exam regulations applied by the Registrar.
    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 as contact.

  • 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: Tuesday, July 9th, 2024 23:59 (11:59 PM)
    • Topics: Variables, External Libraries, Function Usage, Expressions, Input, Output, Casting, Types
    • Assignment Description
    • Starter Code (comment structure)
    • Example Image (my own solution worth full marks)
    • Example Image (my own solution worth full marks)
    • Video
    • Houses (July 2021) [house at 400,300 and sun at 100,100]
    • Houses (July 2023) [house at 400,300 and sun at 100,100]
    • Rockets (July 2024) [rocket at 400,300 and moon at 100,100]
  • Assignment 2
    • Due Date: Tuesday, July 16th, 2024 23:59 (11:59 PM)
    • Topics: Decisions, Repetition
  • Assignment Description
  • Starter Code
  • LittleDipper.txt Win Mac/Unix
  • ConstellationsOnly.txt Win Mac/Unix
  • Constellations.txt Win Mac/Unix
  • Night Sky Tool version of Data in Constellations.txt
  • Program Version of Night Sky Image (my own solution worth full marks)
  • Video
  • Bonus
  • Assignment 3
  • Assignment 4