Prerequisites: Students are expected to enter this course with a basic knowledge of operating systems, networking, algorithms, and data structures. Also, students should be able to program in Java and C/C++. The course covers fundamental principles of building secure systems and techniques to ensure data security and privacy. Topics include access control mechanisms, operating systems security, malicious code threats and software security, trusted computing, content protection, and database security . The course will also study existing technical approaches to protecting privacy, including Web anonymizers and ant-censorship tools, as well as policy and legal aspects of privacy.