-->

100 level courses:

CS 112 in Silico: 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. (Analytical Reasoning)

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. (Analytical Reasoning)

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.

200 level courses:

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: CS 195

CS 281: Applied Groups 0-1 credits

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, 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.(Alternate Year)

300 level courses:

CS 310: Algorithms and Data Structures 3 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: Functional Programming 3 credits

An introduction to Functional Programming, one of the three major programming paradigms. Focuses on well-structured interactive program development using a modern functional programming language. Introduces the formal study of data types and the meaning of programs.

CS 340: 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.

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 (Alternate Year)

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. (Alternate Year)

CS 360: Parallel 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, phyics, chemistry and other areas. Prerequisite: CS 310 (Alternate Year)

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.(Alternate Year)

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

400 level courses:

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 (Alternate Year)

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 (Alternate Year)

CS 430: Database Systems 3 credits

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.(Alternate Year)

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 (Alternate Year)

CS 481: Internships, Field Studies and Other Field Experiences 3 credits

CS 482: Special Topics 3 credits

Selected topics determined by the instructor for upper-level study.


CS 483: Teaching Assistants 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 paper.

CS 486: Student Research

CS 488: Senior Seminar 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.

CS-affiliated courses:

MATH 180: Calculus A 5 credits

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.(Analytical Reasoning)

MATH 190: Discrete Mathematics 3 credits

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. (Analytical Reasoning)

MATH 195: Math Toolkit 2 credits

An introduction to the principal topics in mathematics needed by a Computer Science major, and intended for students of computer science. 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.

MATH 280: Calculus B 5 credits

A continuation of MATH 180, including techniques of integration, applications of the definite integral, infinite sequences and series and elementary differential equations. Prerequisite: MATH 180 (Analytical Reasoning)

MATH 310: Linear Algebra 3 credits

Topics include matrices, vector spaces, linear transformations and their applications. Prerequisite: MATH 280

PHYS 230: General Physics II: Electricity and Magnetism, Optics and Modern Waves 4 credits

Electrostatics, current electricity, electromagnetism, optics, electromagnetic waves and modern physics are investigated. Lab. Prerequisite: PHYS 120 (Analytical Reasoning and Scientific Inquiry)

PHYS 235: Analytical Physics II: Electromagneticism and Waves 5 credits

Electrostatics, electromagnetism, electric and magnetic fields, waves and optics are treated using analytical techniques of calculus and vector analysis. Lab. Prerequisite: PHYS 125. Co-requisite: MATH 280(Analytical Reasoning and Scientific Inquiry)


Valid
              CSS! Valid XHTML 1.0 Transitional