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 |
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) / dxat that point read something like
error = error + float(dy) / dxThis is the same; "float" is a built-in function which converts a number to real.