CR: Stack I Topics Outline: Difference between revisions
 Created page with "==Weekly Topics==  # History of computer architecture: basic programming models ** #   ==Assignments== # malloc, structs"  | 
				No edit summary  | 
				||
| Line 2: | Line 2: | ||
# History of computer architecture: basic programming models  | # History of computer architecture: basic programming models  | ||
#    | #    | ||
==Assignments==  | ==Assignments==  | ||
# malloc,   | Assignments would all be divided into two parts:  | ||
* Part A must be attempted in lab and checked by a TA or instructor.  Slow students can continue to work during office hours which should run after lab; however, part A is not explicitly graded in lab, more it is used to make sure students don't get stumped early.  This part should be doable by good students in 10-15 minutes.  | |||
* Part B has more extensive exercises but still should be doable by good students in an hour or so.  | |||
Part A and B are turned in within one week.  There should also be optional exercises that are not graded, but that could occupy good students for multiple hours.  | |||
Potential assignments:  | |||
# command line basics: standard in/out, command line pipes, standard commands, job control  | |||
# basic strings and pointers (printf, scanf), pointer/array equivalence, gdb  | |||
# Command line arguments, pointer arithmetic  | |||
# running programs with execve, PATH, environment variables, basic malloc  | |||
# dynamic buffers for file I/O, memory mapped I/O  | |||
# fork, shared memory  | |||
# sockets, netcat (TCP mainly, UDP optional)  | |||
# libraries, linking, C->assembly, function calling conventions, ltrace, strace  | |||
Revision as of 05:24, 26 January 2011
Weekly Topics
- History of computer architecture: basic programming models
 
Assignments
Assignments would all be divided into two parts:
- Part A must be attempted in lab and checked by a TA or instructor. Slow students can continue to work during office hours which should run after lab; however, part A is not explicitly graded in lab, more it is used to make sure students don't get stumped early. This part should be doable by good students in 10-15 minutes.
 - Part B has more extensive exercises but still should be doable by good students in an hour or so.
 
Part A and B are turned in within one week. There should also be optional exercises that are not graded, but that could occupy good students for multiple hours.
Potential assignments:
- command line basics: standard in/out, command line pipes, standard commands, job control
 - basic strings and pointers (printf, scanf), pointer/array equivalence, gdb
 - Command line arguments, pointer arithmetic
 - running programs with execve, PATH, environment variables, basic malloc
 - dynamic buffers for file I/O, memory mapped I/O
 - fork, shared memory
 - sockets, netcat (TCP mainly, UDP optional)
 - libraries, linking, C->assembly, function calling conventions, ltrace, strace