Schedule

Week Lecture Topics Homework Resources
1 Lecture: intro
Monday
June 12
Administrivia
Basic C
HW0 out Resource Page
Lecture: env, term, variables
Tuesday
June 13
Terminal
Environments
Variables
Lecture: variables
Thursday
June 15
In-class demo:
array.c
printf.c
security.c
2 NO CLASS (Juneteenth)
Monday
June 19
Lecture: pointers 1
Tuesday
June 20
Function frames
Pointer syntax
Pass by value
Pass by reference
HW0 DUE
HW1 out
Lecture: pointers 2
Thursday
June 22
Heap allocation
Pointer Pitfalls
man stdio
man string
man malloc
3 Lecture: array lists
Monday
June 26
Array Lists HW1 DUE
Lecture: linked lists
Tuesday
June 27
Linked Lists HW2 out
Lecture: sorting
Thursday
June 29
O(n^2) sorting
Compiling C
Makefile
Function pointers
4 Lecture: map & BST
Monday
July 3
Map
BST
HW2 DUE
NO CLASS (July 4th)
Tuesday
July 4
HW3 out
Lecture: BST (cont.) & heap sort
Thursday
July 6
BST
Tree Sort
Heap Sort
Quiz review
5 QUIZ
Monday
July 3
HW3 DUE
Lecture: counting sort & hash table
Tuesday
July 11
Counting Sort
Hashing
Hash Table
HW4 out In-class demo:
dict.c
Makefile
two-letter.txt
Lecture: hash table
Thursday
July 13
Hash table
6 Lecture: bits
Monday
July 17
Understanding bits
Binary numbers
Hexadecimal numbers
HW4 DUE
Lecture: arith & bit-packing
Tuesday
July 18
Unsigned arithmetics
Bit-packing
HW5 out
Lecture: negative numbers
Thursday
July 20
Two's complement
Endianness
In-class demo:
majors.c
endian.c
7 Lecture: machine structure
Monday
July 24
Instructions
Virtual memory
Context switching
Threads
Lecture: thread demo
Tuesday
July 25
pthread.h
semaphore.h
In-class demo
Lecture: oop
Thursday
July 27
Object orientation
Tagged union
In-class demo:
animal.h
animal.c
main.c
7 Lecture: oop (cont.)
Monday
July 31
Virtual Table
Virtual Pointer
Integer Promotion
Final Info
In-class demo:
animal.h
animal.c
main.c
Lecture: wrapping up
Tuesday
August 1
HW6 DUE
FINAL
Thursday
August 3