Our final review session typically goes through practice exam questions written by the TAs. We're also providing this outline of some important topics in case it helps organize your studying (but it's not meant to be exhaustive).
If you find a topic you're not familiar with, click the link to the full review session notes. Make sure you understand the topic thoroughly before moving on. Remember, the exams are written to test how deep your knowledge goes!
Main article: Bits, Bytes, and Binary
- Definition of bit, byte, MSB, LSB
- Hexadecimal, octal
- Two's complement
Main article: C Basics
- Data types and their sizes
- Integer:
char
,short
int
,long,
long long` - Floating point:
float
,double
sizeof
operator
- Integer:
- ASCII table
- Know the relationships (don't memorize)
- C strings (
char
arrays) - Syntax
- Bitwise operators
&
,|
,^
~
<<
>>
- Literal notations:
'
,"
,0x
, and0
- Order of operations
- Bitwise operators
Main article: Git
- Usage of basic commands:
clone
,status
,add
, andcommit
- Tracking state
Main article: Makefiles
- Understand each line of Jae's sample Makefile
- Declaring targets & dependencies
- Implicit rules
- Phony targets
- Build process: preprocessing, compiling, and linking
Main article: Function Pointers
- Syntax examples: goshdarnfunctionpointers.com
- Usage, e.g. in
traverseList()
andqsort()
Main article: Memory and Pointers
- Common Valgrind errors & how to fix them
- Process memory layout (relative position of stack, heap, static, code)
- Pointers
- Regular pointer vs double pointer
- Why is
void *
different / special?
Main article: File I/O
- Usage of library functions related to
FILE *
- Examples:
fopen()
,fdopen()
,fgets()
,fwrite()
- Examples:
- Files you get automatically:
stdin
,stdout
,stderr
- Buffering differences
- File permissions
- What does
644
mean? Same asrw-r--r--
?
- What does
Main article: Fork / Exec, IPC and TCP/IP
- Process vs program
- Usage of
fork()
andexecl()
- Idiomatic fork-then-exec pattern
- Zombies and
waitpid()
- Pipes and shell redirection
- Difference between
|
,>
, and>>
- Named pipe
- Netcat version of
mdb-lookup-server
- Difference between
Main article: IPC and TCP/IP
- Sockets API
- Understand (but don't memorize) Jae's TCP sample code
socket()
,bind()
,listen()
,accept()
,connect()
,send()
,recv()
, etc.
- Five-layer networking model (OSI model)
- Basic structure of requests and responses
- Important status codes: 200, 400, 404, 501
- HTTP 1.0 vs HTTP 1.1
Main article: See lecture notes
- Client-server architecture
- Web app architecture: presentation, application, data
Main article: Introducing C++
- Classes and structs
- Object lifecycle (Basic 4)
- References
- Heap allocation:
new
anddelete
- Function overloading
- "Real" strings:
MyString
andstd::string
Main article: C++ Templates & Containers
- Template syntax for classes and functions
- Compiling templates
- Why do we need to put all template code into the
.h
file?
- Why do we need to put all template code into the
- Standard library containers:
vector
andlist
- Iterators
Main article: Smart Pointers
- Reference counting
- Behaviors & usage
- How does
SmartPtr
use the Basic 4 to update the reference count? - What parts are on the stack vs the heap?
- How does
Thanks for reading our notes. Good luck on the final! You're gonna do great. 🌻