Complexity Theory B Topics in computational complexity theory with an emphasis on combinatorial problems in complexity. Computational Geometry Mulmuley A seminar on topics in computational geometry. A seminar in current research topics in computing theory. Reading and Research Supervised readings in computer science. A project or written report is often required.
Students learn functional and object-oriented programming.
Topics include control and data abstraction, self-reference, time and space analysis, and basic algorithms and data structures. A broad overview of various programming languages, their distinctive features, and how those features are provided by the hardware. Programming language design aims at the closest possible correspondence between the structures of a program and of the problem that it solves. This course studies some of the structural concepts affecting programming languagesiterative and recursive control flow, data types and type checking, procedural vs. functional programming, modularity and encapsulation, fundamentals of interpreting and compiling, and formal descriptions of syntax and semantics. Students write short programs in a number of radically different languages to illuminate the variety of possible designs.