Skip to content

Foundations of Computer Security

CSC364 - Fall 2025

Overview

This course is an introduction to computer security. It covers the principles and practice of designing secure systems, with topics including cryptography, operating system security, network security, and software security. Students will learn to build, reason about, and analyze secure systems, while also examining how real-world systems break in practice through vulnerabilities, exploits, and attacks. The course serves as an entry point for undergraduates and provides the foundation for advanced courses in applied cryptography, systems and network security, and machine learning security.

Course Information

  • Instructor: Prof. Anwar Hithnawi
  • TAs: Ashwin Karthikeyan, Nikolay Avramov, Ziyang Jin, Sajad Maghrebi
  • E-mail: csc364-2025-09@cs.toronto.edu
  • Lectures: Mondays, 9:00–11:00 AM · BA 1180
  • Discussions & Tutorials: Wednesdays, 10:00–11:00 AM · BA 1130
  • TA Office Hours: Wednesdays, 11:00 AM–12:00 PM · BA 5287

Important Links

Course Evaluation

  • Homeworks (10%)
  • Projects (20%)
  • Midterm Exam (30%) - (October 22, at 10:00)
  • Final Exam (40%) - (Please see the Faulty of Arts and Science announcement)

Textbooks

There is no single required textbook for this course. We will rely heavily on the Berkeley Introduction to Security Textbook.
For the cryptography portion of the course, we will use A Graduate Course in Applied Cryptography. Exact sections and reading materials will be specified in the course schedule. Optional readings are recommended for deeper understanding but will not be part of the exam.

Assignments

There will be four written homework assignments and two programming projects. Homework needs to be done individually. Both programming projects may be completed in pairs. Late submissions are subject to the following policy: students may request up to three days of extension without penalty; beyond this, a deduction of 20% will be applied for each additional day late.

AssignmentsAnnouncedDue
Homework 1Sep 15Sep 29
Project 1: Secure Messaging SystemSep 22Oct 13
Homework 2Sep 29Oct 13
Homework 3Oct 27Nov 10
Project 2: Vulnerability Detection ToolNov 3Nov 24
Homework 4Nov 10Nov 24

Schedule and Readings

This schedule is tentative and subject to updates throughout the semester.

#WeekLecture (Mon)Discussion (Wed)Readings
1Sep 8Introduction & Security PrinciplesTutorial: Math foundations for cryptography IRequired Reading:
  1. Ch. 1.
Optional Reading:
  1. Reflections on Trusting Trust
2Sep 15Introduction to Cryptography & Symmetric Crypto FoundationsTutorial: Math foundations for cryptography IIRequired Reading:
  1. Computer Security Textbook — Ch. 5 & 6
  2. Crypto101 — Ch. 5, 6 & 7
3Sep 22Message Integrity & Authenticated EncryptionProject 1 design check and help session
4Sep 29Key Exchange & Public Key EncryptionTutorial: Operating System
5Oct 6Digital Signature, Certificates, Password HashingTutorial: Computer Networks I
6Oct 13Thanksgiving – no lectureTutorial: Computer Networks II
7Oct 20Operating System Security IMidterm
8Oct 27Reading Week – no lectureReading Week – no discussion
9Nov 3Operating System Security IIProject 2 design check and help session
10Nov 10Network Security IEthics Module
11Nov 17Network Security IILec: Web Security I
12Nov 24Web Security IIFinal Exam Review
13Dec 1Application Security, Special Topics, Wrap-Up-