Course topics:

Note: The tests are only a sampling of the course material. When something says 'yes' below, that means it is within the scope of that test; there may or may not be a question on that test about that topic.

Note 2: The term tests are NOT written in your usual tutorial room. Please check your room and seat assignment in advance in my "netgrade" system.

I have posted two previous CSC 104 exams. Problems from those exams are also organized by topic area, with links in the chart below.

Topic sample questions test 1? test 2? final exam?
Basic usage of the CDF computer system. link yes no yes
Problem-solving; computation as data flow; the idea of an algorithmic machine; hardware versus software; parts of a computer; algorithms. link yes no yes
Polya's problem-solving phases. link yes no no
Secondary storage (files on disk); hierarchical filesystems. link yes no yes
Basic principles of modern graphical user interfaces; the user experience in modern operating systems. link yes no yes
Data communications and the internet; IP addresses; URLs. link yes no yes
Data representation (binary numbers, ASCII character code, etc). link no yes yes
Shell scripts (as examined slightly in the labs). link no no no
Numeric expressions and spreadsheet programs. link partial yes yes
String expressions. link no no no
Boolean expressions and 'if's. link no yes yes
The World-Wide Web; HTML. link no yes yes
Computer programming: simple sequences of statements. link yes yes yes
Computer programming: procedure definition ('def' keyword).   no no no
Computer programming: 'if' statements, 'for' loops, 'while' loops. link no yes yes
History of computing machinery. link no no no
Time-keeping and time calculations.
Exam coverage is just about the time calculations, not time-keeping (or time zones, etc), and you don't need to memorize the leap year formula.
link no no yes
Computer programming: The software life cycle, etc.   no no no
Algorithms: Searching and sorting. (You will not have to write python code to do these things.) link no no yes
Algorithms: The Bresenham line algorithm. link no no yes
Programming-language paradigm stuff discussed in the last lecture.   no no no
Social issues in computing: impact of computers, social engineering, ethics, etc. link no no no

Labs and assignments:

Note: The tests are only a sampling of the course material. When something says 'yes' below, that means it is within the scope of that test; there may or may not be a question on that test about that item's material.

Item test 1? test 2? final exam?
Lab 1 yes no yes
Lab 2 yes no yes
Lab 3 yes yes yes
Lab 4 no yes yes
Lab 5 no no yes
Assignment 1 yes no yes
Assignment 2 no yes yes
Assignment 3 no yes yes

Note: There will be a question on the exam about lab 5. If you didn't "get it", please look at my solution (in /u/ajr/104/lab5/bres.py on CDF), and ask questions about it as applicable.

Note 2: At the time I had to submit my final exam (a month ago), I had a different version of my "bres.py" in one crucial respect. The lines which read something like

	error = error + (dy + 0.0) / dx
at that point read something like
	error = error + float(dy) / dx
This is the same; "float" is a built-in function which converts a number to real.
The latter line appears on the exam, but you can read it either way -- they're the same.


[main course page]