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)
  • Rockets

Lectures

  • Orientation on Friday, June 19th, 2024 @ 18:00
  • Campus Orientation begin on Tuesday, July 2nd, 2024 @ 09:00
  • Lectures begin on Wednesday, July 3rd, 2024 @ 09:00
  • Lectures end on Monday, July 29th, 2024 (exam following Wednesday the 31st)
  • L01 MoWeFr 09:00-12:00 MS 325

Tutorials

  • Tutorials will begin on Thursday, July 4th, 2024
  • T01 TuTh 09:00 - 12:00 MS 119

Office Hours

  • MoWe 12:00-12:50 (after class) ICT 712 or setup via email

Important Dates

  • Canada Day: Monday, July 1st, 2024. (university closed)
  • Midterm Exam: Monday, July 15th, 2024
  • Final Exam: Wednesday July 31st, 2024

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
  • Topic 2: Introduction to Computer Science
    • Computer Science
    • Areas
  • Topic 3: Programming
    • Programming
    • Variables
    • Writing
    • IPython (optional to understand more about Google Colab)
    • Python API
  • Topic 4: Information and Data
    • Information and Data
  • Topic 5: Decisions
    • Booleans
    • IfElse
  • Topic 6: Repetition
    • Loop Types
    • Loop Usage
  • Midterm Exam: Monday, July 15th, 2024 (in class).
  • Topic 7: Functions
    • Create
    • Use
  • Topic 8: Structures
    • Lists Basics
    • Lists Complex
    • Lists Complex
    • Dictionaries
    • Strings
  • Topic 9: System
    • Command Line
    • Files
    • Exceptions
    • Advanced Python (not on exam)
  • Topic 10: Recursion
    • Recursion
  • Final Exam: Wednesday July 31st, 2024

Technology

  • Python 3 (labs -> 3.11.8)
    • Python 3.12.4 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” means any Student behaviour which compromises proper assessment of a Student’s Academic Activities and includes: i. Cheating; ii. Fabrication; iii. Falsification; iv. Plagiarism; v. Unauthorized Assistance; vi. failure to comply with an Instructor’s expectations regarding conduct required of Students completing academic assessments in their courses; and vii. failure to comply with exam regulations applied by the Registrar.
    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 as contact.

  • 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 9th, 2024 23:59 (11:59 PM)
    • Topics: Variables, External Libraries, Function Usage, Expressions, Input, Output, Casting, Types
  • Assignment 2
    • Due Date: Tuesday, July 16th, 2024 23:59 (11:59 PM)
    • Topics: Decisions, Repetition
  • Assignment 3
    • Due Date: Tuesday, July 23rd, 2024 23:59 (11:59 PM)
    • Topics: Functions, Lists, Strings
  • Assignment 4
    • Due Date: Tuesday, July 30th, 2024 23:59 (11:59 PM)
    • Topics: Dictionaries, Lists, File Input/Output, Error Handling, Arguments