Courses
Spring 2007 Courses
- 101. Introduction to Computer Science (formerly Computer Science 107)
- Stephen Majercik M 11:30 - 12:55, W 11:30 - 12:55 Searles-126
- What is computer science, what are its applications in other disciplines, and its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Assumes no prior knowledge of programming or computers.
- 101. Introduction to Computer Science (formerly Computer Science 107)
- Adriana Palacio T 1:00 - 2:25, TH 1:00 - 2:25 Searles-126
- What is computer science, what are its applications in other disciplines, and its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Assumes no prior knowledge of programming or computers.
- LAB
- Stephen Majercik T 2:30 - 3:55 Searles-128
- What is computer science, what are its applications in other disciplines, and its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Assumes no prior knowledge of programming or computers.
- LAB
- Adriana Palacio M 2:30 - 3:55 Searles-128
- What is computer science, what are its applications in other disciplines, and its impact in society? A step-by-step introduction to the art of problem solving using the computer and the Java language. Provides a broad introduction to computer science and programming through real-life applications. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Assumes no prior knowledge of programming or computers.
- 210. Data Structures
- Eric Chown M 1:00 - 2:25, W 1:00 - 2:25 Searles-126
- Solving complex algorithmic problems requires the use of appropriate data structures such as stacks, priority queues, search trees, dictionaries, hash tables, and graphs. It also requires the ability to measure the efficiency of operations such as sorting and searching in order to make effective choices among alternative solutions. This course is a study of data structures, their efficiency, and their use in solving computational problems. Laboratory exercises provide an opportunity to design and implement these structures.
- LAB
- Eric Chown TH 2:30 - 3:55 Searles-128
- Solving complex algorithmic problems requires the use of appropriate data structures such as stacks, priority queues, search trees, dictionaries, hash tables, and graphs. It also requires the ability to measure the efficiency of operations such as sorting and searching in order to make effective choices among alternative solutions. This course is a study of data structures, their efficiency, and their use in solving computational problems. Laboratory exercises provide an opportunity to design and implement these structures.
- 250. Principles of Programming Languages
- Eric Chown M 11:30 - 12:55, W 11:30 - 12:55 Searles-223
- Focuses on different paradigms for solving problems, and their representation in programming languages. These paradigms correspond to distinct ways of thinking about problems. For example, �functional� languages (such as Haskell) focus attention on the behavioral aspects of the real-world phenomena being modeled; �logic programming� languages (such as Prolog) focus attention on the declarative aspects of problem-solving. Covers principles of language design and implementation including syntax, semantics, type systems, control structures, and compilers.
- 289. Theory of Computation
- Adriana Palacio T 8:30 - 9:55, TH 8:30 - 9:55 Searles-126
- What is computation? This course studies this question, and examines the principles that determine what computational capabilities are required to solve particular classes of problems. Topics include an introduction to the connections between language theory and models of computation, and a study of unsolvable problems.
- 380. Artificial Intelligence and Computer Games
- Stephen Majercik T 1:00 - 2:25, TH 1:00 - 2:25 Searles-224 (Linux Lab)
- In the same way that robotic soccer has become a popular test-bed for robotics research, computer games are becoming an increasingly utilized test-bed for the development of new techniques in certain areas of artificial intelligence (AI) research (e.g. knowledge representation; search; planning, reasoning, and learning under uncertainty). At the same time, AI techniques are becoming increasingly necessary in commercial computer games to provide interesting, realistic synthetic characters (entities, human or otherwise, that assist or oppose the game player). Explores that symbiosis by studying a subset of AI techniques that are relevant to the creation of synthetic characters in computer games, using these techniques to create AI-endowed synthetic characters (e.g. characters that can learn from their experience and thus do not become predictable), and testing them in actual computer games.