Computer Science

Computing is a discipline that requires and develops capabilities in solving deep, multidimensional problems requiring imagination and sensitivity to a variety of concerns. A major in computer science will provide you with a foundation of knowledge, problem solving skills and habits of logical thinking that will serve as a competitive advantage to you in whatever career you pursue.

If you want to make a positive difference in the world, study computing. Computing drives innovation in the sciences (such as the human genome project, AIDS vaccine research, environmental monitoring and protection, just to mention a few), and also in engineering, business, entertainment and education.

A Multiple Entry Major

Our first class assumes no previous programming experience. We'll help you develop the skills you need to succeed in computer science. Students with excellent preparation in AP or college-level classes will head straight into advanced classes. If you have a non-traditional background, we'll evaluate and place you based on your problem solving and programming skills.

A Liberal Arts Major

Computer science is a discipline that contributes to the success of many other disciplines. Our CS major recognizes this fact and offers classes that combine computer science with other fields of study. We'll encourage you to combine your interests in computer science with other fields, such as business, science, art, and mathematics, through minors, majors, and independent studies.

A Confident Major

Every CS major completes a semester-long project. If you're the driven type, you'll find a wealth of additional ways to stand out. You can take a paid summer internships, join faculty research projects or work on campus in technology-related fields.

Whether you want to go to graduate school or find employment in industry, admission counselors and potential employers are always impressed by students who have accomplished something unique and challenging before they graduate. While all college graduates will have similar lists of courses on their transcripts, you will be the only one to have completed your unique project and opportunities.

What do computer science majors study?

  • Fundamentals of computer science
  • Data structures
  • Problem solving
  • Algorithmic analysis
  • And other topics that interest you, from programming languages to computer networks to artificial intelligence

Computer science placements

Previous graduates' career and professional placements have included:

  • Motorola
  • Synergy International Consulting
  • TDC Solutions
  • Lockheed Martin
  • Ipop.com
  • IBM

Graduate school placements have included:

  • University of Southern California
  • University of Illinois
  • University of Indianapolis
  • University of Notre Dame
  • Tufts University

Courses

Number
Name
Credits
Description
CS 210
Scientific Modeling
1
Computer Science is one of the most versatile tools for scientists. This course will use real science problems from physical and biological sciences to teach students how to build computational models to explain these problems. Focus is on the use of modeling as part of the scientific process to lead to further discovery. A working knowledge of mathematics and science is expected. Offered alternate years.
CS 220
Fundamentals of Computer Science
1
An introduction to problem-solving, program design, testing methodology and structure of programming languages. Students will learn to program in a high-level programming language to solve problems from a wide range of computer science topics. This class makes use of laboratory experiences and is suitable for students with little to no previous experience in computer science. Satisfies the Abstraction and Formal Reasoning LADR.
CS 223
Data Structures
1
A study of the implementation and evaluation of advanced data structures. Data structures include linked lists, stacks, queues, trees, graphs and tables with the use of recursive algorithms to perform operations. Prerequisites: 220.
CS 225
Algorithmic Analysis
1
A systematic study of creating and evaluating algorithms, the process of solving problems. Brute force, divide-and-conquer, and problem transformation techniques are used to solve problems. Big Theta notation, best-average- worse case analysis, and notions of NP completeness are used to evaluate problems. Recommended by end of junior year. Prerequisites: 220 and one of Mat 243 or Mat 220.
CS 234
Computer Organization
1
Fundamentals of computer organization, virtual machines, gate logic, binary arithmetic, elementary architecture, microprocessors, memory organization, machine language, assemblers and I/O implementation. Prerequisite: 220.
CS 320
Topics in Software Development
1
Introduction to the various facets of software development such as modular programming, design patterns, source code version control, test-driven development and documentation. Prerequisite: CS 223. May be repeated for credit with permission of the instructor.
CS 324
GUI and Event-Driven Programming
1
Focuses on the development of graphical user interfaces (GUIs) and the programming paradigms entailed by such software. Students will build their skills in problem solving and software development by encountering problems relevant to GUIs. Event handling and GUI APIs are introduced. Offered alternate years. Prerequisite: 223
CS 326
Functional Programming
1
Introduction to the principles of functional programming, including higher-order functions, recursive definitions, list processing, and pattern matching. Offered alternate years. Prerequisite: CS 223.
CS 329
Database with Web Applications
1
Introduction to fundamental concepts of database management systems, including database design, data definition languages, data manipulation languages, and database system implementation. Particular emphasis will be placed on implementation of web-based applications that make use of databases. Offered alternate years. Prerequisite: 223.
CS 335
Theory of Computation
1
A mathematical investigation of the fundamental capabilities and limitations of computers. Finite automata, Turing machines, regular and context-free languages, computability and solvability, the halting problem, Church's thesis. Offered alternate years. Prerequisite: 225.
CS 340
Computer Networks
1
A study of modern communication systems, predominantly the Internet. Topics include: the client-server paradigm, use of existing protocols, creationof new protocols, P2P applications, routing algorithms, distributed sharing of resources and communicating in the face of unreliable networks. Offered alternate years. Prerequisite: 223
CS 345
Operating Systems
1
Theory of operating systems, including memory management, concurrent processes, scheduling algorithms, device drivers, and file systems. Offered alternate years. Prerequisite: 223 or 234 (preferably both).
CS 348
Artificial Intelligence
1
Knowledge representation, natural language processing, models of reasoning and learning, heuristic search methods, connectionism, and robotics. Offered alternate years. Prerequisite: 223 and 225.

Faculty