CSC 104, Winter 2012: Course topics

Part I: Introduction to computing machinery.

Notes on problem-solving; computation as data flow; the idea of an algorithmic machine; hardware versus software; parts of a computer; algorithms.

Timetable: the first two weeks of the term.

Some material used:


Part II: Modern computing.

Secondary storage (files on disk); hierarchical filesystems; operating systems; data communications and the internet.

Timetable: approximately January 19, 24, and 26.

References:


Part III: Data representation; numeric expressions.

Timetable: Basically February, and March 1 and 6. (With some other Python stuff mixed in.)


Part IV: History of computing machinery.

Timetable: approximately March 8 and March 13.

Some material used:

Most of the photos I displayed


Part V: Application: Time-keeping.

Time-keeping and time calculations.

Timetable: approximately March 13, 15, and 20.

[Example python code written in class in this unit]


Part VI: Computer programming.

A gentle introduction to computer programming.
A highly-guided small computer programming project (lab 5). The "software life cycle".

Schedule:
To some extent we've been gently introducing computer programming all along; but we'll get into it more seriously during the above time-keeping discussion, and then continuing in greater depth for March 20, 22, and 27, with a discussion of the Bresenham line algorithm (for lab 5) on March 27.

Bresenham line algorithm as discussed on March 27, and as used in lab 5

Binary search presentation shown in class

Example python code written in class in this unit:

Also see the mortgage calculation examples (some of which are from unit III)


Part VII: Computers and society.

Computer ethics; impact of computers on society; computers and responsibility; "social engineering".

Schedule: approximately March 29, April 3, and April 5. We will only have time to cover a little of the above-listed topics.

An introduction to the ideas about software freedom. Remember that a large number of the software packages you use on a regular basis are in fact "free" in this sense. Also note that there are free substitutes available for just about all large software packages, including operating systems as well as "office" software.

The bit I read in class about Susan Thunder was from the book Cyberpunk: Outlaws and Hackers on the Computer Frontier, Katie Hafner and John Markoff, Touchstone, 1991. The thing which makes this book unusual amongst other similar books is that the content is actually technically correct and historically accurate. But it's primarily a non-technical book and I think you should find it quite readable.


[main course page]