Course Schedule
DATE
TOPIC
EXERCISES
HOMEWORK
Week 1
Mon, Sep 25
HDAY
Course begins Wednesday!
Wed, Sep 27
LEC 01
Introduction, C Refresher
Slides:
pdf
Code:
args.c
,
sum_badorder.c
,
sum_betterorder.c
,
sum_declared.c
Thu, Sep 28
SEC 01
C, Pointers, Gitlab
Materials:
slides
solutions
worksheet
Fri, Sep 29
LEC 02
C: Data, Parameters
Slides:
ink
pdf
Code:
arraysum.c
,
buggy_copyarray.c
,
copyarray.c
,
📁 extra
,
outparam.c
,
ptr_poll.c
,
sumnum.c
,
sumstore.c
,
swap.c
Week 2
Mon, Oct 02
LEC 03
C: Pointers, The Heap
Slides:
ink
pdf
Code:
arraycopy.c
,
📁 extra
,
genstr.c
,
map.c
,
memcorrupt.c
,
segfault.c
Ex-1 Due
Soln
HW0 Due
Wed, Oct 04
LEC 04
C: Structs, Modules
Slides:
ink
pdf
Code:
complexstruct.c
,
📁 extra
,
manual_list.c
,
manual_list_void.c
,
push_list.c
,
simplestruct.c
,
structarg.c
,
structassign.c
Thu, Oct 05
SEC 02
Structs, Debugging
Materials:
slides
solutions
worksheet
Code:
Makefile
,
wordcount.c
,
wordcount_soln.c
Ex-2 Due
Soln
Fri, Oct 06
LEC 05
C: Preprocessor, Linking
Slides:
ink
pdf
Code:
condcomp_skipped.c
,
cpp_example.c
,
cpp_example.h
,
example_ll_customer.c
,
📁 external_linkage
,
📁 external_static_functions
,
📁 extra
,
ifdef.c
,
📁 include_problem
,
📁 internal_linkage
,
ll.c
,
ll.h
,
magic.c
,
static_extent.c
Week 3
Mon, Oct 09
LEC 06
File I/O: Cstdio, Buffering, POSIX
Slides:
ink
pdf
Code:
buffered_hi.c
,
cp_example.c
,
📁 extra
,
readN.c
,
unbuffered_hi.c
Wed, Oct 11
LEC 07
System Calls; Makefiles
Slides:
ink
pdf
Code:
Makefile
,
main.c
,
shout.c
,
shout.h
,
speak.c
,
speak.h
Ex-3 Due
Soln
Thu, Oct 12
SEC 03
POSIX I/O
Materials:
slides
solutions
worksheet
Fri, Oct 13
LEC 08
C++ Intro
Slides:
ink
pdf
Code:
Makefile
,
concat.cc
,
echonum.cc
,
📁 extra
,
helloworld.c
,
helloworld.cc
,
helloworld2.cc
,
helloworld3.cc
,
manip.cc
,
msg.cc
HW1 Due
Week 4
Mon, Oct 16
LEC 09
C++: References, Const, Classes
Slides:
ink
pdf
Code:
Makefile
,
Point.cc
,
Point.h
,
brokenpassbyrefconst.cc
,
constmadness.cc
,
passbyreference.cc
,
pointer.cc
,
poll1.cc
,
poll2.cc
,
reference.cc
,
styleguide.cc
,
usepoint.cc
Wed, Oct 18
LEC 10
C++: Constructor Insanity
Slides:
ink
pdf
Code:
Complex.cc
,
Complex.h
,
FileDescriptor.h
,
Makefile
,
SimplePoint.cc
,
SimplePoint.h
,
📁 extra
,
foo.txt
,
test.cc
,
testcomplex.cc
,
use_fd.cc
Ex-4 Due
Soln
Thu, Oct 19
SEC 04
C++ Intro, make, HW2 Q&A
Materials:
slides
solutions
worksheet
Ex-5 Due
Soln
Fri, Oct 20
LEC 11
C++: Constructor Insanity (cont'd)
Slides:
ink
pdf
Code:
README.txt
Week 5
Mon, Oct 23
LEC 12
C++: details
Slides:
ink
pdf
Code:
Complex.cc
,
Complex.h
,
FileDescriptor.h
,
Makefile
,
Point.cc
,
Point.h
,
Point_2011.cc
,
Point_2011.h
,
SimplePoint.cc
,
SimplePoint.h
,
📁 extra
,
foo.txt
,
test.cc
,
testcomplex.cc
,
use_fd.cc
Wed, Oct 25
LEC 13
C++: new/delete
Slides:
ink
pdf
Code:
Point.cc
,
Point.h
,
arrays.cc
,
📁 extra
,
heappoint.cc
Ex-6 Due
Soln
Thu, Oct 26
SEC 05
C++ classes, dynamic memory
Materials:
slides
solutions
worksheet
Fri, Oct 27
EXAM
Midterm Exam
Week 6
Mon, Oct 30
LEC 14
C++: Templates
Slides:
ink
pdf
Code:
Makefile
,
Pair.cc
,
Pair.h
,
📁 compare_prob
,
📁 compare_soln_one
,
📁 compare_soln_two
,
functiontemplate.cc
,
functiontemplate_infer.cc
,
usepair.cc
,
valtemplate.cc
HW2 Due
Wed, Nov 01
LEC 15
C++: STL
Slides:
ink
pdf
Code:
Makefile
,
Tracer.cc
,
Tracer.h
,
vectorfun.cc
Ex-7 Due
Soln
Thu, Nov 02
SEC 06
C++ Templates, STL
Materials:
slides
solutions
worksheet
Fri, Nov 03
LEC 16
C++: STL (2/2)
Slides:
ink
pdf
Code:
Makefile
,
Tracer.cc
,
Tracer.h
,
animals.cc
,
listexample.cc
,
mapexample.cc
,
test.cc
,
vectoralgos.cc
,
vectorfun.cc
,
vectoriterator.cc
,
vectoriterator_2011.cc
Week 7
Mon, Nov 06
LEC 17
C++: Smart Pointers
Slides:
ink
pdf
Code:
Makefile
,
ToyPtr.h
,
sharedcycle.cc
,
sharedrefcount.cc
,
shareduse.cc
,
sharedvec.cc
,
toyuse.cc
,
uniquearray.cc
,
uniquefail.cc
,
uniquemap.cc
,
uniquemove.cc
,
uniquepass.cc
,
uniquevec.cc
,
uniquevecsort.cc
,
usetoy.cc
,
weakcycle.cc
,
weakrefcount.cc
Ex-8 Due
Soln
Wed, Nov 08
LEC 18
C++: Inheritance I
Slides:
ink
pdf
Code:
📁 inherit
,
📁 initial
,
vtable.cc
Thu, Nov 09
SEC 07
C++ Smart Pointers, Casting, Inheritance
Materials:
slides
solutions
worksheet
Fri, Nov 10
HDAY
Veterans Day
Week 8
Mon, Nov 13
LEC 19
C++: Inheritance II, Casting
Slides:
ink
pdf
Code:
badctor.cc
,
baddtor.cc
,
constcast.cc
,
dynamiccast.cc
,
📁 extra1
,
📁 extra2
,
goodctor.cc
,
mixed.cc
,
slicing.cc
,
staticcast.cc
,
test.cc
Wed, Nov 15
LEC 20
Networks Introduction
Slides:
ink
Ex-9 Due
Soln
Thu, Nov 16
SEC 08
Client-side networking
Materials:
slides
solutions
worksheet
Fri, Nov 17
LEC 21
Socket, DNS, Client-side Networking
Slides:
ink
pdf
Code:
dnsresolve.cc
,
genaddr.cc
,
genstring.cc
Week 9
Mon, Nov 20
LEC 22
Client & Server-side Networking
Slides:
ink
pdf
Code:
Makefile
,
connect.cc
,
dnsresolve.cc
,
extra1.cc
,
sendreceive.cc
,
server_accept_rw_close.cc
,
server_bind_listen.cc
,
socket.cc
Ex-10 Due
Soln
Wed, Nov 22
LEC 23
HTTP
Slides:
pdf
Thu, Nov 23
HDAY
Thanksgiving
HW3 Due
Fri, Nov 24
HDAY
Native American Heritage Day
Week 10
Mon, Nov 27
LEC 24
Introduction to Concurrency
Slides:
ink
pdf
Code:
📁 searchserver_sequential
Ex-11 Due
Soln
Wed, Nov 29
LEC 25
Concurrency and Threads
Slides:
ink
pdf
Code:
Makefile
,
cthreads.c
,
pthreads.cc
,
📁 searchserver_threads
,
total.cc
,
total_locking.cc
,
total_locking_better.cc
Thu, Nov 30
SEC 09
HW4, HTTP, and Boost
Materials:
slides
solutions
worksheet
Fri, Dec 01
LEC 26
Concurrency and Processes
Slides:
ink
pdf
Code:
Makefile
,
fork_example.cc
,
fork_latency.cc
,
📁 searchserver_processes
,
thread_latency.cc
Week 11
Mon, Dec 04
LEC 27
Lec27: Intro to SIMD & Lec28: Intro to Rust
Slides:
pdf
Code:
cpp_simd_example.tar.gz
,
rust_example.tar.gz
Ex-12 Due
Soln
Wed, Dec 06
HDAY
No lecture! Extra study day.
HW4 Due
Thu, Dec 07
SEC 10
Course Summary
Fri, Dec 08
HDAY
No lecture! Extra study day.