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.

Announcements

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

Lectures

  • 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

  • Tutorials will begin on Monday/Tuesday January 16-17th, 2023
  • CPSC 217 T01 MonWed 09:00-09:50 MS 160
  • CPSC 217 T02 MonWed 10:00-10:50 MS 160
  • CPSC 217 T03 MonWed 15:00-15:50 MS 160
  • CPSC 217 T04 TueThu 12:00-12:50 MS 160
  • CPSC 217 T05 TueThu 16:00-16:50 MS 160
  • CPSC 217 T06 TueThu 17:00-17:50 MS 160
  • CPSC 217 T07 TueThu 08:00-08:50 MS 160
  • CPSC 217 T08 TueThu 13:00-13:50 MS 160
  • CPSC 217 T09 MonWed 18:00-18:50 MS 160
  • CPSC 217 T10 TueThu 18:00-18:50 MS 160
  • CPSC 217 T11 TueThu 19:00-19:50 MS 160
  • CPSC 217 T12 TueThu 09:00-09:50 MS 160
  • CPSC 217 T13 MonWed 13:00-13:50 MS 160
  • CPSC 217 T14 MonWed 14:00-14:50 MS 160
  • CPSC 217 T15 TueThu 15:00-15:50 MS 160

Office Hours

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

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-8:30pm). [out-of-class activity]
  • Final Exam: Wednesday, April 26th, 2023 08:30-10:30 AM. (registrar schedule during term)

TopHat

  • Join Code: XXXXXX
  • 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

  • Course Information Sheet (Outline)
  • Topic 1: Course Organization pdf
  • Topic 2: Introduction to Computer Science
    • Computer Science pdf
    • Areas pdf
  • Topic 3: Programming
    • Programming pdf
    • Variables pdf
    • Writing pdf
    • IPython (optional to understand more about Google Colab) pdf
    • Python API
  • Topic 4: Information and Data
    • Information and Data pdf
  • Topic 5: Decisions
  • Topic 6: Repetition
    • Loop Types pdf
    • Loop Usage pdf
  • Midterm Exam: Thursday, March 9, 2023 at 19:00-21:00 (7:00-8:30pm). [out-of-class activity]
  • Topic 7: Functions
  • Topic 8: Structures
    • Lists Basics pdf
    • Lists Complex pdf
    • Lists Complex pdf
    • Dictionaries pdf
    • Strings pdf
  • Topic 9: System
    • Command Line pdf
    • Files pdf
    • Exceptions pdf
    • Advanced Python (not on exam) pdf
  • Topic 10: Recursion
    • Recursion pdf
  • Topic 11: Flexible Topics
    • Popular Libraries (not on exam) pdf
    • Brief History (not on exam) pdf
  • Final Exam: Wednesday, April 26th, 2023 08:30-10:30 AM. (registrar schedule during term)

Technology

  • Python 3 (labs -> 3.10.6)
    • Python 3.11.1 is most recent and can be found 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
  • repl.it: exercises and optional online IDE
  • Optional: Google Colab: interactive notebooks for python

Assignments

  • 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.
    • SimpleGraphics.py - 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.
    • shapes_test.py - 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 2
    • Due Date: Friday, March 3rd, 2023 23:59 (11:59 PM)
    • Topics: Decisions, Repetition
  • Assignment 3
    • Due Date: Friday, March 24th, 2023 23:59 (11:59 PM)
    • Topics: Functions, Lists, Strings
  • Assignment 4
    • Due Date: Friday, April 14th, 2023 23:59 (11:59 PM)
    • Topics: Dictionaries, Lists, File Input/Output, Error Handling, Arguments

Exercise Schedule

  • Completed via repl.it
  • 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