The final exam will be on Thursday, 4/28, at 4:00-5:45 pm in the usual classroom. Note the day and time: Thursday at 4. I will have office hours on Thursday morning 10-11:30. Or send me questions via email or post on Piazza. The exam will be open-book, notes. Below is a list of the topics we have talked about in the course. You can expect questions on many of these topics with a focus on the more recent topics. There will be about 8 questions in the exam. Mostly conceptual questions, but there will be some questions that ask you to write some code too; for such questions, the exact syntax is not terribly important but it must be reasonable. Moreover, make sure you comment your code so that it is clear what it does and how. Similarly for questions that ask you to design a circuit etc., make sure you explain how your design is supposed to work. 1. Basic ideas ... including how all types of information is stored in the form of bit strings; some details of how integers are stored, methods for identifying errors in storage. 2. Memory structure, bytes, words, addresses, etc. Registers, memory words, CPU, etc. 3. Details of assembly and machine languages; various types of instructions (moving data, arithmetic, conditional branches, subroutine calls; interrupts). 4. Logic gates: combinational & sequential circuits, tri-state devices, how memory chips are put together 5. How does the CPU work? Internal structure of CPU and how it actually executes instructions. 6. Improving performance: cache memory, pipelining, SIMD vs. MIMD 7. C programming: Basics; pointers; arrays; arrays of characters; relation between arrays and pointers; structs; pointers to functions; some standard programs (including from the standard library); malloc; pre-processor; standard i/o (including stdin, stdout, stderr); piping, redirection. Unix interface, some important syscalls (read, write, lseek, open creat, unlink); directories, files, ... 8. OS: basic ideas; kernel mode vs. user mode; XOPSs/Syscalls; how the OS manages processes, switching control between them at the right times, etc. Hope that helps. *Send me questions, if any, by e-mail. or post on Piazza* --Neelam.