CSC148, Fall 2013

Welcome to CSC148, Introduction to Computer Science. In this course you will think scientifically about program design concepts such as modularity, encapsulation, and information hiding, about powerful programming techniques such as recursion and linked structures, and criteria for comparing programs such as efficiency.

Extra help: Every Monday through Thursday, 4–6 p.m., the CSC Help Centre awaits your questions. Also, my office hours are every Thursday, 1–2 p.m., in BA4270, as well as Mondays and Wednesdays, 11 to noon, in the hallway south of BA1180, then wandering up to BA4270.

Below you'll find a calendar with entries for all significant course events

Week:MondayTuesdayWednesdayThursdayFriday
Week #1
Reading:
  1. Week 1 slides
  2. Object-oriented python
  3. PEP8, official Python style guide
  4. PEP275, python documentation style guide
Python examples:
Sep 9
  • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
Sep 10Sep 11
  • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
Sep 12Sep 13
Week #2
Reading:
  1. slides on ADTs, python style
  2. Code like a pythonista
  3. Stacks
  4. lab #1 handout
Python examples:
  1. stack example from lecture
  2. one stack implementation
  3. another stack implementation
  4. a stack tester
  5. recursive example: sum a nested list
Sep 16
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Sep 17
  • Lab, 1:10–3:00, BA3175–BA3195
lab #1 handout
Sep 18
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Sep 19
  • Lab, 9:10–11:00, BA3175–BA3195
lab #1 handout
Sep 20
  • Lab, 9:10–11:00, BA3175–BA3195
  1. lab #1 handout
  2. handout for exercise 1, due 11:59 p.m.
Week #3
Reading:
  1. lecture slides
  2. Lab #2 handout
  3. Python tutorial on inheritance
  4. Exceptions
  5. handout for exercise 2, due Friday 11:59 p.m.
Python examples:
  1. Stack superclass (base class)
  2. IntStack subclass (derived class)
  3. raising and catching exceptions
Sep 23
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Sep 24
  • Lab, 1:10–3:00, BA3175–BA3195
  1. handout for course SLOG,
  2. link to submit URL for SLOG
  3. Lab #2 handout
Sep 25
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Sep 26
  • Lab, 9:10–11:00, BA3175–BA3195
  1. Lab #2 handout
Sep 27
  • Lab, 9:10–11:00, BA3175–BA3195
  1. Lab #2 handout
  2. Exercise #2 handout, due 11:59 p.m.
  3. submit Exercise #2 to MarkUs
Week #4
Reading:
  1. lecture slides
  2. Recursion notes. But use list comprehensions and built-ins for shorter, clearer code of your own.
  3. handout for lab #3
  4. exercise #3 handout
  5. How to choose test cases (from CSC108)
  6. Testing functions that mutate values
Python examples:
  1. more nested list recursion
  2. some turtle recursion
Sep 30
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. lecture slides
Oct 1
    • Lab, 1:10–3:00, BA3175–BA3195
  1. handout for lab #3
Oct 2
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Oct 3
    • Lab, 9:10–11:00, BA3175–BA3195
  1. handout for lab #3
Oct 4
    • Lab, 9:10–11:00, BA3175–BA3195
  1. handout for lab #3
  2. exercise #3 handout, due 11:59 p.m.
Week #5
Reading:
  1. lecture slides
  2. lab #4 handout
  3. SLOG topic for this week
Examples:
  1. toah.py
  2. treelist.py code, with preorder, postorder, inorder
Oct 7
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Oct 8
    • Lab, 1:10–3:00, BA3175–BA3195
  1. lab #4 handout
  2. Assignment #1 due, 11:59 p.m.
  3. Assignment 1 handout
  4. Some Tkinter documentation
Oct 9
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
  2. Previous midterm, given several weeks later in the term.
Oct 10
    • Lab, 9:10–11:00, BA3175–BA3195
  1. lab #4 handout
Oct 11
    • Lab, 9:10–11:00, BA3175–BA3195
  1. lab #4 handout
Week #6
Reading:
  1. lab #5 handout
  2. Excercise 4 handout, due October 18th, 11:59 p.m.
Oct 14 (University closed)Oct 15
    • Lab, 1:10–3:00, BA3175–BA3195
  1. lab #5 handout
Oct 16
    • Test, 9:10–10:00 or 10:10–11:00
  1. test sample solution
Oct 17
    • Lab, 9:10–11:00, BA3175–BA3195
  1. lab #5 handout
Oct 18
    • Lab, 9:10–11:00, BA3175–BA3195
  1. lab #5 handout
Week #7
Reading:
  1. lecture slides
  2. linked list reading
  3. Exercise 5 handout
  4. node.py starter code
Examples:
  1. linked list code node.py
  2. tree code tree.py
Oct 21
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Oct 22
  • Lab, 1:10–3:00, BA3175–BA3195
Oct 23
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Oct 24
  • Lab, 9:10–11:00, BA3175–BA3195
Oct 25
  • Lab, 9:10–11:00, BA3175–BA3195
  1. Exercise 5 handout
  2. node.py starter code
Week #8
Reading:
  1. lecture slides
  2. trees in How to think like a Computer Scientist
  3. Wikipedia binary search trees --- only the material on definition and operations
  4. handout for lab #7
  5. handout for exercise 6
  6. bst_iter.py
Examples
  1. binary tree node bt_node.py
  2. binary search tree bst.py
Oct 28
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Oct 29
  • Lab, 1:10–3:00, BA3175–BA3195
Oct 30
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Oct 31
  • Lab, 9:10–11:00, BA3175–BA3195
Nov 1
  • Lab, 9:10–11:00, BA3175–BA3195
  • Exercise #6 due, 11:59 p.m.
Week #9
Reading:
  1. lecture slides
  2. Sorting, in Interactive Python
  3. Timsort, the algorithm used by python's built-in sort
  4. lab #8 handout
Examples:
  1. some sorting algorithms
Nov 4
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Nov 5
  • Lab, 1:10–3:00, BA3175–BA3195
  1. Assignment #2 handout, due 11:59 p.m.
  2. Submit assignment #2 to MarkUs
Nov 6
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Nov 7
  • Lab, 9:10–11:00, BA3175–BA3195
Nov 8
  • Lab, 9:10–11:00, BA3175–BA3195
Week #10Nov 11 (University closed)Nov 12 (University closed)Nov 13
    • Test, 9:10–10:00 or 10:10–11:00
  1. solutions to test 2
  2. Term test #2 at same time as your lecture, in EX300 (A--L) and EX310 (M--Z)
Nov 14Nov 15
Week #11
Reading
  1. lecture slides
  2. MapReduce
  3. handout for lab #9
Examples:
  1. regextreenode.py (right-click to download)
  2. reduce.py examples
Nov 18
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Nov 19
  • Lab, 1:10–3:00, BA3175–BA3195
Nov 20
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Nov 21
  • Lab, 9:10–11:00, BA3175–BA3195
Nov 22
  • Lab, 9:10–11:00, BA3175–BA3195
Week #12
Reading:
  1. lecture slides
  2. lab #10 handout
Examples:
  1. fib.py fibonacci and quicksort examples
Nov 25
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Nov 26
  • Lab, 1:10–3:00, BA3175–BA3195
Nov 27
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Nov 28
  • Lab, 9:10–11:00, BA3175–BA3195
Nov 29
  • Lab, 9:10–11:00, BA3175–BA3195
Virtual week...
Reading:
  1. review slides
  2. first page of final, portrait version
Examples:
  1. examples.py exam question solution
Dec 2
    • Lecture, 9:10–10:00, or 10:10–11:00, BA1180
  1. annotated slides
Dec 3 (last day of classes)Dec 4Dec 5Dec 6
  1. handout for SLOG, due by 11:59 p.m.
  2. rubric for grading SLOG