Apply Yourself
It's quick & easy: apply online now.
| Number | Name | Units | Description |
|---|---|---|---|
| CS 110 | Fundamentals of Computer Science | 1 | An introduction to problem-solving, program design, testing methodology and programming languages. Students will learn to program in a high level programming language to solve problems from a wide range of topics such as graphics, modeling, information processing and robotics. This class makes use of laboratory experiences and is suitable for students that have never taken a computer science class as well as students with limited programming experience. Satisfies the Abstraction and Formal Reasoning LADR. |
| CS 125 | Principles of Computer Animation | 1 | Students will learn the principles of animation developed in the 1930's by traditional animators. These principles involve a study of motion and the mind's ability to perceive motion. Principles include the notion of timing, squish and squash, arcs of motion, follow through and secondary action. Students will apply the principles of animation with the aid of 3D animation software. At the end of this course each student will develop a short animation clip. Offered alternate years. |
| CS 150 | Interdisciplinary Topics I | 1 | An interdisciplinary course that bridges the disciplines of computer science and at least one other discipline. May be repeated with permission of instructor. |
| CS 210 | Scientific Modeling | 1 | Computer Science is one of the most versatile tools for scientists. This course will use real science problems from physical and biological sciences to teach students how to build computational models to explain these problems. Focus is on the use of modeling as part of the scientific process to lead to further discovery. A working knowledge of mathematics and science is expected. Offered alternate years. |
| CS 223 | Data Structure | 1 | A study of the implementation and evaluation of advanced data structures. Data structures include linked lists, stacks, queues, trees, graphs and tables with the use of recursive algorithms to perform operations. Prerequisites: 110. |
| CS 225 | Algorithmic Analysis | 1 | A systematic study of creating and evaluating algorithms, the process of solving problems. Brute force, divide-and-conquer, and problem transformation techniques are used to solve problems. Big Theta notation, best-average-worse case analysis, and notions of NP completeness are used to evaluate problems. Recommended by end of junior year. Prerequisites: 110 and one of Mat 143 or Mat 220. |
| CS 234 | Computer Organization | 1 | Fundamentals of computer organization, virtual machines, gate logic, binary arithmetic, elementary architecture, microprocessors, memory organization, machine language, assemblers and I/O implementation. Prerequisite: 110. |
| CS 250 | Interdisciplinary Topics II | 1 | An interdisciplinary course that bridges the disciplines of computer science and at least one other discipline. May be repeated with permission of instructor. |
| CS 324 | GUI and Event-Driven Programming | 1 | Focuses on the development of graphical user interfaces (GUIs) and the programming paradigms entailed by such software. Students will build their skills in problem solving and software development by encountering problems relevant to GUIs. Event handling and GUI APIs are introduced. Offered alternate years. Prerequisite: 223 |
| CS 329 | Database with Web Applications | 1 | Introduction to fundamental concepts of database management systems, including database design, data definition languages, data manipulation languages, and database system implementation. Particular emphasis will be placed on implementation of web-based applications that make use of databases. Offered alternate years. Prerequisite: 223. |
| CS 335 | Theory of Computation | 1 | A mathematical investigation of the fundamental capabilities and limitations of computers. Finite automata, Turing machines, regular and context-free languages, computability and solvability, the halting problem, Church's thesis. Offered alternate years. Prerequisite: 225. |
| CS 336 | Programming Languages | 1 | A comparison of design features for selected procedural, functional, logical, or string oriented languages, syntax and semantics, assignment, control structures, data types, procedures and parameter passing, nesting and scoping. Offered alternate years. Prerequisite: 223. |
| CS 340 | Computer Networks | 1 | A study of modern communication systems, predominantly the Internet. Topics include: the client-server paradigm, use of existing protocols, creation of new protocols, P2P applications, routing algorithms, distributed sharing of resources and communicating in the face of unreliable networks. Offered alternate years. Prerequisite: 223 |
| CS 345 | Operating Systems | 1 | Theory of operating systems, including memory management, concurrent processes, scheduling algorithms, device drivers, and file systems. Offered alternate years. Prerequisite: 223 or 234 (preferably both). |
| CS 348 | Artificial Intelligence | 1 | Knowledge representation, natural language processing, models of reasoning and learning, heuristic search methods, connectionism, and robotics. Offered alternate years. Prerequisite: 223 and 225. |
It's quick & easy: apply online now.
Browse the courses you'll be taking.
… life at Hanover like?
Get in touch with your Admission Counselor directly.
Explore our beautiful & unique campus.
Read up on first hand experiences of current students.
See the latest photos from around Hanover.