• Instructor Profile: Ma, Shiqing 
  • Prerequisite Information:

    The following courses are required in order to take this course: 01:640:152; 01:198:205 (required) and either 01:198:416 or 01:198:352.
    A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

  • Course Links: 01:198:205 - Introduction to Discrete Structures I, 01:198:352 - Internet Technology, 01:198:416 - Operating Systems Design
  • Topics:

     The course covers both classic topics, such as applied cryptography, authentication, authorization and basic security principles, as well as recent topics such as Web security and virtual machines for security. The course will also involve several assignments that require the student to think both as an attacker and as a defender.

  • Expected Work: 3-4 homeworks, some involving programming in C and x86 assembly code. A midterm and final exam.
  • Exams: Midterm and final.
  • Learning Goals:

    Computer Science majors ...

    • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
    • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
    • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).