Courses

Spring 2006 Courses

101. Introduction to Computer Science
Stephen Majercik T 10:00 - 11:25, TH 10:00 - 11:25
What is Computer Science, what are its applications in other disciplines, and its impact in society? This course provides a broad introduction to computer science and programming through real-life applications. It does not assume any prior knowledge of programming or computers. The course is a step-by-step introduction to the art of problem solving using the computer and uses the Java language. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Intended for students not intending to major in computer science, as well as for majors and for those with interest in programming with application in other sciences.
101. Introduction to Computer Science
Laura Toma 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? This course provides a broad introduction to computer science and programming through real-life applications. It does not assume any prior knowledge of programming or computers. The course is a step-by-step introduction to the art of problem solving using the computer and uses the Java language. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Intended for students not intending to major in computer science, as well as for majors and for those with interest in programming with application in other sciences.
LAB
Stephen Majercik M 2:30 - 3:55
What is Computer Science, what are its applications in other disciplines, and its impact in society? This course provides a broad introduction to computer science and programming through real-life applications. It does not assume any prior knowledge of programming or computers. The course is a step-by-step introduction to the art of problem solving using the computer and uses the Java language. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Intended for students not intending to major in computer science, as well as for majors and for those with interest in programming with application in other sciences.
LAB
Laura Toma T 2:30 - 3:55
What is Computer Science, what are its applications in other disciplines, and its impact in society? This course provides a broad introduction to computer science and programming through real-life applications. It does not assume any prior knowledge of programming or computers. The course is a step-by-step introduction to the art of problem solving using the computer and uses the Java language. Weekly labs provide experiments with the concepts presented in class, and problems that arise in real-life. Intended for students not intending to major in computer science, as well as for majors and for those with interest in programming with application in other sciences.
210. Data Structures
Eric Chown 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.
LAB
Eric Chown W 2:30 - 3: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.
250. Principles of Programming Languages
Eric Chown T 1:00 - 2:25, TH 1:00 - 2:25
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
Stephen Majercik T 8:30 - 9:55, TH 8:30 - 9:55
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.
350. GIS Algorithms and Data Structures
Laura Toma M 2:30 - 3:55, W 2:30 - 3:55
A study of geographic information systems (GIS), large datasets that handle geographical data such as boundaries of countries; course of rivers; height of mountains; and location of cities, roads, railways, and power lines. GIS can help determine the closest public hospital, find areas susceptible to flooding or erosion, track the position of a car on a map, or find the shortest route from one location to another. Because GIS deal with large datasets, making it important to process data efficiently, they provide a rich source of new research problems in computer science. Topics covered include data representation, triangulation, range searching, point location, map overlay, meshes and quadtrees, terrain simplification, and visualization.

Previous Semesters Courses