Program Highlights

Computer Science Major Requirements

The computer science major provides the opportunity for students to develop skills in writing algorithms to solve problems across academic disciplines; to design and write software in a variety of languages; to understand the fundamental concepts and issues in data structures, systems administration, operating system design, web programming, networking, computer graphics, and artificial intelligence; and to develop the ability to communicate their knowledge effectively.

This program prepares majors for postgraduate study in computer science and for entry-level positions as computer professionals in industry. Students planning to major in computer science may earn either a B.A. or B.S. degree. A computer science major should plan to enroll in Computer Science 135 or a higher course during their first semester at Millikin. Placement in the proper computer science course will be determined in consultation with the faculty advisor based on the student’s previous record in computer science.

To complete a major in computer science, students must successfully complete the following course of study.

  • CS135 - Introduction to Computer Science I
  • CS235 - Introduction to Computer Science II
  • CS308 - Theory of Computing
  • CS337 - Algorithms and Data Structures
  • CS430 - Computer Architecture
  • CS434 - Operating Systems
  • CS450 - Parallel and Distributed Processing
  • CS499 - Senior Seminar
  • IS120 - Spreadsheet and Database Apps
  • IS311 - IT Infrastructure
  • IS321 - Systems Analysis and Design
  • IS370 - Database Application and Development
  • MA140 - Calculus I
  • MA208 - Discrete Mathematics
  • MA240 - Calculus II
  • MA303 - Linear Algebra

Minor in Computer Science

The Computer Science Minor offers students in all majors the opportunity to develop skills in writing algorithms to solve problems and to understand the fundamental concepts of computer science. To receive a minor in computer science a student must successfully complete the following course of study.

  • MA208.  Discrete Mathematics
  • CS135.  Introduction to Computer Science
  • CS235.  Introduction to Computer Science II
  • CS308.  Theory of Computation
  • CS337.  Algorithms and Data Structures

Two additional courses, one of which must bear a CS or IS prefix, selected from

  • CS342.  Artificial Intelligence
  • IS321.    Systems Analysis and Design
  • IS470.    Business Intelligence and Big Data
  • MA230.  Regression Analysis and Time Series
  • MA313.  Numerical Analysis
  • MA420.  Mathematical Logic

Mathematics majors with a Data Science emphasis may not earn a Computer Science Minor.

Computer Science Courses

CS135 - Introduction to Computer Science I A first computer science course taken by students in mathematics and science, as well as those seeking the dual-degree program in computer science. Topics include fundamentals of computation and algorithmic problem-solving, data types, control structures, basic graphics, the object-oriented programming paradigm and applications. Introduces a high-level programming language such as Python. Prerequisite: MA110 or equivalent
CS235 - Introduction to Computer Science II A continuation of CS 135. Emphasizes analysis of algorithms, computational mathematics, and advanced object-oriented programming (interfaces, multiple inheritance). Topics include abstract data types (stacks, queues, lists, strings, trees), computational complexity, recursion, optimization, stochastic programming, and Monte Carlo simulation. Programs are implemented in a high-level programming language such as Python. Prerequisite: CS135
CS308 - Theory of Computation An introduction to the theory of computation emphasizing formal languages, automata, and computability. Includes computational complexity and NP-completeness. Prerequisite: MA208.
CS337 - Algorithms and Data Structures Study of algorithms and data structures. Prerequisite: CS235 or consent of instructor
CS342 - Artificial Intelligence Introduction to the theory and practice of artificial intelligence. Topic areas selected from heuristic search techniques, knowledge representation, symbolic reasoning, fuzzy logic, planning, learning, natural language processing, expert systems, genetic programming, intelligent agents, swarm intelligence, and neural networks. Prerequisite: MA208 and CS337, or consent of instructor
CS360 - Topics in Computer Science Elective topics in computer science. Examples include natural language processing, human-computer interaction, mobile computing, embedded computing, neural networks, crypto-currency, game design, programming languages, and cryptography.
CS430 - Computer Architecture This course provides an introduction to the design of computer architecture.  Topics include memory allocation, type representation, CPU performance, computer arithmetic, memory management, control structures, and input/output devices.
CS434 - Operating Systems Major components of operating systems are discussed as well as similarities and differences between common operations systems (OS, Windows, Linux, etc.). Topics include scheduling, file systems, memory and device management, resource allocation, virtual machines, and security.
CS450 Parallel and Distributed Processing An introduction to parallel algorithms and algorithms for distributed systems. Topics covered include task decomposition, communication, parallel algorithms and analysis, architecture, and models.
CS491 - Independent Study in Computer Science In depth study of a particular area or topic in computer science.
CS499 - Senior Seminar Students will design, implement, and test a substantial computer solution for a third-party stakeholder.  Grading will include periodic progress reports, evaluations by instructor and the stakeholder(s), and a final presentation.