CPSC 217: Introduction to Computer Science for Multidisciplinary Studies I (July 2025)
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.
Topic 6: Repetition
Midterm Exam: Monday, July 14th, 2025.
Topic 7: Functions
Topic 8: Structures
Topic 9: System
Topic 10: Recursion
Final Exam: Wednesday July 30th, 2025
Announcements
- This webpage is under construction.
- Course material posted on this course website.
- Community Discussion Boards via discord.com (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
Lectures
- Orientation on Friday, June 12th, 2025 @ 18:00
- Campus Orientation begin on Wednesday, July 2nd, 2025 @ 09:00
- Lectures begin on Wednesday, July 2nd, 2025 after orientation
- Lectures end on Monday, July 28th, 2025 (exam following Wednesday the 30th)
- L01 MoWeFr 09:00-12:00 MS 217
Tutorials
- Tutorials will begin on Thursday, July 3rd, 2025
- T01 TuTh 09:00 - 12:00 MS 119
Office Hours
- MoWeFr 12:00-12:50 (after class) ICT 712 or setup via email
Important Dates
- Canada Day: Tuesday, July 1st, 2025. (university closed)
- Midterm Exam: Monday, July 14th, 2025
- Final Exam: Wednesday July 30th, 2025
Top Hat
- Join Code: XXXXXX
- 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
- Course Information Sheet (Outline)
- Topic 1: Course Organization pdf
- Topic 2: Introduction to Computer Science
- Topic 3: Programming
- Topic 4: Information and Data
- Information and Data pdf
- Code
- 1_Representation.py
- Notebook ipynb
- Topic 5: Decisions
- Booleans pdf
- IfElse pdf
- Code
- Notebook ipynb
- Loop Exercises -- These exercises can be completed using either for loops or while loops (or better yet, complete all the exercises twice -- once using while loops, and again using for loops).
- Topic 1 to Topic X
- 40 Multiple Choice (40 marks), 1 Long Answer Question worth 10 Marks
- 90 minutes
- Example written question (Loops)
- Example tracing question (Loops)
- Old Midterm Exams
- CPSC 217 Winter 2025 Exam #1
- CPSC 217 Winter 2025 Exam #1
- CPSC 217 Spring 2024 Exam
- CPSC 217 Fall 2019 Exam
- CPSC 217 Summer 2019 Exam
- CPSC 217 Fall 2018 Exam
- CPSC 217 Fall 2017 Exam
- CPSC 217 Winter 2017 Exam
- CPSC 217 Fall 2015 Exam
- CPSC 217 Fall 2014 Exam
- CPSC 217 Winter 2014 Exam
- CPSC 217 Fall 2012 Exam
- CPSC 217 Fall 2011 Exam
- Exams from 2010 and earlier used Python 2 instead of Python 3. As a result, some of the code on the older exams will not run successfully in the current version of Python.
- CPSC 217 Fall 2010 Exam
- CPSC 217 Summer 2010 Exam
- CPSC 217 Fall 2009 Exam
- CPSC 217 Spring 2009 Exam
- CPSC 217 Fall 2008 Exam
- Midterm Exam Answer Viewer.
- Note that it is always possible that an incorrect answer has been entered into the database. If you spot something that appears to be wrong, please let the instructor know so that the problem can be corrected.
- Practice Parsons Problems:
- Converting from Base 10 to Base 2 (Solution)
- Admission Price (Solution)
- Opening Hours (Solution)
- Classifying Triangles (Solution)
- Even and Odd Totals (Solution) -- This isn't good practice for this year's first midterm exam because we won't cover for loops until after the first midterm.
- Number Triangle (Solution) -- This isn't good practice for this year's first midterm exam because we won't cover for loops until after the first midterm.
- Times Table (Solution) -- This isn't good practice for this year's first midterm exam because we won't cover for loops until after the first midterm.
- Topic 1 to Topic 10
- 40 Multiple Choice (40 marks), 2 Long Answer Questions (worth 10 marks each)
- 120 minutes
- Final Exam Practice Questions
- Final Exam Answer Viewer.
- Additional Practice Parsons Problems
Technology
- Python 3 (labs -> 3.12.0)
- Python 3.13.3 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
- Optional: repl.it: online IDE here
- Optional: Google Colab: interactive notebooks for python here
Assignments
-
Academic Misconduct” means any Student behaviour which compromises proper assessment of a Student’s Academic Activities and includes:
- Cheating;
- Fabrication;
- Falsification;
- Plagiarism;
- Unauthorized Assistance;
- failure to comply with an Instructor’s expectations regarding conduct required of Students completing academic assessments in their courses; and
- failure to comply with exam regulations applied by the Registrar.
Please refer to Sec. K.3 in the University Calendar for complete information or the University of Calgary's legal Student Academic Conduct Policy or Procedure.
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 procedure dictates they redirect you back to the department representative.
- 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: Tuesday, July 8th, 2025 23:59 (11:59 PM)
- Topics: Variables, External Libraries, Function Usage, Expressions, Input, Output, Casting, Types
- Assignment Description
- 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 15th, 2025 23:59 (11:59 PM)
- Topics: Decisions, Repetition
- Assignment Description
- Assignment 3
- Due Date: Tuesday, July 22nd, 2025 23:59 (11:59 PM)
- Topics: Functions, Lists, Strings
- Assignment Description
- Assignment 4
- Due Date: Tuesday, July 29th, 2025 23:59 (11:59 PM)
- Topics: Dictionaries, Lists, File Input/Output, Error Handling, Arguments
- Assignment Description