CSC148, Winter 2017

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.

This page is for St. George Campus.There are related pages for CSC148 at UTM and CSCA48 at UTSC

Extra help: Many students find this course challenging, so you are encouraged to make use of lectures, tutorials, office hours, and the DCS Help Centre to help you master course material. Every Monday through Thursday, 4–6 p.m., the CSC Help Centre awaits your questions.

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

Week:ThursdayFridayMondayTuesdayWednesday
Week #1
introduction, class design

input:

course notes, chapter 1

review function design

in-class exercise on class design

another exercise on class design...

recognized study groups

Think like a computer scientist, classes I

Jan 5

no tutorial first week

Jan 6

no tutorial first week

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Jan 9

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Jan 10

Jan 11

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #2
composition, inheritance

input:

course notes, chapter 1

rational exercise

Think like a computer scientist: classes II

ramp-up paper exercise

ramp-up cheat sheet

output:

lab #1

sample registry

Jan 12

Lab 1 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Jan 13

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 1 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Jan 16

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Jan 17

Jan 18

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

last day to add classes

Week #3
ADTs, abstraction, test cases

input:

course notes, chapter 1

How to Think Like a Computer Scientist, Stack

list comprehensions

unit test documentation

output:

lab #2 handout

sample grade.py

Jan 19

Lab 2 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Jan 20

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 2 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Jan 23

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Jan 24

Jan 25

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #4
reading & writing structural recursion

input:

course notes, chapter 3

recursion exercise handout

output:

lab #3 handout

sample queue solution

Jan 26

Lab 3 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Jan 27

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 3 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Jan 30

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Jan 31

Feb 1

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #5
modularity, functional programming

input:

course notes, chapter 2

Video on MarkUs and assignment #1

2015 test

2016 test

2017 sample solution

output:

lab #4 handout

sample recursion exercise solution

Feb 2

Lab 4 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Feb 3

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 3 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Feb 6

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Feb 7

Feb 8

Test rooms: You must attend the correct time and room, and bring your TCard

L0301, test #1, EX100 9:10–10:00

L0101, test #1,EX100 10:10–11:00

L0201, test #1, 1:10–2:00

Aalfattlah–Eo: BA2185

Fei–Martin: GB304

Mei–Watson: GB404

Wei–Zou: HA410

L5101, test #1, 6:10–7:00

Abbarin–Mao: HA403

Meng–Wang, Siyi: HA401

Wang, Tong–Zhuang: HA410

L5101 lecture 7:15–9:00

Week #6
linked lists, assertions

input:

linked list, How to think like a computer scientist

output:

lab #5 handout

Feb 9

Lab 5 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Feb 10

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 5 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Feb 13

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Feb 14

Assignment 1 due at 10 p.m.

Feb 15

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #7
tree motivation, definition

input:

course notes 3.3.2

lab #6 handout

output:

Feb 16

Lab 6 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Feb 17

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 6 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Feb 20

reading week...

Feb 21

reading week...

Feb 22

reading week...

Week #7.5
tree motivation, definitions

input:

course notes 3.3.2

output:

Feb 23

reading week...

Feb 24

reading week...

Feb 27

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Feb 28

Mar 1

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #8
binary trees, traversal, search

input:

lab #7

output:

Mar 2

Lab 7 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Mar 3

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 7 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Mar 6

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Mar 7

Mar 8

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #9
mutation, binary search trees

input:

lab #8

2015 test with solutions

2016 test with solutions

output:

Mar 9

Lab 8 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Mar10

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 8 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Mar 13

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Mar 14

Mar 15

Test rooms: You must attend the correct time and room, and bring your TCard

L0301, test #2, EX100 9:10–10:00

L0101, test #2, EX100 10:10–11:00

L0201, test #2, EX200 1:10– 2:00

L5101, test #2, 6:10–7:00

A–M: UC 266

N–Z: UC 273

L5101 lecture 7:20–9:00

Week #10
efficiency, tracing, memoization

input:

lab #9

test 2 sample solution

output:

Mar 16

Lab 9 rooms: BA3175, 3185, 3195, 2200

9–11 a.m.

11–1 p.m.

1–3 p.m.

3–5 p.m.

5–7 p.m.

7–9 p.m.

lab rooms by surname

Mar 17

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Lab 9 rooms: BA3175, 3185, 3195 2200

11–1 p.m.

5–7 p.m.

lab rooms by surname

Mar 20

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Mar 21

Assignment 2 due at 10 p.m.

A2 starter code

summary of property and unit tests

Mar 22

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #11
big-oh, sorting

input:

extra lab on efficiency (big-Oh)

example quiz on efficiency

output:

Mar 23

demonstrate your A2 mastery during lab time.

schedule for demo

Mar 24

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

demonstrate your A2 mastery during lab time.

schedule for demo

Mar 27

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Mar 28

Mar 29

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150

Week #12
big-overflow, big ideas

input:

output:

Mar 30

Mar 31

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Apr 3

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 BA1160

Apr 4

Apr 5

Lecture 9:10–10:00 HS610

Lecture 10:10–11:00 HS610

Lecture 1:10–2:00 HS610

Lecture 6:10–9:00 PB B150