Notes



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.