Computer Science

The Faculty 
Janet L. Beery
James Bentley
Joanna Bieri
Pani N. Chakrapani
Richard N. Cornez
Patricia Cornez
Elizabeth Doolittle
Deon Garcia
Alexander Koonce
Steven Morics
Tamara Veenstra

The Major

The Bachelor of Arts Major
The computer science major consists of 36 credits. Students can declare the major after completion of CS 110 (with a minimum grade of 2.0) and CS 111 (with a minimum grade of 2.0). Both these courses must be taken for a numerical grade. Students majoring in computer science must complete the following requirements:

6 courses/ 23-24 credits

Please note, students may choose between CS 240 or CS 223. 

CS 110 Introduction to Programming (4 Credits)

Introduction to problem-solving methods and algorithm development through the use of computer programming in the C++/Java language. Emphasis on data and algorithm representation. Topics include declarations, arrays, strings, structs, unions, expressions, statements, functions, and input/output processing.
Numeric grade only.
Corequisite: Math 121 Calculus (or Math 118 and Math 119).

CS 111 Data, File Structures, and OOP (4 Credits)

Advanced topics concerning data and algorithm representation using C++/Java. Topics include stacks and recursion, dynamic memory, pointers, linked lists, queues, trees, searching, sorting, and object-oriented programming (OOP) and classes. 
Prerequisite: CS 110 and MATH 121 Calculus (or Math 118 and Math 119).
Co-requisite MATH 121.

CS 222 Web Application Development (4 Credits)

The usage of languages like HTML, JavaScript, and XML will form the core of this course. Syntax and semantics of HTML and XML that enable creation of web pages with a variety of textual and graphical information units will be studied in depth. Client-server programming and Windows applications will also be covered.
Prerequisite: CS 111 and one of MATH 119, 121, 122, or 221. 
Offered every year.

CS 240 Theory of Algorithms with Pythons (4 Credits)

Notions of complexity analysis, along with the mathematical underpinnings of efficient algorithm design will be studied. Techniques will incorporate divide-and-conquer and searches and sorts. Additional topics will include graph theory and simulations.
Prerequisites: CS 111 and one of MATH 119, 121, 122, or 221.

CS 223 Game Programming and AI (4 Credits)

This course experiments with programming concepts and techniques used in interactive visual environments such as games. Students will explore strategies for solving recursive backtrack problems, design intelligent animations, and deconstruct physical worlds. Students will produce interactive projects, incorporating graphics, text, video, audio, and object-oriented programming, using multimedia, industry-standard authoring software.
Prerequisite: CS 111 and one of MATH 119, 121, 122, or 221.
Offered as needed. 
Numeric grade only.

MATH 111 Elementary Statistics with Applications (4 Credits)

Descriptive and inferential statistics for students from diverse fields. Distribution, correlation, probability, hypothesis testing, use of tables, and examination of the misuse of statistics and relation of statistics to vital aspects of life. Computer packages used as tools throughout the course.
Prerequisite: Mathematics placement at MATH 100 / 101 level or by permission.

MATH 121 Calculus I (4 Credits)

Functions and their graphs; successive approximation and limits; local linearity and differentiation; applications of differentiation to graphing and optimization; and the definite integral, antiderivatives, and differential equations. 
Prerequisite: Permission based on Mathematics Placement Exam. 

2 courses/ 8 credits

CS 323 Mobile Programming (4 Credits)

Introduction to the development of mobile device applications with an emphasis on programming for the latest Android platform. Topics will include the implementation of multi-touch gestures, sensor and camera events, threads and background tasks, and working with location services. Current development issues are also examined. 
Prerequisite: One of CS 222, 223, or 240.
Offered in alternate years. 

CS 330 Database Management (4 Credits)

Introduction to principles of database design and management for information systems. Discussion of file design leads to study of logical and physical database concepts relating to three models of database organization: hierarchical, network, and relational. Includes issues relating to query processing, integrity and security of data, and distributed database systems. 
Prerequisite: CS 111. 
Offered as needed.

CS 340 Programming Languages (4 Credits)

Introduction to programming language concepts and representatives of several different programming language techniques. Topics include data, operations, sequence control, data control, storage management, operating environment, syntax, and comparison of various programming paradigms. 
Prerequisite: CS 111.

CS 341 Software Engineering (4 Credits)

Introduction to the new and maturing field of software engineering. Topics include the management of expectations, computer technologies, people and their skills, time, cost, and other resources needed to create, test, and maintain a software product that meets the needs of computer users. 
Prerequisite: One of CS 222, 223, or 240.

Capstone (4 credits)

CS 450 Computer Science Capstone Project (4 Credits)

This course provides the opportunity for a senior in Computer Science to design, develop, and implement a reasonably-sized software project as a capstone experience. This implementation work integrates the knowledge acquired from earlier computer science courses and the principles of project management and delivery. 
Prerequisite: Senior standing.

The Minor

Students minoring in computer science must complete the following requirements:

7 courses/ 28 credits

Please note that students must take 12 additional credits from computer science offerings, in addition to CS 110 and CS 111. MATH 121 or MATH 118-119 sequence must be taken. MATH 111 must also be taken. 

CS 110 Introduction to Programming (4 Credits)

Introduction to problem-solving methods and algorithm development through the use of computer programming in the C++/Java language. Emphasis on data and algorithm representation. Topics include declarations, arrays, strings, structs, unions, expressions, statements, functions, and input/output processing.
Numeric grade only.
Corequisite: Math 121 Calculus (or Math 118 and Math 119).

CS 111 Data, File Structures, and OOP (4 Credits)

Advanced topics concerning data and algorithm representation using C++/Java. Topics include stacks and recursion, dynamic memory, pointers, linked lists, queues, trees, searching, sorting, and object-oriented programming (OOP) and classes. 
Prerequisite: CS 110 and MATH 121 Calculus (or Math 118 and Math 119).
Co-requisite MATH 121.

MATH 111 Elementary Statistics with Applications (4 Credits)

Descriptive and inferential statistics for students from diverse fields. Distribution, correlation, probability, hypothesis testing, use of tables, and examination of the misuse of statistics and relation of statistics to vital aspects of life. Computer packages used as tools throughout the course.
Prerequisite: Mathematics placement at MATH 100 / 101 level or by permission.

MATH 121 Calculus I (4 Credits)

Functions and their graphs; successive approximation and limits; local linearity and differentiation; applications of differentiation to graphing and optimization; and the definite integral, antiderivatives, and differential equations. 
Prerequisite: Permission based on Mathematics Placement Exam. 

MATH 118 Integrated Calculus I (4 Credits)

For students whose programs require calculus but who, based on their background and placement examination scores, are not prepared for MATH 121. Topics from precalculus include properties of linear, rational, exponential, logarithmic, and trigonometric functions; and compositions, transformations, and inverses of these functions. Calculus topics include successive approximation and limits of functions; local linearity and differentiation; applications of differentiation to graphing and optimization; and the definite integral, antiderivatives, and differential equations.
Prerequisite: MATH 002L or Math Placement at MATH 118 level or by permission.

MATH 119 Integrated Calculus II (4 Credits)

For students whose programs require calculus but who, based on their background and placement examination scores, are not prepared for MATH 121. Topics from precalculus include properties of linear, rational, exponential, logarithmic, and trigonometric functions; and compositions, transformations, and inverses of these functions. Calculus topics include successive approximation and limits of functions; local linearity and differentiation; applications of differentiation to graphing and optimization; and the definite integral, antiderivatives, and differential equations.
Prerequisite: MATH 118 or by permission.

Learning outcomes for the major can be found at www.redlands.edu/BA-CSCI/learning-outcomes.

Advanced Placement in Computer Science 

  • Students who receive a score of three or four on the exam will receive 4 credits and credit for CS 110.
  • Those who receive a score of five will receive 8 credits and credit for CS 110 and CS 111.

Departmental Honors
A departmental honors program is available for exceptionally able and motivated students. Admission to the program may come by departmental invitation or, should students initiate their own applications, by an affirmative vote of the computer science faculty. Interested students should consult with a computer science faculty member during their junior year for information about procedures and requirements.

Course Descriptions (CS)

CS 101 Introduction to Computers (PC) (4 Credits)

Designed to make students computer literate. Introduction to computers and the Internet and how they work. Introduction to the Windows operating system, word processing, spreadsheets, graphics programs, databases, programming, email, searching, social-media sites and ethical issues in computer use.

CS 103 Introduction to Multimedia (4 Credits)

Introduction to interactive multimedia design and elements of interface design. Development of skills in creating interactive projects using animation, graphics, sound, virtual reality, and basic object-oriented programming (OOP) to facilitate navigation. 
Offered as needed.
Numeric grade only.

CS 110 Introduction to Programming (4 Credits)

Introduction to problem-solving methods and algorithm development through the use of computer programming in the C++/Java language. Emphasis on data and algorithm representation. Topics include declarations, arrays, strings, structs, unions, expressions, statements, functions, and input/output processing.
Numeric grade only.
Corequisite: Math 121 Calculus (or Math 118 and Math 119).

CS 111 Data, File Structures, and OOP (4 Credits)

Advanced topics concerning data and algorithm representation using C++/Java. Topics include stacks and recursion, dynamic memory, pointers, linked lists, queues, trees, searching, sorting, and object-oriented programming (OOP) and classes. 
Prerequisite: CS 110 and MATH 121 Calculus (or Math 118 and Math 119).
Co-requisite MATH 121.

CS 208 Java Programming (4 Credits)

Exploration of the Java language for students familiar with object-oriented programming. Topics include multimedia programming, threads, exception handling, and network communications. 
Prerequisite: CS 111. 
Offered as needed.

CS 221 Exploring Visual Basic (4 Credits)

Basic principles of problem-solving and algorithm development are studied. Various statements of the programming language Visual Basic will be presented and used in this context. A fairly rapid pace of coverage will occur in this course, as this is not the first course in programming; complex and demanding assignments will form part of the coursework.
Prerequisite: CS 111. 
Offered as needed.

CS 222 Web Application Development (4 Credits)

The usage of languages like HTML, JavaScript, and XML will form the core of this course. Syntax and semantics of HTML and XML that enable creation of web pages with a variety of textual and graphical information units will be studied in depth. Client-server programming and Windows applications will also be covered.
Prerequisite: CS 111 and one of MATH 119, 121, 122, or 221. 
Offered every year.

CS 223 Game Programming and AI (4 Credits)

This course experiments with programming concepts and techniques used in interactive visual environments such as games. Students will explore strategies for solving recursive backtrack problems, design intelligent animations, and deconstruct physical worlds. Students will produce interactive projects, incorporating graphics, text, video, audio, and object-oriented programming, using multimedia, industry-standard authoring software.
Prerequisite: CS 111 and one of MATH 119, 121, 122, or 221.
Offered as needed. 
Numeric grade only.

CS 230 Operating Systems (4 Credits)

Introduction to principles of operating systems. Topics include processes (sequential and concurrent), tasks, task management, processor scheduling, memory management, file handling, device management, command languages, interrupts, I/O, and security. 
Prerequisite: CS 111.

CS 240 Theory of Algorithms with Pythons (4 Credits)

Notions of complexity analysis, along with the mathematical underpinnings of efficient algorithm design will be studied. Techniques will incorporate divide-and-conquer and searches and sorts. Additional topics will include graph theory and simulations.
Prerequisites: CS 111 and one of MATH 119, 121, 122, or 221.

CS 260 Topics in Computer Science (4 Credits)

Features a topic of current interest in computer science not otherwise offered in the curriculum. 
Prerequisite: by permission. May be repeated for degree credit for a maximum of 8 credits, given a different topic. 
Offered as needed.

CS 360 Topics in Computer Science (4 Credits)

Features a topic of current interest in computer science not otherwise offered in the curriculum. 
Prerequisite: by permission. May be repeated for degree credit for a maximum of 8 credits, given a different topic. 
Offered as needed.

CS 460 Topics in Computer Science (4 Credits)

Features a topic of current interest in computer science not otherwise offered in the curriculum. 
Prerequisite: by permission. May be repeated for degree credit for a maximum of 8 credits, given a different topic. 
Offered as needed.

CS 301 Business Analysis and Excel (4 Credits)

Data analysis and decision making is an integral part of any successful business and the study of large data sets with the help of Microsoft Excel is the main focus of this course. The processes that enable data consolidation to make meaningful business decisions will be studied in depth. 
Prerequisite: ACCT 220 or CS 110.

CS 303 Introduction to Machine Learning (4 Credits)

Machine learning is the practice of programming computers to learn and improve through experience. This course provides an introduction to the mathematical underpinnings, algorithms, and practices that enable a computer to learn. Topics include supervised learning, unsupervised learning, and evaluation methodology. Students are required to program in Python. Programming Intensive.
Prerequisite: A grade of 1.7 or higher in MATH 241 and CS 111, or a grade of 1.7 or higher in MATH 122 and CS 240, or by permission. Some experience in Python programming is strongly recommended.
Numeric grade only.

CS 323 Mobile Programming (4 Credits)

Introduction to the development of mobile device applications with an emphasis on programming for the latest Android platform. Topics will include the implementation of multi-touch gestures, sensor and camera events, threads and background tasks, and working with location services. Current development issues are also examined. 
Prerequisite: One of CS 222, 223, or 240.
Offered in alternate years. 

CS 330 Database Management (4 Credits)

Introduction to principles of database design and management for information systems. Discussion of file design leads to study of logical and physical database concepts relating to three models of database organization: hierarchical, network, and relational. Includes issues relating to query processing, integrity and security of data, and distributed database systems. 
Prerequisite: CS 111. 
Offered as needed.

CS 331 Artificial Intelligence (4 Credits)

Introduction to artificial intelligence designed to introduce the basic ideas about search and control strategies, heuristics, problem-solving, constraint exploitation, and logic. Rule-based systems and expert systems techniques and the process of generating intelligent behavior for computers using these information processing strategies are also discussed. 
Prerequisite: CS 111. 
Offered as needed.

CS 340 Programming Languages (4 Credits)

Introduction to programming language concepts and representatives of several different programming language techniques. Topics include data, operations, sequence control, data control, storage management, operating environment, syntax, and comparison of various programming paradigms. 
Prerequisite: CS 111.

CS 341 Software Engineering (4 Credits)

Introduction to the new and maturing field of software engineering. Topics include the management of expectations, computer technologies, people and their skills, time, cost, and other resources needed to create, test, and maintain a software product that meets the needs of computer users. 
Prerequisite: One of CS 222, 223, or 240.

CS 450 Computer Science Capstone Project (4 Credits)

This course provides the opportunity for a senior in Computer Science to design, develop, and implement a reasonably-sized software project as a capstone experience. This implementation work integrates the knowledge acquired from earlier computer science courses and the principles of project management and delivery. 
Prerequisite: Senior standing.