Artificial Intelligence Research Laboratory

Department of Computer Science

Jia Tao

The following is a list of courses I took.

  • Math 601. Mathematical Logic I. First semester of full-year course. Completeness and compactness of propositional and predicate logic, incompleteness and undecidability of set theory and arithmetic, Goedel's theorems, recursive functions, computability, models, ultraproducts, and ultralimits.
  • Math 602. Mathematical Logic II. Continuation of Math 601.
  • Com S 634. Theory of Games, Knowledge and Uncertainty. Fundamentals of Game Theory: individual decision making, strategic and extensive games, mixed strategies, backward induction, Nash and other equilibrium concepts. Discussion of Auctions and Bargaining. Repeated, Bayesian and evolutionary games. Interactive Epistemology: reasoning about knowledge in multiagent environment, properties of knowledge, agreements, and common knowledge. Reasoning about and representing uncertainty, probabilities, and beliefs. Uncertainty in multiagent environments.
  • Com S 512. Formal Methods in Software Engineering. A study of formal techniques for specification and verification of software systems. Topics include temporal logic, propositional and predicate logic, model checking, process algebra, theorem proving. Tools providing automated support for these techniques.
  • Com S 661. Advanced Topics in Database Systems. Advanced topics chosen from the following: database design, data models, query systems, query optimization, incomplete information, logic and databases, multimedia databases; temporal, spatial and belief databases, semistructured data, concurrency control, parallel and distributed databases, information retrieval, data warehouses, wrappers, mediators, and data mining.
  • Com S 552. Principles of Operating Systems. A comparative study of high-level language facilities for process synchronization and communication. Formal analysis of deadlock, concurrency control and recovery. Protection issues including capability-based systems, access and flow control, encryption, and authentication. Additional topics chosen from distributed operating systems, soft real-time operating systems, and advanced security issues.
  • Com S 633. Advanced Topics in Computational Randomness. Advanced study of the role of randomness in computation. Randomized algorithms, derandomization, and probabilistic complexity classes. Kolmogorov complexity, algorithmic information theory, and algorithmic randomness. Applications chosen from cryptography, interactive proof systems, computational learning, lower bound arguments, mathematical logic, and the organization of complex systems.
  • Com S 587. Principles of Distributed and Network Programming. Programming paradigms for building modern distributed applications, including multithreaded client-server programming, distributed object frameworks and programming languages. Directory services. Web-based computing. Mobile computing. Peer-to-Peer computing. Network multimedia applications. Reliability and manageability of networked systems, including aspects of distributed system security, verification of concurrent systems, and network management.
  • Com S 531. Theory of Computation. A systematic study of the fundamental models and analytical methods of theoretical computer science. Computability, the Church-Turing thesis, decidable and undecidable problems, and the elements of recursive function theory. Time complexity, logic, Boolean circuits, and NP-completeness. Role of randomness in computation.
  • Com S 561. Principles of Database Systems. Database models. Algebraic, first order, and user-oriented query languages. Database schema design. Physical storage, access methods, and query processing. Transaction management, concurrency control, and crash recovery. Database security. Parallel and distributed databases, and special purpose databases. Data warehousing and data mining.
  • Com S 562. Implementation of Database Systems. Implementation topics and projects are chosen from the following: Storage architecture, buffer management and caching, access methods, design, parsing and compilation of query languages and update operations, application programming interfaces (APIs), user interfaces, query optimization and processing, and transaction management for relational, object-oriented, semistructured (XML), and special purpose database models; client-server architectures, metadata and middleware for database integration, web databases.
  • Com S 511. Design and Analysis of Algorithms. A study of basic algorithm design and analysis techniques. Advanced data structures, amortized analysis and randomized algorithms. Applications to sorting, graphs, and geometry. NP-completeness and approximation algorithms.