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.

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. 
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. 
Offered as needed.

CS 240 Theory of Algorithms (4 Credits)

Students of computer science are introduced to the need for and construction of mathematical proofs. The concepts, notations, and techniques of the theories of automata, formal languages, and Turing machines are studied to understand the capabilities and limitations of computers. 
Prerequisites: CS 111 and MATH 121.

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 MATH 121. 
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.

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: MATH 121.

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: Any CS 300-level course.

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:

6 courses/ 23-24 credits

Please note that students must take 12 credits from computer science offerings, in addition to CS 110 and CS 111. 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.

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. 
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.

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.

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. 
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. 
Offered as needed.

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 MATH 121. 
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 (4 Credits)

Students of computer science are introduced to the need for and construction of mathematical proofs. The concepts, notations, and techniques of the theories of automata, formal languages, and Turing machines are studied to understand the capabilities and limitations of computers. 
Prerequisites: CS 111 and MATH 121.

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 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: MATH 121.

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: Any CS 300-level course.

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.