Special Topics
Independent reading course.
Fall and spring semesters. The Department.
Independent reading course.
Fall and spring semesters. The Department.
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. Fall semester. Professors Gardner and McGeoch.
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. Fall semester. Professors Gardner and McGeoch.
This course is an introduction to the use of relational databases and the inner workings of systems to manage these databases. Relational databases allow one to store, retrieve, and operate on data in a well-defined way, independent of the nature of the data. Database Management Systems (DBMS) are computer systems designed with the goal of making operations on relational databases as efficient as possible.
An introduction to the ideas and techniques that allow computers to perform intelligently. The course will discuss methods of adversarial game playing and of solving general problems using heuristic search. It will also discuss the design of agents that learn either from experience or from a provided dataset. The course will cover both theoretical aspects of AI and practical considerations such as noisy sensor readings. Three class meetings per week. Offered in alternate years.
Requisite: COSC 211. Fall semester. Professor Alfeld.
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.
This course will examine the principles and design choices involved in creating general purpose computer systems. Topics will include instruction set architectures, virtual memory, caching, allocators and garbage collectors, threads and synchronization, file systems, virtual machines, and distributed systems. Projects will involve the implementation and use of these capabilities and abstractions. Students who have taken COSC 261 may not take this course.
Requisite: COSC 112. Fall semester. Professor Kaplan.