Course Descriptions
Click on the name of the course to see a full description.
- CS127: 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.
*This course does not fulfill a GenEd requirement.
- 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
- CS180: Calculus A
- See MATH180
- CS190: Discrete Mathematics
- See MATH190
- CS235: Calculus B
- See MATH235
- CS256: Advanced Programming
- 4 credits
- Prerequisite: CS127 OR 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.
- CS260: Philosophy of Minds and Machines
- 3 credits (Philosophy and/or Religion)
- Prerequisites: HumA, HumB
- Also listed as PHIL260
- Offered in alternate years
- Examines issues in the philosophy of mind from the perspective of recent work in artificial intelligence and cognitive science. Most of these issues can benefit from multidisciplinary perspectives afforded by philosophy, psychology, biology, mathematics, linguistics, computer science, and anthropology. Participation of students from these and related fields is encouraged.
- 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.
- CS340: Logical Systems
- 4 credits
- Prerequisite: PHIL130 (MATH130) OR CS127 OR CS128 OR instructor consent
- Also listed as MATH340 and PHIL340
- Offered in alternate years
- A second course in logic on the properties of formal systems and the metatheory of standard first-order logic. Focuses on proof theory, model theory, and the important limitative results of the 20th century, including Gödel's theorems. Topics may include recursive function theory, computability, paradoxes, non-standard logics, and the nature and limits of formalism.
- 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.
- 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
- Prequisite: 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.
- CS480: Senior Seminar
- 3 credits
- Prequisite: 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.
- CS481: Internships, Field Studies and Other Field Experiences
- CS482: Artificial Intelligence
- 3 credits
- Prequisite: 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
- 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.
- MATH340: Logical Systems
- See CS340
- 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.
|