Syllabus

Table of contents

  1. General Information
    1. Instructor
    2. Meeting Time and Location
  2. Course Description
  3. Textbook
  4. Prerequisites
  5. Learning Objectives
  6. Assessment and Grading
  7. Academic Integrity
  8. Syllabus Update

General Information

Instructor

Dr. Xiaoguang Wang
Email: xgwang9@uic.edu
Office: SEO 1331
Office hours: Tuesday 3:30 PM - 4:30 PM or by appointment

Meeting Time and Location

Monday, Wednesday, 3:00PM – 4:15PM, SES 138

Course Description

This course aims to provide students with a good understanding of the theories, principles, techniques, and practices for building secure computer systems. Students will gain the knowledge and skills necessary to design, implement, and maintain secure computer systems in a rapidly evolving digital landscape through theoretical concepts, practical exercises, and real-world case studies. This class covers both offensive techniques and defensive solutions. Students will study software and system security (binary reverse engineering, vulnerability analysis, exploit and shellcode development), cryptographic background and tools, access control and authentication, intrusion detection and prevention systems (firewalls), etc., to understand how attackers hack the system and how to protect computer software. A crucial part of studying security is putting skills to the test in practice. In this class, students’ progress is evaluated by quizzes, assignments (e.g., hacking challenges), and a project.

Textbook

William Stallings and Lawrie Brown, Computer Security: Principles and Practice, 4th edition, Pearson, 2017.

Optional:

Wenliang Du, Computer Security: A Hands-on Approach, 2nd Edition, 2017.

Prerequisites

  • Basic knowledge of computer architecture and operating systems (e.g., Linux).
  • Familiarity with programming languages (e.g., C/C++, Python).

Learning Objectives

By the end of the course, students should be able to:

  • Understand fundamental principles of computer security and threat models.
  • Identify common vulnerabilities and apply appropriate mitigation techniques.
  • Understand software security analysis and use reverse engineering tools.
  • Evaluate and select encryption and authentication mechanisms.
  • Analyze and assess security risks in complex computer systems.
  • Apply best practices for secure system administration and network configuration.
  • Be familiar with computer security research.

Assessment and Grading

  • Quizzes and assignments: [35%]
  • Midterm examination: [15%]
  • Final project: [40%]
  • Class participation and discussions: [10%]

The letter grade will be assigned as: A :≥ 90, A− : [85, 90), B+ : [80, 85), B : [75, 80), C : [65, 75), D : [55, 65), E : [50, 55), F :< 50.

Academic Integrity

You are encouraged to discuss assignments and labs with classmates, but all final work must be yours. Plagiarism and cheating are prohibited according to UIC’s academic integrity policy.

Syllabus Update

Information in the syllabus may be subject to change with reasonable advance notice.