assignments
due Tue Jan 26
getting started
- Reading
- Read chapter 1 in the text, "A tour of computer systems"
- Start reading chapter 2.
- Browse the links on the resources page.
- Browse Norm Matloff's unix and C tutorials
- Installing
- Get your tools in order: gcc, an editor, access to the unix command shell
- Writing
- First, tell me how all of the stuff above hit you: review? way over the top? somewhere between?
- Compile, write, and run the classic "hello world" program in C, as described in the text and at wikipedia: Hello_world_program.
- If time allows and you get this far, write a C program to solve project euler's problem 9 : find a pythagorean triple whose sum is 1000.
- Coming next : jims matrix c example
chapter 2 : ints and bytes
- Read chapter 2.
- Check your understanding ... (Note that the answers to the practice problems are at the end of the chapter, if you get stuck.)
- practice problem 2.47 (if we don't do it in class), 5-bit float
- practice problem 2.11 (swap using bit operations) . Explain what's going on.
- practice problem 2.14 (bit and logical operations)
- practice problem 2.23 (byte extraction idioms)
- 2.60 : implement the "unsigned replace_byte(unsigned x, int i, unsigned char b) function.
- 2.61, 2.64 : bit tests without "if" . (And/or do several ways.)
- 2.76 : implement a robust calloc
due Tue Feb 9
machine code
- Start reading chap 3, "Machine Code" in text, at least through 3.4 on addressing and "mov" commands. Also check out my notes from last year which I posted in my class notes this week.
- Follow through some of examples in the text, using gcc, objdump, and gdb to look at and try to understand the machine code.
- Work any of the practice problems 3.1 through 3.5 that strike your fancy. (The solutions are at the end of the chapter.)
due Tue Feb 16
bomb lab
- Start exploring the student downloadable bomblab , as a focus for understanding assembly and gdb.
- Come to class ready to discuss what you know, and how you learned it.
due Fri Mar 11
attack lab
another lab
- Pick one of the remaining labs to write up.
semester grade
- introspection ... and Jim's thoughts.