To the faculty page of James Tam Return to the course web page

CPSC 217: Course outline spring 2021

Technical requirements for students in the distance learning version of this course (paraphrased version from what was provided by the university).

Index (shortcut to major sections of the webpage)

 

Information about the programming language (python) you will learn

 

Lecture and important grading information

Day/Time

Look for pre-recorded lectures under 'content' in D2L and lectures will be listed chronologically.

Instructor contact Information

James Tam

Office time: MT (1:00 - 1:50 PM) via a Zoom link (passcode = 'hope'): https://ucalgary.zoom.us/j/98216800988

Email: tam@ucalgary.ca

   
General information Official course information sheet (summary of official course requirements)

 

General assignment information

Grade calculator to estimate your term grade: [Excel spreadsheet]

Academic misconduct vs. collaboration: what is allowed for this class

Practice assignments: They won't be for credit but they're extra problems that you can try in order to improve your programming and problem solving skills

Official recommended textbook "Starting Out with Python" (Gaddis T) Addison-Wesley.
Link to other UC licensed textbooks Safari website: ['Free' books]

Tutorials (teaching and help tutorials)

Teaching tutorials (material will be available starting the week of May 9 - 15) and will be available via a Zoom link (look under 'content' in D2L and under the appropriate week for the tutorial you will find a separate folder for each tutorial)

 

Tutorial

Instructor name

Contact information: if you have questions it's best to reach the TA during the CT time but you can email them for relative short and simple questions. Israa is the Teaching Assistant you should first contact via email. (You can of course contact the course instructor who teaches the lecture).

T01 Amir Aminbeidokhti (Windows tutorial) amir.aminbeidokhti@ucalgary.ca
T02 Amir Aminbeidokhti amir.aminbeidokhti@ucalgary.ca
T03 Yajurv Bhatia (MAC tutorial) yajurv.bhatia@ucalgary.ca
T04 Yajurv Bhatia yajurv.bhatia@ucalgary.ca
T05 Sonali Keshava Murthy Naik (MAC tutorial) sonali.keshavamurthy@ucalgary.ca
T06 Sonali Keshava Murthy Naik sonali.keshavamurthy@ucalgary.ca

    Extra help for the distance learning version: Israa

In addition to the Teaching Assistants who are assigned to teach a particular tutorial, for the distance learning version of this course funding was provided for an additional resource person: Israa Farouk. This person will be staffing many of the help tutorial times (Continuous Tutorial/CT) as well answering many of the email questions. Before you contact your TA email your question first to Israaisraa.farouk1@ucalgary.ca. You can of course contact the course instructor for the lectures. [Course instructor's contact information]

Help tutorials = Continuous tutorials (or CT for short) where you can go for help outside of class: commence the week of May 3 - 9. 

Continuous tutorial schedule: [CPSC 217 schedule for spring 2021]

Main grid: lecture & tutorial schedule, assignment information

Approximate time each topic will be covered in lecture Lecture topics & schedule
Relevant textbook chapters: "Starting Out with Python" (Gaddis T) Addison-Wesley.

Other sources of help includes the (free) online library website: [Safari]

Graded component due during the week: Note that all assignments are due at 4 PM Tutorial topics
 
  • How to work from home etc.. A portion will be covered in tutorial later in the term term, other resources are available for your reference: [Orientation link]

 

  • Searching for help using Google (note this is meant to supplement and but not act as a replacement for lecture and tutorial lessons). [PDF notes] [PowerPoint notes]
Not applicable A0  (submitting files using D2L and checking submissions, not graded) closes off submission on Tuesday May 11.  
May 2- 8 (there is only 'one' lecture this week).
  • Introduction to the course, administrative about how the course will be run such as grading information:  [PDF notes] [PowerPoint]

 

  • Introduction to programming: Chapter 1 & 2, Appendix A (additional information for installing Python on your own computer)

 

  • No tutorials this week
May 9 - 15

 

  • Introduction to computer programming Part 3 (Named constants, documenting programs, prewritten python functions, common programming errors, programming style: layout and formatting of your program): [PDF notes] [PowerPoint notes] [Examples]

 

 

 

  • Student exercise: A0
  • Getting and installing python
  • Using the Windows command line (cmd) to run programs (e.g. python)
  • Going over the A1 requirements
  • Conventions for naming variables and constants.
  • Unnamed constants
  • Getting input via input()
  • Formatting output via escape codes and format specifiers
  • Common operators & order of operation
  • Errors: syntax, runtime & logic
  • Documentation
  • Backups & versioning
  • Link to the examples
  • Link to the exercises
May 16 - 22
  • Branching: Chapter 3
  • Loops: Chapter 4
May 23 - May 29 (Monday May 24 is the Victoria Day holiday: no office hours or CT sessions)
  • Functions/decomposition Part 1: defining functions, calling functions you have defined, scope (local and global), declaring variables locally, benefits of declaring variables locally. [PDF notes] [PowerPoint notes] [Examples]
  • Functions/decomposition, Part 2: Parameter passing, function return values, function specific style requirements, documenting function. [PDF notes] [PowerPoint notes] [Examples]
  • Functions: Chapter 5 (don't worry about the material in Section 5.9, 5.10 yet)
May 30 - June 5
  • Functions/decomposition, Part 3: return to scope, what level/where to declare variables, Boolean functions, splitting up long functions, common errors with functions, program design & testing functions. [PDF notes] [PowerPoint notes] [Examples]
  • Composites - lists, Part 1: declaring list variables, accessing a list vs. elements in a list, passing list as parameters, methods of parameter passing. [PDF notes] [PowerPoint notes] [Examples]
  • Composites: Lists & Tuples: Chapter 7

  • Composites: Strings Chapter 8

 

  • Going over the mini-A4a requirements
  • Going over the mini-A4b requirements
  • Going over the A4 requirements
  • Basics of lists vs. strings.
  • Creating fixed sized lists, creating lists dynamically & randomly.
  • List references and passing lists as parameters.
  • Using the chr function and ASCII codes.
  • 2D lists
  • Link to the examples
  • Link to the exercises
June 6 - 12
  • Files: Chapter 6

 

  • Going over the mini-A5 requirements
  • Going over the A5 requirements
  • Files and exceptions.
  • Reading from files into dynamically created lists.
  • Link to the examples

 

June 13 - 19 (17th is the last day of the term).

 

  • No tutorial material for this week, TAs have covered all the python concepts required fro the assignments.