15-123 Tentative Schedule

Week 1

  • Administrivia
  • UNIX, the shell, and AFS

Week 2

  • Shell scripting, an introduction
  • Shell Scripting-condtionals and loops, regular expressions, Lab #1 Assigned

Week 3

  • Useful commands, advanced topics in shell scripting
  • Perl, Lab #2 Assigned

Week 4

  • Compiliation model, "Hello world", similarity to Java
  • Exam #1 -- UNIX environment, shell scripting and Perl

Week 5

  • Parameters, Multitple files, Globals, Static, Extern, Weak/Strong, Lab #3 Assigned
  • Memory, addresses, pointers, pass-by-reference-value, &-operator, *-operator, gdb

Week 6

  • Arrays, strings, pointer arithmetic, File IO, Lab #4 assigned
  • Reinforcement, Multidimensional arrays

Week 7

  • Structs, typedefs; dynamic memory
  • Designing a library interface, reinforcement

Week 8

  • Review/Slack
  • Exam #2 (Programming in C, gdb)

Week 9

  • Implementing data structures, void pointer, multiple files, static, Hashing, Lab #5 assigned
  • Linked lists

Week 10

  • Linked lists, cont, Lab #6 Assigned
  • Function-like Macros, Valgrind, Make/CVS, Lab #7 Assigned

Week 11

  • Bitwise operators, Computer organization (ISA, registers, instructions, etc), Lab #8 Assigned
  • SAMS ISA and assembly

Week 12

  • Discuss SAMS simulator implementation
  • Continue Discussion of SAMS simulator

Week 13

  • gprof and program execution, Lab #9 assigned
  • System calls, Process control

Week 14

  • /proc, strace
  • No class -- Thanksgiving

Week 15

  • Exam #3 (More C, program-memory validation, SAMS assignment, process lifecycle and system calls
  • Course wrap-up, Final Exam review