Courses with * fulfill
General
Education requirements
(A-AP) = Arts - Applied
(A-TH) = Arts -
Theoretical/Historical
(A-AR) = Analytical -
Abstract
Reasoning
(A-QR) = Analytical -
Quantitative
Reasoning
(CP) = Comparative Practices
(D-D) = Diversity - Domestic
(D-I) = Diversity - International
(D-L) = Diversity - Language
(ES) = Earlham Seminar
(IP) = Interpretive Practices
(SI) = Scientific Inquiry
(W) = Wellness
(AY) = Offered in Alternative Year
CS 112 IN SILCO: MODELING
THE REAL WORLD (3 credits)
Introduces students
to how and why we build models of the world around us and explores this
integral part of research, teaching and public policy decision making.
A multidisciplinary approach to modeling with units covering topics in
fire fighting, geography, physics and sociology. Uses technology to build
and document models, spreadsheets, mashups, wikis and similar tools.
*CS 128 PROGRAMMING AND
PROBLEM SOLVING (3 credits)
An introduction to
computers, computer science and programming with an emphasis on problem
analysis and algorithmic solutions. (A-AR, A-QR)
*CS 130 SYMBOLIC LOGIC
(3 credits)
The study of formal, deductive logic
emphasizing the methods for demonstrating the validity of arguments. Includes
truth functional propositional logic and quantification theory through the
logic of relations. Also listed as PHIL 130 and MATH 130. (A-AR) (AY)
CS 195 MATH TOOLKIT (2 credits)
An introduction to the principal topics
in mathematics needed by Computer Science and Mathematics majors. Topics
include writing numbers in various bases, set theory, proof by induction,
relations and functions, logic, matrices, complex numbers, recursion
and recurrences, and rates of growth of various functions. Also listed
as MATH 195.
CS 256 ADVANCED PROGRAMMING (4 credits)
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. Prerequisite: CS 128. Co-Requisite:
MATH 195.
CS 281 APPLIED GROUPS (0-1 credit)
Limited to members of the CS Applied
Groups. Working under the direction of a faculty or staff member, groups
of CS students provide infrastructure support for the CS Department and
the College. Current groups include: CS System and Network Administrators,
Hardware Interfacing Project, CS Content Administration Group, Pedagogical
Tools Group, Database Integration Group (WebDB) and Green Science Group.
No more than three credits total in an academic career. Prerequisite:
Consent of the instructor.
CS 290 COMPUTATIONAL SCIENCE (3 credits)
Designed for students majoring
in any of the natural sciences. An introduction to the tools and techniques
of interdisciplinary computationally based research in the natural sciences.
Computational research uses computers to simulate laboratory experiments
or to perform experiments which have no laboratory analog. Lab exercises
come from a variety of disciplines. Recommended prerequisites: CS 128
and any lab science. (AY)
CS 310 ALGORITHMS AND DATA STRUCTURES (4 credits)
A study of algorithms
and the data structures on which they are based, with a focus on the
analysis of their correctness and complexity in terms of running time
and space. Prerequisite: CS 256. Co-Requisite: MATH 190.
CS 320 PRINCIPLES OF COMPUTER ORGANIZATION (3 credits)
An introduction
to the structure and function of computing machines. The concept that
computing machines consist of layers of virtual machines is an organizing
principle. Topics include information representation, automata, assembly
language programming, register machines, microprogramming, conventional
machines and language processors. Prerequisite: CS 310.
CS 330 SCIENTIFIC COMPUTING (3 credits)
Introduces computer science tools
and techniques that support computational science and high performance
computing. Computational methods are an integral part of modern science,
including multidisciplinary research into climate change, the origins of
the universe and the underlying cause of diseases such as Alzheimer's.
Topics include scientific libraries and kernels, parallel distributed and
grid resources, and the principle software patterns found in this domain.
Prerequisites: CS 256 or consent of the instructor. (AY)
CS 345 SOFTWARE ENGINEERING (3 credits)
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. Prerequisite: CS 310. (AY)
CS 350 ELECTRONICS AND INSTRUMENTATION (3 credits)
A laboratory-oriented
course dealing with analog and digital circuits. Circuit theory is developed
for diodes, transistors, operational amplifiers and simple digital circuits.
During the course, these components are used to construct a range of
devices, including power supplies, oscillators and amplifiers. Lab. Prerequisite:
PHYS 230 or 235. Also listed as PHYS 350. (AY)
CS 360 PARALLEL AND DISTRIBUTED COMPUTATION (3 credits)
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, chemistry and other areas. Prerequisite: CS
310. (AY)
CS 370 COMPUTER GRAPHICS (3 credits)
An introduction to computer graphics
with an emphasis on Open-GL and the mathematical foundations of modeling
and rendering. Experientially oriented with frequent small projects. Requires
good coding skills in C++ or, with considerably more work, C. Mathematical
aspects based in Linear Algebra. Prerequisite: CS 256 or consent of the
instructor. (AY)
CS 380 THEORY OF COMPUTATION (3 credits)
A study of computability and non-computability
from a perspective that views the problems to be solved as formal languages.
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. Prerequisite: CS 310.
CS 410 NETWORKS AND NETWORKING (3 credits)
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 protocol suits
and the associated tools that provide 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 has HTTP servers and the domain name system. Prerequisite: CS 320.
(AY)
CS 420 OPERATING SYSTEMS (3 credits)
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.
Prerequisite: CS 320. (AY)
CS 430 DATABASE SYSTEMS (3 credits)
An introduction to database management
systems. Database design and development are viewed from the perspective
of a user, an application program and the database kernel itself. Focuses
primarily on relational and object-oriented data models and related software.
Prerequisite: CS 256. Co-Requisite: CS 310. (AY)
CS 440 PROGRAMMING LANGUAGES (3 credits)
The nature of programming languages
and the programs that implement them. Focuses on the abstract structures
programming languages provide for expressing algorithms and the methods
by which they are realized on concrete hardware. Prerequisite: CS 256.
Co-Requisite: CS 310. (AY)
CS 481 INTERNSHIPS, FIELD STUDIES AND OTHER FIELD EXPERIENCES
(1-3 credits)
CS 482 SPECIAL TOPICS (3 credits)
Selected topics determined by the instructor
for upper-level study.
CS 483 TEACHING ASSISTANTS (1-3 credits)
CS 484 FORD/KNIGHT RESEARCH PROJECT (1-4 credits)
Collaborative research
with faculty funded by the Ford/Knight Program.
CS 485 INDEPENDENT STUDY (1-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 research paper.
CS 486 STUDENT RESEARCH
CS 488 SENIOR CAPSTONE EXPERIENCE (3 credits)
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 and student presentation. Prerequisite:
Consent of the instructor.
Earlham College · 801 National Road West · Richmond, Indiana · 47374-4095
Send corrections or comments to Web Editor
Copyright information