Skip to content

Latest commit

 

History

History
173 lines (112 loc) · 4.59 KB

final-review.md

File metadata and controls

173 lines (112 loc) · 4.59 KB

Final Exam Review

Our final review session typically goes through one of the sample exams. 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!

Topics from Midterm 1

Bits, Bytes, and Binary

Main article: Bits, Bytes, and Binary

  • Definition of bit, byte, MSB, LSB
  • Hexadecimal, octal
  • Two's complement

C Basics

Main article: C Basics

  • Data types and their sizes
    • Integer: char, short int, long, long long`
    • Floating point: float, double
    • sizeof operator
  • ASCII table
    • Know the relationships (don't memorize)
  • C strings (char arrays)
  • Syntax
    • Bitwise operators &, |, ^ ~ << >>
    • Literal notations: ', ", 0x, and 0
    • Order of operations

Git

Main article: Git

  • Usage of basic commands: clone, status, add, and commit
  • Tracking state

Makefiles

Main article: Makefiles

  • Understand each line of Jae's sample Makefile
  • Declaring targets & dependencies
    • Implicit rules
    • Phony targets
  • Build process: preprocessing, compiling, and linking

Function Pointers

Main article: Function Pointers

Memory

Main article: Memory and Pointers

Topics from Midterm 2

File I/O

Main article: File I/O

  • Usage of library functions related to FILE *
    • Examples: fopen(), fdopen(), fgets(), fwrite()
  • Files you get automatically: stdin, stdout, stderr
    • Buffering differences
  • File permissions
    • What does 644 mean? Same as rw-r--r--?

Fork & Exec

Main article: Fork / Exec, IPC and TCP/IP

  • Process vs program
  • Usage of fork() and execl()
    • Idiomatic fork-then-exec pattern
  • Zombies and waitpid()
  • Pipes and shell redirection
    • Difference between |, >, and >>
    • Named pipe
    • Netcat version of mdb-lookup-server

Sockets

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)

HTTP

  • Basic structure of requests and responses
  • Important status codes: 200, 400, 404, 501
  • HTTP 1.0 vs HTTP 1.1

Topics introduced after the midterms

Software Architecture

Main article: See lecture notes

  • Client-server architecture
  • Web app architecture: presentation, application, data

C++ Basics

Main article: Introducing C++

  • Classes and structs
    • Object lifecycle (Basic 4)
  • References
  • Heap allocation: new and delete
  • Function overloading
  • "Real" strings: MyString and std::string

Templates & Containers

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?
  • Standard library containers: vector and list
  • Iterators

Smart Pointers

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?

Thanks for reading our notes. Good luck on the final! You're gonna do great. 🌻