Skip to main content



Find us on

facebook youtube flickr twitter itunes u logo

Upcoming Events

 ISTS logo

Securing the e-Campus 2017 - Exact time and dates TBD

Recent Talks

Dan Wallach

STAR-Vote: A Secure, Transparent, Auditable and Reliable Voting System

Professor Dan Wallach
Rice University
Thursday April 27, 2017
Carson L01, 5:00 PM

Ben Miller Dragos

Pandora's Power Grid - What Can State Attacks Do and What Would be the Impact?

Ben Miller
Chief Threat Officer, Dragos, Inc.
Tuesday May 2, 2017
Kemeny 007, 4:30 PM
Brendan Nyhan




Factual Echo Chambers? Fact-checking and Fake News in Election 2016.

Professor Brendan Nyhan
Dartmouth College
Thursday May 4, 2017
Rocky 001, 5:00 PM

Dickie George


Espionage and Intelligence

Professor Dickie George
Johns Hopkins University
Thursday May 11, 2017
Rocky 001, 5:00 PM

Dan Wallach

A Nation Under Attack: Advanced Cyber-Attacks in Ukraine

Ukrainian Cybersecurity Researchers
Thursday April 6, 2017
Oopik Auditorium 5:30 PM

RIOTS logo 

Professor Sean Smith, Director of the ISTS and Bill Nisen, Associate Director, spoke at the

School House residential cluster on the Internet of Risky Things  - February 21, 2017, 5:30 PM

Craig Smith




You Don't Own Your Car
Craig Smith
Tuesday May 10, 2016 
Carson L02 @4:15

David Safford


Hardware Based Security for GE's Industrial Control Systems
David Safford
GE Global Research
Tuesday May 17, 2016
Carson L02 @4:15



"It's Fine," They Said. "Just Ship It," They Said.
Dan Tentler
The Phobos Group
Tuesday April 12, 2016 
Carson L02 @4:15

Harold Thimbleby




The Best Way to Improve Healthcare is to Improve Computers
Harold Thimbleby
Swansea University
April 23, 2015

Craig Shue




Managing User-Level Compromises in Enterprise Network
Craig Shue
Worcester Polytechnic Institute
March 31, 2015



Oct news 2015


ISTS Information Pamphlet



Institute for Security, Technology, and Society
Dartmouth College
6211 Sudikoff Laboratory
Hanover, NH 03755 USA

Computer Science

Discrete Mathematics in Computer Science: COSC 30

Web site:

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.

Algorithms: COSC 31

Web site:

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.

Theory of Computation: COSC 39

Web site:

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.

Software Design and Implementation: COSC 50

Web site:

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

Computer Architecture: COSC 51

Web site:

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.

Security and Privacy: C0SC 55

Web site:

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.

Operating Systems: COSC 58

Web site:

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

Computer Networks: COSC 60

Web site:

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.

Topics in Computer Systems: COSC 69/169

Web site:

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.

Previous Topics of CS 69/169 (formerly 88/188)


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

Advanced Operating Systems: CS 258

Web site:

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

Last Updated: 9/24/14