Courses

Fall 2008

  • Visit Bearings to search for courses by title, instructor, department, and more.
  • Login to Blackboard. Instructional materials are available on a course-by-course basis.
101. Introduction to Computer Science
Stephen Majercik M 11:30 - 12:55, W 11:30 - 12:55
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
Adriana Palacio T 1:00 - 2:25, TH 1:00 - 2:25
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
Laura Toma T 11:30 - 12:55, TH 11:30 - 12:55
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.

231. Algorithms
Laura Toma T 2:30 - 3:55, TH 2:30 - 3:55
An introductory course on the design and analysis of algorithms building on concepts from Computer Science 210. Introduces a number of basic algorithms for a variety of problems such as searching, sorting, selection, and graph problems (e.g. spanning trees and shortest paths). Discusses analysis techniques, such as recurrences and amortization, as well as algorithm design paradigms such as divide-and-conquer, dynamic programming, and greedy algorithms.

270. Artificial Intelligence
Stephen Majercik M 2:30 - 3:55, W 2:30 - 3:55
Explores the principles and techniques involved in programming computers to do tasks that would require intelligence if people did them. State-space and heuristic search techniques, logic and other knowledge representations, reinforcement learning, neural networks, and other approaches are applied to a variety of problems with an emphasis on agent-based approaches. Formerly Computer Science 370.

325. Modern Cryptography
Adriana Palacio T 10:00 - 11:25, TH 10:00 - 11:25
The smooth functioning of our society increasingly depends on the flow of information through computer networks. Problems of privacy and authenticity of information have become extremely important, and cryptography is an essential tool in addressing these issues. An introduction to modern cryptography, covering topics such as block ciphers, modes of operation, private-key encryption, hash functions, digital signatures, public-key encryption, RSA, the discrete logarithm problem, public-key infrastructure, key distribution, and various applications. Emphasizes a rigorous mathematical approach including formal definitions of security goals and proofs of protocol security, and identification of weaknesses in designs.