Introduction to problem solving, the analysis and design of small-scale computational systems, and implementation using a procedural programming language.

Announcements

  • Website has been converted to inactive mode. (some links should no longer be expected to work)
  • Continuous Tutorial (CT) help will be provided by Teaching Assistants following a set schedule. TAs will only be avilable for the time that they are scheduled. TAs will be expected to leave when their scheduled time expires.
    Discord #CT channel will be used to access online CT.
    Schedule
  • CPSC Account Passwords (IT Page)
  • Course material posted on this course website.
  • Exercises via repl.it (Invite link in D2L Content)
  • Community Discussion Boards via discord.com (Invite link in D2L Content)
  • Exams and Assignment Submission/Grading via D2L
  • Class interaction via TopHat (UCIT ID, not CPSC ID) - Do not sign in with high school or other institution TopHat login

Lectures

  • Lectures begin on Tuesday, September 7th, 2021
  • Last day to drop is Thursday, September 16th, 2021
  • Lectures end and last day to withdraw is Thursday, December 9th, 2021
  • Zoom through D2L
    • L01 TueThu 09:30 - 10:45
    • L02 TueThu 15:30 - 16:45
  • Cloud recordings will exist in same D2L system within 24 hours.

Tutorials

  • Tutorials will begin on MoTu September 13/14th, 2021
  • Zoom through D2L
  • IE: Pycharm an IDE for Python
    • T01 MonWed 10:00 - 10:50
    • T02 MonWed 17:00 - 17:50
    • T03 TueThu 12:00 - 12:50
    • T04 TueThu 16:00 - 16:50
    • T05 TueThu 14:00 - 14:50
    • T06 MonWed 12:00 - 12:50
    • T07 MonWed 16:00 - 16:50
    • T08 TueThu 11:00 - 11:50
    • T09 TueThu 09:00 - 09:50
    • T10 MonWed 13:00 - 13:50
    • CT In-Person
  • Cloud recordings may (depends on material and preference of TA) exist in same D2L system within 24 hours.

Office Hours

  • Zoom through D2L
  • TuTh 13:00-13:50 or setup via email jwhudson@ucalgary.ca
  • In-person available by arrangement of meeting via email in unique circumstances.

Important Dates

  • No lectures or tutorials for Term Break Sunday-Saturday, November 7-13th, 2021.
  • University Closed for National Day for Truth and Reconciliation Thursday, September 30th, 2021.
  • University Closed for Thanksgiving Day Monday, October 11th, 2021.
  • University Closed for Remembrance Day (during term break) Thursday, November 11th, 2021.
  • Midterm Exam: 7:00-9:15pm Friday, October 29th, 2021. (D2L - Out-of-Class Activity)
  • Final Exam: Monday, December 13th, 2021. (D2L - Registrar Scheduled)

Top Hat

  • Join Code: XXXXXX
  • Use your UofC Account to access Tophat, not a CPSC 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

Technology

  • Python 3 (labs -> 3.6.8)
    • Python 3.9.6 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.
    • I prefer a 3.8.9 release due to TensorFlow support.
  • IE: 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 Student Academic Misconduct Policy.
    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
  • Assignment 1
    • Due Date: Friday, October 1st, 2021 23:59 (11:59 PM)
    • Topics: Variables, Decisions, Importing Libraries, Constants, Magic Numbers, Expressions, I/O, Types, Casting
  • Assignment 2
    • Due Date: Friday, October 22nd, 2021 23:59 (11:59 PM)
    • Topics: Repetition, Functions
  • Assignment 3
    • Due Date: Friday, November 19th, 2021 23:59 (11:59 PM)
    • Due Date: Tuesday, November 23rd, 2021 23:59 (11:59 PM)
    • Topics: Data Structures, Files I/O, Arguments, Error Handling
  • Assignment 4
    • Due Date: Friday, December 10th, 2021 23:59 (11:59 PM)
    • Topics: Classes and Objects