Exams

Exam Overview

Midterm Review Session: Friday, February 6, 2026 (in TBD and on Zoom, 4:30 - 6:30 pm)
Midterm Exam: Monday, February 9, 2026 (TBD, 5:30 - 6:40 pm)

Final Review Session: Friday, March 13, 2026 (in TBD and on Zoom, 4:30 - 6:30 pm)
Final Exam: Wednesday, March 18, 2026 (TBD, 12:30 - 2:20 pm)

See the "Midterm Policies" and "Final Policies" sections below for more details.

Midterm Details

Midterm Policies

You will have 70 minutes to complete the exam. You will be asked to check in with a specific staff member early in the exam room to receive a copy of the exam. You can read and fill out the cover page of the exam, but you should not look at the exam questions until you are told to begin.

  • To Bring: student ID, pencil, eraser, ONE double-sided sheet of handwritten notes
  • Provided: midterm reference sheet [PDF], printed exam with white space for work, time keeping
    • Countdown timer and exam clarifications will be projected in the lecture hall
  • Not Allowed: books, printed notes, cell phone (silence and put away), watches, AI/AR glasses, hats, calculators, or any other electronic device (unless specifically allowed by an approved accommodation)

Midterm Topics

Program Organization

  • System layers: C language, libraries, and operating system
  • Building an executable: preprocessing, compiling, linking
    • Preprocessor: #include, #define, #ifndef, etc.
  • Structure of C/C++ programs: header files, source files
    • Declarations vs definitions
    • Organization and use of header files, including #ifndef guards
    • Faking modularity in C – headers, implementations
    • Internal vs. external linkage; use of static for internal linkage
    • Dependencies and recompilation
    • Make and makefile basics
  • Version control basics (git)
    • add, commit, push, etc.
    • What to put in a repo and what to leave out

C Language

  • Data types
    • Casting
    • Pointers (pointer arithmetic, relationship to arrays)
    • String constants, arrays of characters, C string library
    • Structs
    • Extended integer types (e.g., int32_t, uint64_t)
    • typedef
  • Standard I/O library and streams
    • stdin, stdout, fopen, fread, scanf, printf, etc.
  • POSIX libraries - wrappers for systems calls
    • POSIX-layer I/O: open, read, write, etc.
    • Relationship between C standard library, POSIX library functions, and system calls
  • Error handling - error codes and errno
  • Process address space and memory map (code, static data, heap, stack)
    • Object lifetimes: static, automatic, dynamic
    • Dynamic allocation (malloc, free)
  • Function parameters
    • Call by value semantics (including structs, pointers)
    • Arrays as parameters - pointers
    • Using pointers for call-by-reference semantics
    • Function pointers as parameters
  • Linked data structures (e.g., linked lists, hash tables)
  • Potential bugs (e.g., memory leaks, dangling pointers)

C++ Language

  • Classes and modularity, namespaces
    • Create and change simple class definitions
    • Constructors, copy constructors, assignments, destructors
  • Other basic differences from C
    • Simpler, type-safe stream I/O (cout, cin, << and >>)
    • Type-safe memory management (new, delete, delete[])
    • References – particularly reference parameters
    • More pervasive use of const (const data and parameters, const member functions)

Midterm Practice

The following Midterm Review packet will be used in the Midterm Review session.

  • Midterm Review Packet (solutions)

Past Midterm Exam Database

In addition to old exams, you will want to review homework exercises, work the suggested exercises at the end of most of the lectures, and review lecture and section material.

Winter 2026
Exam   |   Sample Solution   |   Hsia & Hu
Autumn 2025
Exam   |   Sample Solution (Ver. A) [PDF], Sample Solution (Ver. B) [PDF]   |   Alterman & Thachuk
Spring 2025
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2025
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2024
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Autumn 2022
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2022
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2020
Exam [PDF]   |   Sample Solution [PDF]   |   Hsia
Winter 2020
Exam [PDF]   |   Sample Solution [PDF]   |   Hsia
Autumn 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Tang
Summer 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Johnston
Spring 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Hsia
Winter 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Autumn 2018
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2018
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2018
Exam [PDF]   |   Sample Solution [PDF]   |   Hsia
Autumn 2017
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2017
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2017
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2016
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2016
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2016
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2015
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2015
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2014
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2014
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2014
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2013
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2013
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2012
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2012
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2011
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins

Final Details

Final Policies

You will have 110 minutes to complete the exam. We will distribute the exam early and you can read and fill out the cover page of the exam, but you should not look at the exam questions until you are told to begin.

  • To Bring: student ID, pencil, eraser, ONE double-sided sheet of handwritten notes
  • Provided: final reference sheet [PDF], printed exam with white space for work, time keeping
    • Countdown timer and exam clarifications will be projected in the lecture hall
  • Not Allowed: books, printed notes, cell phone (silence and put away), watches, AI/AR glasses, hats, calculators, or any other electronic device (unless specifically allowed by an approved accommodation)

Final Additional Topics

More C++

  • Templates
    • Template parameters for classes and functions
    • Compiler generation an instance of a template
  • STL, Containers, and Iterators
    • Use basic containers (vector, list, map) and iterators in C++ code
  • Smart pointers, reference counting semantics, using with STL
    • Select between unique_ptr, shared_ptr, and weak_ptras appropriate for an application
    • Track reference counting during the execution of smart pointer code
    • Manage ownership (e.g., grant, transfer) of pointers properly using STL functions
  • Subclasses, inheritance, virtual functions, dynamic vs static dispatch (function calls), vtables, constructors and destructors in subclasses
  • Pure virtual functions and abstract classes (what they are, how it works)
  • Using class heirarchies with STL and smart pointers, assignment slicing, value vs pointer semantics
  • C++ casts

Network Programming

  • Basic network layers: physical, data link, IP, TCP, application
  • Packets, and packet encapsulation across layers
  • IP addresses, address families (IPv4 and IPv6), DNS, ports
  • Stream sockets, file descriptors, read, write, close
  • Client steps: address resolution, create socket, connect socket to server, read/write (including retrys), close
  • Server steps: determine address and port, create socket, bind socket to address/port, listen (and how the OS queues pending connections), accept connection, read/write, close
  • Very basic HTTP and HTML (e.g., understand data sent and received by something like the HW4 web server)

Concurrency

  • Multiple processes and fork() (review of CSE351 mostly), shared file descriptors and close() in forked processes
  • Threads - concurrent execution inside a single process; know a few of the pthread basics (i.e., what it means to create a thread and start execution in a function; passing arguments to threads); basic issues involving sharing data between threads and locking.
  • Use of concurrency to improve throughput and resource utilization

Final Practice

The following Final Review packet will be used in the Final Review session.

  • Final Review Packet (solutions)

Past Final Exam Database

Note: Summer final exams are 60 minutes long compared to 110 minutes during the regular year. The topics are generally the same so all of the old exams should be useful for review.

Winter 2026
Exam   |   Sample Solution   |   Hsia & Hu
Spring 2025
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2025
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2024
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Autumn 2022
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2022
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Autumn 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Tang
Summer 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Johnston
Spring 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Hsia
Winter 2019
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Autumn 2018
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2018
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2018
Exam [PDF]   |   Sample Solution [PDF]   |   Hsia
Autumn 2017
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2017
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2017
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2016
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2016
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2016
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2015
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2015
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2014
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2014
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Winter 2014
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2013
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2013
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Summer 2012
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins
Spring 2012
Exam [PDF]   |   Sample Solution [PDF]   |   Perkins