Find us on
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Jeanne Shaheen |
![]() |
Lisa Monaco |
![]() |
John Stewart |
![]() |
M. Todd Henderson |
![]() |
Dr. Elizabeth Bowman |
![]() |
Dr. Fabio Pierazzi |
![]() |
V.S. Subrahmanian |
![]() |
Rand Beers ('64) |
![]() |
Wanna See Something REALLY Scary? |
![]() |
Salvatore J. Stolfo |
![]() |
STAR-Vote: A Secure, Transparent, Auditable and Reliable Voting System Professor Dan Wallach |
![]() |
Pandora's Power Grid - What Can State Attacks Do and What Would be the Impact? Ben MillerChief Threat Officer, Dragos, Inc. Tuesday May 2, 2017 Kemeny 007, 4:30 PM |
![]() |
Factual Echo Chambers? Fact-checking and Fake News in Election 2016. Professor Brendan Nyhan |
![]() |
Professor Dickie George |
![]() |
A Nation Under Attack: Advanced Cyber-Attacks in Ukraine Ukrainian Cybersecurity Researchers |
ISTS Information Pamphlet
This course integrates discrete mathematics with algorithms and data structures, using computer science applications to motivate the mathematics. It covers logic and proof techniques, induction, set theory, counting, asymptotics, discrete probability, graphs, and trees. MATH 19 is identical to COSC 30 and may substitute for it in any requirement.
Prerequisite: COSC 1, ENGS 20, or placement through the Advanced Placement exam or the local placement exam.
A survey of fundamental algorithms and algorithmic techniques, including divide-and-conquer algorithms, lower bounds, dynamic programming, greedy algorithms, amortized analysis, and graph algorithms. Presentation, implementation and formal analysis, including space/time complexity and proofs of correctness, are all emphasized.
Prerequisite: COSC 10 and COSC 30. Students who have not taken COSC 30 but have a strong mathematical background may take COSC 31 with the instructor's permission.
This course serves as an introduction to formal models of languages and computation. Topics covered include finite automata, regular languages, context-free languages, pushdown automata, Turing machines, computability, and NP-completeness.
Prerequisite: COSC 30 and/or COSC 31. Students who have not taken COSC 30 and/or 31, but have a strong mathematical background, may take COSC 39 with the instructor's permission.
Techniques for building large, reliable, maintainable, and understandable software systems. Topics include UNIX tools and filters, programming in C, software testing, debugging, and teamwork in software development. Concepts are reinforced through a small number of medium-scale programs and one team programming project.
Prerequisite: COSC 10
The architecture and organization of a simple computer system is studied. Topics covered include how information is represented in memory, machine-language instructions and how they can be implemented at the digital logic level and microcode level, assembly language programming, and input/output operations. Speedup techniques, such as pipelining and caching, are also covered.
Prerequisite: COSC 1, ENGS 20, or placement through the Advanced Placement exam or the local placement exam.
The migration of important social processes to distributed, electronic systems raises critical security and privacy issues. Precisely defining security and privacy is difficult; designing and deploying systems that provide these properties is even harder. This course examines what security and privacy mean in these settings, the techniques that might help, and how to use these techniques effectively. Our intention is to equip computer professionals with the breadth of knowledge necessary to navigate this emerging area.
Prerequisite: COSC 50 and COSC 51, or instructor's permission. COSC 30 is recommended.
This course studies how computer operating systems allocate resources and create virtual machines for the execution of user jobs. Topics covered include storage management, scheduling, concurrent processing, shared access to files, synchronization, and data protection. Both abstract models and actual examples of operating systems will be studied.
Prerequisite: COSC 50 and COSC 51
This course focuses on the communications protocols used in computer networks: their functionality, specification, verification, implementation, and performance; and how protocols work together to provide more complex services. Aspects of network architectures are also considered. Laboratory projects are an integral part of the course in which networking concepts are explored in depth.
Prerequisite: COSC 50 and COSC 51. COSC 30 is recommended.
This course studies an advanced topic in computer systems that is not covered in the regular curriculum. Students may take this course multiple times, subject to the restriction that the topics are distinct.
Misperception and Security
Winter 2013
Instructor: Smith
Robotics Research
Spring 2010
Instructor: Balkcom
Computational Social Science
Winter 2010
Instructor: Choudhury
Web-powered computer vision
Fall 2009
Instructor: Torresani
Seminar on Wireless Sensor Networks
Winter 2006
Instructor: Campbell
Data Mining
Winter 2005
Instructor: Thompson
Pervasive Computing
Winter 2003
Instructor: Kotz
Context-Aware Mobile Computing
Winter 2002
Instructor: Kotz
Building and Breaking Secure Systems: CS 88 / 188
Spring 2001, Winter 2002
Instructor: Smith
This course covers advanced topics in operating systems, including issues such as the hardware/software interface, operating-system structure, CPU scheduling, concurrency, virtual memory, interprocess communication, file systems, protection, security, fault tolerance, and transaction processing. The course also considers many of these topics in the context of distributed systems.
Prerequisite: A grade of B+ or better in COSC 058, or passing an examination administered by the department to demonstrate competency in the material of COSC 058.
Previously taught courses have included:
Reading Course: Security, Trust, and Society: CS 82
Winter 2005
Instructors: Anthony and Smith
Reading Course: Information Technology for Big Brother: CS 82
Winter 2003
Instructor: Smith