Course website: Introduction to Computer Science I for majors [To the faculty website of James Tam]

CPSC 217: fall 2025

Lecture, important administrative course information, general assignment information

Day/Time for class

L02: MWF 1:00 - 1:50 PM in KNB 132

Contact Information

James Tam

 

Office time:  Please identify yourself as a CPSC 217 student when you come into the 'office'

 

Email: tam@ucalgary.ca

Course topics and outline [Main grid]
 Course Outline [The official signed version]

 

Recommended (not mandatory) text

 

 

Main grid: Course topics, course schedule

Shortcut links for each week of lecture

Week Topic (since this is a coordinated class the schedule is tentative, more links will added in the during the semester)
Lecture week 1: Aug. 31 - Sept. 6 (lectures start on Tue. Sept. 2) Course introduction, administrative information (such as grading): Problem solving via top down decomposition

Introduction to computer programming Part I

  • (Not covered in detail in lecture but it may be a useful tutorial: creating/running python programs using two editors: PyCharm & IDLE): [Notes: PowerPoint] [Notes: Acrobat]
  • Writing and running a python program, variables, displaying information to the user, common math operators, variables. [Notes: PowerPoint] [Notes: PDF] [Examples]

Lecture week 2: Sept. 7 - 13

 
Introduction to computer programming Part II Representations of data/information

Lecture week 3: Sept. 14 - 20

Representations of data/information (continued from last week)

Branching

 

Lecture week 4: Sept. 21 - 27

Announcements: [Sept 24]

Repetition:

Lecture week 5: Sept. 28 - Oct. 4 (No classes Tuesday Sept. 30)

Project I: Sept. 28

Midterm I: Saturday October 4, 6:30-7:30 PM

"Catch up and review"

Repetition (continued from last week) [Some practice exercises, extra help material]

Lecture week 6: Oct. 5 - 11 Program decomposition using functions

Lecture week 7: Oct. 12 - 18 (No classes Monday Oct. 13)

Exercise: Oct 14 (parameters, returns, simple 1D list)

Program decomposition using functions (continued from last week)

Introduction to "Data structures/composites"

  • Part I, lists:  [Notes: PowerPoint] [Notes: PDF] [Examples]
    • common list operations: creating lists,
    • accessing an element, traversing lists,
    • modifying elements, adding elements, displaying lists using print()

Lecture week 8Oct. 19 - 25

Exercise: Oct 21 (1D list, simple list operations)

Introduction to "Data structures/composites"

 

Lecture week 9: Oct. 26 - Nov. 1

Project II: Oct. 26 (functional decomposition, composites)

Midterm II: Saturday Nov. 1, 6:30-7:30 PM

Exercise: Oct 30 file input

Introduction to "Data structures/composites"

File input and output, exception handling

Extra for Midterm #2: [Non-multiple choice practice problems for 2D lists]

Lecture week 10Nov. 2 - 8

File input and output, exception handling

Reading Week: Nov. 9 - 15, no classes  

Lecture week 11Nov. 16 - 22

Exercise 8 Nov 18 (file input and exceptions)

"External libraries"

  • Extra optional resource if you need it (not on the exam), basic HTML web page 'tags': [Notes: PowerPoint] [Notes: PDF]
  • (Since these notes are based upon the resources are based upon the work of another instructor they won't be posted publicly online but instead you can find them directly under the material for this week in D2L: Content->Week 11 Nov 16 - 22
  • [My examples]

Lecture week 12Nov. 23 - 29

Exercise 9 Nov 25 (external libraries)

"Generative A.I." (creating original content using Artificial Intelligence):  1 day (but keep in mind:  1) a lot of the things I have been talking about with respect to GenAI are directly what you can apply to the Project (other things in these notes that I didn't cover are useful for the future rather than now)  2) the course coordinator has also created videos on this content that tie directly to the project. So I may cover these section very quickly over even skip most of it entirely.
  • (Since these notes are based upon the resources are based upon the work of another instructor they won't be posted publicly online but instead you can find them directly under the material for this week in D2L: Content->Week 11 Nov 16 - 22

Introduction to classes and objects: 2 days

  • [Notes: PowerPoint] [Notes: PDF] [Examples]

 

Lecture week 13Nov. 30 - 6 (last day of class is Fri. Dec. 5)

Project III: Nov. 30 (Generative AI could be useful, python libraries: requests, BeautifulSoup, csv, and mathplotlib)

Exercise 10 Dec 2 (O-O: init, str, methods, "driver program")

Introduction to classes and objects (continued from last week)

 

Review (if there is time)

Extras (if there is time): not on the final exam but you might still find it of interest.  
Final exam period: Dec. 9 - 19