[logo.png] computerscience@earlham.edu

Classes
to take


WebDB | CS Mail | Earlham Mail | Earlham College | Earlham Libraries | Word Online

Courses:

[ 100 level | 200 level | 300 level | 400 level | CS-Affiliated ]

Current Course Offerings

Course Descriptions

Click on the name of the course to see a full description.

100 level courses:


CS128: Programming and Problem Solving
3 credits (Natural Science credit)

An introduction to computers, computer science, and programming with an emphasis on problem analysis and algorithmic solutions.

CS130: Symbolic Logic
See MATH130

CS150: Earlham Seminar
4 credits (Earlham Seminar credit)
Topics vary.

Offered for first-year students.

CS180: Calculus A
See MATH180

CS190: Discrete Mathematics
See MATH190

200 level courses:


CS235: Calculus B
See MATH235

CS256: Advanced Programming
4 credits
Prerequisite: CS128
Corequisite: MATH195

A systematic introduction to the methodology of problem solving with computers. Emphasizes the design and development process, data abstraction and fundamental data structures, programming for reuse and the development of large programs. Introduces the basic notions of software engineering and analysis of algorithms. Discusses ethical issues in computing.

300 level courses:


CS310: Algorithms and Data Structures
3 credits
Prerequisite: CS256
Corequisite: MATH190

A study of algorithms and the data structures on which they are based, with a focus on the analysis of the correctness and complexity in terms of running time and space.

CS320: Principles of Computer Organization
3 credits
Prerequisite: CS310

An introduction to the structure and function of computing machines. The concept that computing machines consist of layers of virtual machines is used as an organizing principle. Topics include information representation, automata, assembly language programming, register machines, microprogramming, conventional machines, and language processors.

CS345: Software Engineering
3 credits
Prerquisite: CS310

The theory, techniques, and technologies associated with the design, construction, and testing of software systems, particularly large software systems. Students learn various approaches to functional decomposition and system architecture. Explores the tools used for building and testing software systems, particularly in the context of open source software.

CS350: Electronics and Instrumentation
See PHYS350

CS360: Parallel Computation
3 credits
Prerequisite: CS310

The application of parallel programming and problem-solving techniques to solve computationally intensive problems in a variety of disciplines. Parallel computation invites new ways of thinking about problems and is an increasingly important skill in corporate and research environments. Students learn about programming paradigms used in parallel computation, the organization of parallel systems, and the application of programs and systems to solving problems in mathematics, physics, cryptography, and other areas.

CS380: Theory of Computation
3 credits
Prerequisite: CS310

A study of computability and uncomputability from a perspective which views the problemd to be solved as formal languauges. Study of automata-theoretic (finite state automata, pushdown automata and Turing machines) and generative (regular languages, regular, context-free and unrestricted phrase structure grammars) mechanisms along with the properties of the classes of languages they can define.

400 level courses:


CS410: Networks and Networking
3 credits
Prerequisite: CS320

A study of the hardware and software technology and standards which support local area networks, wide area networks, and the internet. Emphasizes the TCP/IP protocols and the associated tools which prvoide universal connectivity to a wide variety of systems around the world. Explores the network hierarchy, from the physical level (transmission media) up through client/server applications such as HTTP servers and the domain name system (DNS).

CS420: Operating Systems
3 credits
Prerequisite: CS320

A study of the software that manages the hardware and provides the interface between application programs and system resources. Topics include scheduling, memory management, persistent storage, resource contention, locking, and multi-processor synchronization. Using open source software, students explore a production quality operating system and learn by modifying it.

CS430: Database Systems
4 credits
Prerequisite: CS256 Corequisite: CS310

An introduction to database management systems. Database design and develpment are viewed from the perspective of a user, an application program, and from the database kernel itself. Focuses primarily on relation and object-oriented data models and related software.

CS440: Programming Languages
3 credits
Prerequisite: CS256
Corequisite: CS310

The nature of programming languages and the programs that implement them. Focuses on the characteristics of abstract machine languages present to programmers and the mechanisms by which they are realized on concrete hardware.

CS481: Internships, Field Studies and Other Field Experiences

CS482: Topics
3 credits
Currently (spring 2005) a graphics course using OpenGL
Prerequisite: Consent

CS483: Teaching Assistants

CS484: Ford/Knight Research Project

Collaborative research with faculty funded by the Ford/Knight Program.

CS485: Independent Study
3 credits

Investigation of a specific topic conceived and planned by the student in consultation with a faculty supervisor. culminates in a comprehensive report prepared in the style of a thesis or paper.

CS486: Student Research

CS488: Senior Seminar
3 credits
Prerequisite: Consent

Each participant completes a semester-long capstone project in a research group setting. Weekly meetings with the instructor individually and with the group as a whole. In addition, explores topics from the cultural, ethical, historical or broader scientific context of computer science in readings and discussion. Culminates in a public seminar in which each student presents his or her work. Recent topics courses have covered the areas of open source software, artificial intelligence, and robotics.

CS-affiliated courses:


MATH130: Symbolic Logic
5 credits (Natural Science)
Also listed as CS130 and PHIL130
Offered in alternate years

Topics include formal proof, quantification, and the logic of relations.

MATH180: Calculus A
5 credits (Natural Science)
Also listed as CS180

Calculus is the mathematical study of quantities that change with time and of areas and volumes. Amazingly, these two problems are intimately related. The development of calculus is one of the great discoveries of humanity, and the resulting discipline is of fundamental importance not only for students of the natural sciences, but also for anyone intending to do graduate work in the social sciences. MATH 180 is an introduction to the major issues in calculus: functions, limits derivatives, and integrals. It ends with the fundamental theorem of calculus, which relates areas to rates of change.

MATH190: Discrete Mathematics
3 credits (Natural Science)
Also listed as CS190

Provides an introduction to college mathematics and emphasizes the process of mathematical discovery and the use of proofs to validate discoveries. Topics include number theory, graph theory, counting, set theory, logic and induction.

MATH235: Calculus B
5 credits (Natural Science)
Also listed as CS235

A continuation of MATH 180, including techniques of integration, applications of the definite integral, infinite sequences and series and elementary differential equations.

MATH310: Linear Algebra
3 credits
Prerequisite: MATH235
Also listed as CS310

Topics include matrices, vector spaces, linear transformations, and their applications.

PHYS350: Electronics and Instrumentation
3 credits
Prerequisite: PHYS230 OR PHYS235
Also listed as CS350
Offered in alternate years

A laboratory-oriented course dealing with analog and digital circuits. Circuit theory is developed for diodes, transistors, operational amplifiers, and simple digital circuits. These components are then integrated to construct power supplies, oscillators, amplifiers, and primitive microcomputer systems.

Valid XHTML 1.0!