The Lafayette College Computer Science department offers a number of courses to students seeking to gain a broader appreciation of the depth available in the field. TheseĀ course descriptions will be of value to anyone who seeks to understand what the department has to offer.


CS102. Principles of Computer Science I

A rigorous introduction to object-oriented design and implementation. This course requires considerable analytical ability; it is not a course in computer literacy or basic computer skills.
Meeting time: 3 hours lecture, 3 hours laboratory.
Course offered: every semester.
Permission of department head required.


CS103. Principles of Computer Science II

Continuation, from CS102, of an object-oriented approach to the design and implementation of software systems.
Meeting time: 3 hours lecture, 3 hours laboratory
Prerequisite: CS102.
Course offered: every semester.


CS202. Analysis of Algorithms

The design and analysis of algorithms and their complexity. This course will study techniques for measuring algorithm complexity, fundamental algorithms and data structures, intractable problems, and algorithm design techniques.
Meeting time: 3 hours lecture.
Prerequisite: CS 103 and Math 182.
Course offered: every fall semester


CS203. Computer Organization

A study of digital logic, computer components, internal and external memory, computer arithmetic, instruction sets, interrupts, and microprogramming.
Meeting time: 3 hours lecture, 3 hours lab.
Prerequisite: CS103.
Course offered: every fall semester.


CS205. Software Engineering

The analysis, design, implementation, and maintenance strategies appropriate for large software projects.
Meeting time: 3 hours lecture, 3 hours lab
Prerequisite: CS103
Course offered: every spring semester.


CS301. Principles of Programming Languages

An introduction to the theory of the design and implementation of contemporary programming languages. Topics include the study of programming language syntax, programming language semantics, program translators, and imperative, functional, logic and object-oriented language paradigms.
Meeting time: 3 hours lecture, 3 hours lab.
Prerequisite: CS202, CS203
Course offered: spring semester of even-numbered years.


CS303. Theory of Computation

An introduction to the theoretical foundations of computer science and formal models of computation. Topics will include formal languages, finite automata, computability, and undecidability.
Meeting time: 3 hours lecture.
Prerequisite: PHIL 200 and CS 202
Course offered: spring semester of odd-numbered years.


CS305. Computer Networks

The implementation and use of computer networks. Topics will include the ISO reference model, communication protocols, local-area and wide-area networks, and satellite communications.
Prerequisites: CS203.
Corequisite: CS205.
Meeting time: 3 hours lecture, 3 hours lab.
Course offered: spring semester of odd-numbered years.


CS320. Database Management Systems

This course examines the organization, design, and implementation of data base management systems.
Meeting time: 3 hours lecture, 3 hours lab.
Prerequisites: CS205, or CS202 as a co-requisite.
Course offered: fall semester of even-numbered years.


CS390-394. Independent Study and Research

Independent study projects for juniors and seniors. Hours arranged.
Prerequisites: consent of instructor and permission of department head.
Course offered: every semester.


CS401. Computer Graphics

A course in the creation and use of graphical information and user interfaces.
Meeting time: 3 hours lecture, 3 hours lab.
Prerequisites: CS202, CS205, Math162.
Course offered: fall semester of even-numbered years.


CS406. Operating Systems

An in-depth study of operating systems, covering such topics as concurrent processes, memory management, input/output and file systems, and resource allocation.
Meeting time: 3 hours lecture, 3 hours lab.
Prerequisite: CS203 or ECE313, CS205 as a co-requisite.
Course offered: spring semester of even-numbered years.


CS410. Special Topics

This course will consider recent advances and/or subjects of current interest in computer science. The special topic(s) for a given semester will be announced prior to registration.
Prerequisite: consent of instructor.
Course offered: fall semester of odd-numbered years.


CS420. Artificial Intelligence

An introduction to the study of intelligence as computation. Topics covered will include problem-solving techniques, heuristic searches, and knowledge representation.
Meeting time: 3 hours lecture, 3 hours lab.
Prerequisite: CS202, CS205
Course offered: fall semester of odd-numbered years.


CS470. Senior Project

In this course, students work in teams on the analysis, design, and implementation of a large-scale software project.
Prerequisites: Senior standing and either CS320 or CS305.
Course offered: every spring semester.


CS495-96. Senior Thesis

A two-semester, independent research project on a topic selected by the student and approved by the department. A student must undertake such a program for two semesters to graduate with honors.
Course offered: every semester.


VAST200. Computers and Society

This course examines the computer’s cultural context: the managerial, political, legal, ethical, psychological, and philosophical implications of computing. Lecture/laboratory.
Course offered: spring semesters.