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.