Autumn of 2025
Automata Theory
A review of the abstract notions encountered in machine computation. Deterministic and nondeterministic finite automata; regular expressions, regular sets, context-free grammars, pushdown automata, context-free languages. Selected topics from Turing Machines and undecidability.
Advanced Algorithm Design and Analysis
Asymptomatic analysis, recurrences, and graph algorithms. Algorithm design techniques such as greedy method, dynamic programming, and divide-and-conquer. Issues from computational complexity. Course emphasizes a theoretical approach.
Database Systems
This course emphasizes the concepts and structures necessary for the design and implementation of database management systems. Topics include data models, data normalization, data description languages, query facilities, file organization, index organization, file security, data integrity, and reliability.
Operating Systems Concepts
An introduction to fundamental concepts in operating systems: their design, implementation, and usage. Topics include process management, main memory management, virtual memory, I/O and device drivers, file systems, secondary storage management, and an introduction to critical sections and deadlocks.
Introduction to Neuroscience
Introductory course that explores the nature of the brain processes underlying behavior, including consideration of basic neurophysiology and the physiology of sensation, learning, and emotion.
Spring of 2025
Professional Responsibility in Computer Science and Software Engineering
Professional and ethical responsibilities of computer scientists and software engineers as influenced by growth in computer use and networks. Costs and benefits of computer technology. Risks and liabilities of safety-critical systems. Social implications of the Internet. Interaction between human values and technical decisions involving computing. Intellectual Property. Global impact of computing.