Courses
Fall 2006 Courses
- 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.
- 050. Computing: Tools and Issues
- Allen Tucker T 2:30 - 3:55, TH 2:30 - 3:55
- What is computer science? How does it differ from related disciplines, especially mathematics and the sciences? What are the core elements of computer science and how do they reveal themselves in our everyday lives? What do we need to know about computer science in order to function effectively in a technological world? Helps prepare students to address these questions. Takes a first-hand look at the nature of programming and its role in computer science. Explores the nature of the Internet—how it is designed, managed, and used effectively in commercial, academic, and governmental applications. Also examines some key social and ethical issues that have important places in a technological world, such as intellectual property, privacy, and Internet security. Combines lectures, laboratory experiences, readings, and short papers to substantively engage these questions and issues. A modest amount of programming accompanies the laboratory component. Additional laboratory work includes the use of simulators and models that add hands-on experiences to topics encountered in the readings. Students who have taken or are concurrently taking any Computer Science course numbered 100 or above do not receive credit for this course.
- 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? 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
- Adriana Palacio 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.
- LAB
- Stephen Majercik 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.
- LAB
- Adriana Palacio 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.
- 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.
- 231. Algorithms
- Stephen Majercik M 1:00 - 2:25, W 1:00 - 2:25
- The study of algorithms concerns programming for computational efficiency, as well as problem-solving techniques. The course covers practical algorithms and theoretical issues in the design and analysis of algorithms. Topics include divide and conquer algorithms, greedy algorithms, dynamic programming, approximation algorithms, and a study of intractable problems.
- 260. Software Design
- Allen Tucker M 2:30 - 3:55, W 2:30 - 3:55
- This course studies the process for designing complex software applications, with a special focus on the use of formal design and verification methods. The study of formal methods includes contemporary methodologies and tools like "design by contract," the Unified Modeling Language (UML) and the Java Modeling Language (JML). In this course, students will evaluate the overall strengths and limitations of formal specification and verification in the software design process. A substantial software design project will be used as a case study for working with various concepts, tools, and techniques in a laboratory setting.
- 320. Robotics
- Eric Chown T 1:00 - 2:25, TH 1:00 - 2:25
- Robotics is a challenging discipline that incorporates theoretical ideas from a number of different areas—artificial intelligence, cognitive science, operations research—in pursuit of an exciting, practical application: programming robots to do useful tasks. Two of the biggest challenges for robotics are building effective models of the world using inaccurate and limited sensors, and using such models for efficient robotic planning and control. Students address these problems from both a theoretical and a practical perspective by participating in multiple programming projects that use both simulated and actual robots.
- 325. Cryptography and Network Security
- Adriana Palacio T 2:30 - 3:55, TH 2:30 - 3:55
- The smooth functioning of society increasingly depends on the flow of information through computer networks. Problems of privacy, authenticity, and security of information are increasingly important, and cryptography is essential in addressing these issues. Covers cryptographic techniques and their application in network security, including mathematics of cryptography, algorithms, computational issues in cryptography, security systems, and social and political issues surrounding cryptography and security.
Previous Semesters Courses