Skip to content

ucsb-cs32/f23

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS 32

Fall 2023

Welcome to CS 32! This is the class Git repo. Assignments will be posted here as they're released; they can be turned in on Gradescope. If you're looking for administrative information, see the syllabus. If you have any questions, you can ask on Piazza; there are more links there as well, on the class links post.

Places & Times

  • Lectures 14:00 to 15:15 on Mondays and Wednesdays in TD-W 1701
  • Labs 14:00 to 19:00 on Tuesdays in Phelps 3525
  • Jiayi's Office Hours 10:00 to 11:00 on Tuesdays in CSIL
  • Shinda's Office Hours 12:45 to 13:45 on Tuesdays in the TA Trailer
  • Maya's Office Hours 11:00 to 12:00 on Wednesdays in CSIL
  • Roman’s Office Hours 12:30 to 13:30 on Wednesdays in CSIL
  • Kevin's Office Hours 15:30 to 16:30 on Wednesdays in CSIL
  • Tim's Office Hours 15:30 to 16:30 on Wednesdays in CSIL
  • Mujia's Office Hours 16:00 to 17:00 on Wednesdays in CSIL
  • Ethan's Office Hours 09:30 to 10:30 on Thursdays in CSIL
  • Peter's Office Hours 14:00 to 15:00 on Thursdays in CSIL
  • Jason's Office Hours 15:00 to 16:00 on Thursdays in CSIL

Assignments

Assignments are due before midnight Pacific Time unless otherwise noted

Scrypt - a lightweight scripting language.

  • Checkpoint 01 - due Monday, October 16th.
    • Track A: The lexer.
    • Track B: The S expression parser.
  • Checkpoint 02 - due Thursday, October 26th.
    • Track A: Variables.
    • Track B: Infix expressions.
  • Checkpoint 03 - due Monday, November 6th.
    • Track A: Booleans.
    • Track B: Statements.
  • Checkpoint 04 - due Friday, November 17th.
    • Track A: Support.
    • Track B: Functions.
    • Track C: Arrays.

Arcade - a simple video game.

  • Checkpoint 01 - due Tuesday, November 28th.
    • Find a group, decide on a game, and sign up with a TA.
  • Checkpoint 02 - due Friday, December 1st, at 10:00 AM.
    • Track A: Create an OpenGL window.
    • Track B: Draw a user-controlled player object.
    • Track C: Draw some animated non-player objects.
  • Checkpoint 03 - due Friday, December 8th, at 10:00 AM.
    • Add the minimum set of features for a playable game.
    • Add some bonus features for extra credit.
    • This is the final assignment!

Lectures

14:00 to 15:15 on Mondays and Wednesdays in TD-W 1701

Date Topics
October 2nd Administrative stuff; overview of the projects
October 4th Git review; branches and code review; interfaces and module boundaries
October 9th Inheritance; virtual functions
October 11th The implementation of inheritance and virtual functions
October 16th Abstract classes; template functions and classes
October 18th Template specialization; overview of recursive parsing
October 23rd Template specialization; unions; tagged unions
October 25th Unique pointers
October 30th Statements vs expressions; shared pointers
November 1st More shared pointers; weak pointers; lambda functions
November 6th More lambda functions; functional(-ish) programming
November 8th Templated functional(-ish) programming; operator precedence parsing
November 13th Multithreading; race conditions; mutexes
November 15th More multithreading; mutexes; deadlock
November 20th Hacking 101: function calls, stack layout, and buffer overflows
November 22nd Hacking 102: stack canaries, ASLR, shellcode, return-to-libc
November 27th Multiprocessing and multithreading; process-level memory layout
November 29th More multithreading; atomic variables; async; promises and futures
December 4th Basic OpenGL with GLUT; Boids
December 6th More Boids; the end - good luck!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published