Special Topics

Independent reading course.

Fall and spring semesters. The Department.

How to handle overenrollment: null

Students who enroll in this course will likely encounter and be expected to engage in the following intellectual skills, modes of learning, and assessment: (none specified)

Computer Security

There is an ongoing arms race between hackers and defenders in the cyber world. This course introduces concepts of computer security including exploitation, diagnosis, and protection. Topics will range from program exploits like buffer overflow attacks and privilege escalation to analysis of recent real-world attacks to discussions about the ethics of hacking. We will also cover security protocols such as those for authentication (proving that you are who you say you are), password checking, and cryptography.

Network Science

Many phenomena can be represented as networks of interactions between different components. Network science is the discipline at the intersection of computer science, statistics, and physics that studies the structure, formation, evolution, and behavior of such networks, with the goal of understanding the phenomena they represent.

Algorithms

This course addresses the design and analysis of computer algorithms. Topics include: set algorithms such as sorting and searching, graph algorithms, string algorithms, and matrix algorithms. Algorithm design paradigms, including the divide-and-conquer, dynamic programming, and greedy paradigms, will be emphasized. The course will end with a discussion of the theory of NP-completeness and its implications.

Requisite: COSC 112 and COSC 211. Admission with consent of the instructor. Fall semester: Professor Rager. Spring semester: Professor Kryven.

Systems II: O/S

This course will cover the crucial responsibilities and mechanisms of operating system kernels, focusing on the themes of abstraction, virtualization, concurrency, caching, and persistence.  Topics will include processes, memory management and virtual memory, multi-processing and threads, file systems, and virtual machines.

Requisite: COSC-112 and COSC-171 or COSC-175. Fall semester: Professor Kaplan. Spring semester: Professor Kaplan.

How to handle overenrollment: null

Natural Lang Processing

This course is an introduction to natural language processing (NLP), the area of computer science that considers how computers can analyze and produce human language. We will examine core NLP tasks and implement various algorithms to address these tasks. In addition to algorithmically-focused work, we will also consider the features of different human languages and the creation of computational linguistics datasets. This course includes a sizable project which asks students to engage with and develop state-of-the-art NLP research.

Neural Safety Net

AI systems are increasingly deployed in high-stakes settings, from healthcare to autonomous vehicles, raising critical questions about their safety and reliability. This course explores what it means for an AI system to be safe, examining different definitions of safety and how they can be formally specified. Students will learn to express safety properties using precise mathematical language and explore techniques from machine learning and automated reasoning to verify and enforce these properties.

Data Structures

A fundamental problem in computer science is that of organizing data so that it can be used effectively. This course introduces basic data structures and their applications. Major themes are the importance of abstraction in program design and the separation of specification and implementation. Program correctness and algorithm complexity are also considered. Data structures for lists, stacks, queues, dictionaries, sets, and graphs are discussed. This course will provide advanced programming experience.

Subscribe to