|
# |
DAY |
DATE |
TOPIC |
READING |
OUT |
DUE |
Week 1 |
1 |
Tu |
5-Sep-23 |
Overview. Info vs. data, von Neumann arch, binary/bits/bytes |
|
HW 1 |
|
|
|
We |
6-Sep-23 |
Lab 1:
Using Linux, Vim, Edit a text file, helloworld.c |
|
|
|
|
2 |
Th |
7-Sep-23 |
Data types. (Un)signed int, floating point, char, string,
datatypes.c
|
C: 1.1-1.5 A: 3.1 |
|
|
|
|
|
|
|
|
|
|
Week 2 |
3 |
Tu |
12-Sep-23 |
Programming. Low-level vs. high, imperative vs. functional |
C: 2.1-2.12 |
HW 2 |
HW 1 |
|
|
We |
13-Sep-23 |
Lab 2: A more complicated C program |
|
|
|
|
4 |
Th |
14-Sep-23 |
Execution semantics. Program execution using binding tables |
C: 3.1-3.7 |
|
|
|
|
|
|
|
|
|
|
Week 3 |
5 |
Tu |
19-Sep-23 |
Functions. Execution semantics, memory usage |
C: 1.6-1.9 A: 3.2 |
HW 3 |
HW 2 |
|
|
We |
20-Sep-23 |
Lab 3:
Functions and arrays |
|
|
|
|
6 |
Th |
21-Sep-23 |
Arrays. Execution semantics, memory usage |
C: 4.1-4.4,4.8 A: 2.1-2.4 |
|
|
|
|
|
|
|
|
|
|
Week 4 |
7 |
Tu |
26-Sep-23 |
Linear search. Cost overview, searching an unsorted array |
A: 2.6-2.7 |
HW 4 |
HW 3 |
|
|
We |
27-Sep-23 |
Lab 4: Header files in C and searching |
|
|
|
|
8 |
Th |
28-Sep-23 |
Binary search. Searching a sorted array |
C: 4.5, 4.6 |
|
|
|
|
|
|
|
|
|
|
Week 5 |
9 |
Tu |
3-Oct-23 |
Recursion. Execution semantics, re-implement binary search
factorial.c,
fibonacci.c,
binsearch_r.c
|
C: 4.10-4.11 A: 5.1-5.2 |
HW 5 |
HW 4 |
|
|
We |
4-Oct-23 |
Lab 5: Recursion |
|
|
|
|
10 |
Th |
5-Oct-23 |
Pointers and Sorting.
Overview, selection sort
ptr_example.c,
Obfuscated C code
|
A: 6.1-6.6 |
|
|
|
|
|
|
|
|
|
|
Week 6 |
11 |
Tu |
10-Oct-23 |
Sorting. Selection sort recap
mergesort.c,
interactive |
A: 8.1-8.6 |
HW 6 |
HW 5 |
|
|
We |
11-Oct-23 |
Lab 6: Arrays and code correctness |
|
|
|
|
12 |
Th |
12-Oct-23 |
Mergesort and midterm review. Algorithm, cost
AlphaDev discovers faster sorting algorithms |
A: 7.1-7.6 |
|
|
|
|
|
|
|
|
|
|
Week 7 |
13 |
Tu |
17-Oct-23 |
Quicksort. Algorithm, cost
quicksort.c |
|
|
HW 6 |
|
|
We |
18-Oct-23 |
Lab 7: Review |
|
|
|
|
14 |
Th |
19-Oct-23 |
MIDTERM |
|
|
|
|
|
|
|
|
|
|
|
Week 8 |
|
Tu |
24-Oct-23 |
FALL BREAK |
|
|
|
|
|
We |
25-Oct-23 |
Lab 8: Structs and pointers |
|
|
|
|
15 |
Th |
26-Oct-23 |
Abstract data types.
Structs and pointers, stacks and queues |
C: 5.3-5.6, 6.1-6.4 A: 4.1-4.4, 4.6 |
|
|
|
|
|
|
|
|
|
|
|
Week 9 |
16 |
Tu |
31-Oct-23 |
Linked lists. Overview, singly-linked |
A: 3.3-3.5 |
HW 7 |
|
|
|
We |
1-Nov-23 |
Lab 9: Linked lists |
|
|
|
|
17 |
Th |
2-Nov-23 |
Linked lists. List operations |
|
|
|
|
|
|
|
|
|
|
|
Week 10 |
18 |
Tu |
7-Nov-23 |
Linked lists. Dummy head node, linked list reversal
|
|
HW 8 |
HW 7 |
|
|
We |
8-Nov-23 |
Lab 10: Dummy head/tail nodes and doubly linked-lists |
|
|
|
|
19 |
Th |
9-Nov-23 |
Linked lists. Doubly linked-lists, cost
|
|
|
|
|
|
|
|
|
|
|
|
Week 11 |
20 |
Tu |
14-Nov-23 |
Hash tables. Overview, separate chaining |
A: 14.1-14.3 |
HW 9 |
HW 8 |
|
|
We |
15-Nov-23 |
Lab 11: Hash table using separate chaining |
|
|
|
|
21 |
Th |
16-Nov-23 |
Hash tables. Separate chaining, linear probing |
|
|
|
|
|
|
|
|
|
|
|
Week 12 |
22 |
Tu |
21-Nov-23 |
Help session, no new material covered |
|
|
HW 9 |
|
|
We |
22-Nov-23 |
THANKSGIVING BREAK |
|
|
|
|
|
Th |
23-Nov-23 |
THANKSGIVING BREAK |
|
|
|
|
|
|
|
|
|
|
|
Week 13 |
23 |
Tu |
28-Nov-23 |
Graphs, trees, and binary search trees. Overview |
A: 3.7, 5.3-5.7 |
HW 10 |
|
|
|
|
We |
29-Nov-23 |
Lab 12: Binary search tree implementation |
|
|
|
|
24 |
Th |
30-Dec-23 |
Graphs. Depth-first search |
A: 3.7, 5.3-5.7 |
|
|
|
|
|
|
|
|
|
|
Week 14 |
25 |
Tu |
5-Dec-23 |
Graphs. Breadth-first search |
A: 5.8 |
|
|
|
|
We |
6-Dec-23 |
Lab 13: Review. |
|
|
|
|
26 |
Th |
7-Dec-23 |
Wrap-up. |
|
|
HW 10 |
|
|
|
|
|
|
|
|
Week 15 |
|
|
16-Dec-22 |
Final Exam: 9a-12p in Exley 121 |
|
|
|