The Faculty
James Bentley
Joanna Bieri
Pani N. Chakrapani
Richard N. Cornez
Patricia Cornez
Deon Garcia
Steven Morics
Tamara Veenstra
The Majors
Computer science is the discipline that studies the concepts and techniques used in designing and developing software systems. Students will explore the conceptual underpinnings of computer science, including its fundamental algorithms and programming languages. Advanced topics are offered in areas such as mobile development and software engineering techniques. Students may also concentrate on the burgeoning field of Data Science in their study of computer science.
The Computer Science program offers both Bachelor of Arts and Bachelor of Science degrees. The Bachelor of Arts degree is suited for students seeking to blend computer science study with courses in other fields, such as in the humanities and the social sciences, leading to careers involving interdisciplinary applications. The Bachelor of Science degree offers students robust exposure to the core areas of computer science and provides the requisite background for graduate study or careers involving software development. Opting for the concentration in Data Science allows students to take advantage of current trends of increasing employment in Big Data and Data Analytics.
Both degrees start with the same set of foundation courses allowing students to decide on their exact program once they obtain a basic understanding of the discipline. We strongly recommend students begin either major with CS 110, Introduction to Programming, as early as possible, ideally, during the first year. Both degrees allow a student to choose the concentration in Data Science.
Capstone requirements are the same for both the Bachelor of Arts and the Bachelor of Science degrees and are found under the Bachelor of Science program description. Honors is currently only available for the Bachelor of Science. Students declaring a computer science major are required to have a 2.0 cumulative GPA in the introductory computer science and calculus sequences: CS 110, CS 111, MATH 121 (or MATH 119), and MATH 122 (for the BS degree). CS110 and CS111 must be taken for a numerical grade.
Learning outcomes for these programs can be found at: www.redlands.edu/ba-csci/learning-outcomes/.
Bachelor of Arts Major
This program provides students with a basic understanding of the fundamentals of computer science and allows them to choose elective subjects to study at the advanced level. Students are encouraged to meet with computer science faculty early in their program in order to choose courses that will best prepare them for their future goals.
Computer Science Foundation
Please note, students may choose between CS 240 or CS 223.
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).
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.
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.
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.
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.
Computer Science Electives
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.
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.
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.
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.
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.
Related Field Requirements
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.
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.
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.
Bachelor of Science
This program prepares students for professional careers in the areas of software design and applied computer science and gives them the necessary theoretical background for graduate study in the field. The required courses give students a firm foundation in the basic areas of computer science and related areas of mathematics/physics; a choice of electives allow them to tailor their program to their specific interests.
Computer Science Foundation
Please note students may complete CS 211 instead of CS 301.
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).
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.
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.
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.
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.
Techniques for data wrangling/munging (acquisition, cleaning, transformation), visualization (using the grammar of graphics), and modeling that are foundational to data science. Topics to include efficient management of large and sparse datasets, uni/multivariate graphical and numerical descriptive statistics, code efficacy (memory and speed), study reproducibility, and data ethics.
Prerequisite: CS 110.
Recommended MATH 111 or equivalent.
Offered as needed.
Numeric grade only.
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.
Computer Science Electives:
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.
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.
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.
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.
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.
Related Requirements:
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.
Introduction to the theory of probability with applications in management science and the physical and social sciences. Topics include combinatorial probability, densities, mathematical expectation, moment-generating functions, and the central limit theorem.
Prerequisite: MATH 221.
Principles of statistical decision theory. Estimation and hypothesis testing, regression, and parametric and non-parametric tests. Mathematical theory and applications of above.
Prerequisite: MATH 311 or by permission.
Study of discrete mathematical topics important in both mathematics and computer science, including combinatorial techniques, sets and relations, algorithms, and graph theory.
Prerequisite: MATH 122.
Offered as needed.
Mathematical techniques in cryptology with a focus on problem solving and forming conjectures. Monoalphabetic ciphers and frequency analysis, polyalphabetic ciphers, public key cryptography and block ciphers. Incorporates results from discrete mathematics, number theory, probability, and permutations. Repeating the course for grade replacement is allowed only once and requires permission.
Investigation of the process of modeling. Special emphasis placed on how to build, test, and refine models; how to analyze assumptions and results; and defining model limitations. Deterministic and stochastic models, rate equations and population dynamics, and statistical analysis. Final project tied to outside interests.
Prerequisite: MATH 119 or MATH 120 or MATH 121 or MATH 122 or MATH 221 or by permission.
Differential equations theory and applications. First-order linear and nonlinear differential equations with analytic and numerical techniques. Higher-order linear differential equations and complex algebra. Phase trajectory and stability analysis. Systems of linear differential equations with constant coefficients. Matrix methods, Gauss-Jordan, and iterative techniques.
Prerequisite: MATH 221.
The theory and application of numerical methods for solving mathematical problems. Topics include numerical methods for solving algebraic equations and ordinary differential equations, interpolation and approximation, and numerical integration.
Prerequisite: MATH 235 or MATH 241.
Offered in alternate years.
Quantitative study of classical Newtonian mechanics. Includes lecture and laboratory components.
Prerequisite: MATH 119, MATH 121, MATH 122 or MATH 221.
Introduction to classical electricity and magnetism. Includes lecture and laboratory components.
Prerequisite: PHYS 231; Pre- or corequisite: MATH 122 or MATH 221.
Instrumentation, transistor theory, integrated circuits, and fundamental analog and digital circuit design. Lecture and lab components.
Prerequisite: PHYS 221 or PHYS 232 or by permission.
Capstone Requirement
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.
Data Science Concentration
Data Science integrates skills from probability, statistics, and computer science. Data Scientists pursue the development of mathematical models and analysis to extract knowledge and insights for vast and complicated data sets. As a field, Data Science has emerged as a crucial discipline with innumerable opportunities in industry, government, and science.
Students earning the Bachelor of Arts or Bachelor of Science degree in computer science have an opportunity to concentrate on Data Science by emphasizing the theory and applications of the three core pillars of data science: coding, mathematics, and statistics. The data science concentration lends itself to the blending of multiple fields and facilitates connections with other departments on campus. Students are encouraged to take courses from different departments and choose the appropriate classes in consultation with an advisor.
The concentration consists of a minimum of four courses from the following list. Students may substitute courses as approved by an advisor. Crucial to the concentration is CS 211, Introduction to Data Science, as it gives students a good introduction to the work of a Data Scientist.
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.
Techniques for data wrangling/munging (acquisition, cleaning, transformation), visualization (using the grammar of graphics), and modeling that are foundational to data science. Topics to include efficient management of large and sparse datasets, uni/multivariate graphical and numerical descriptive statistics, code efficacy (memory and speed), study reproducibility, and data ethics.
Prerequisite: CS 110.
Recommended MATH 111 or equivalent.
Offered as needed.
Numeric grade only.
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.
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.
The Computer Science Minor is designed to provide basic expertise in computer science. The requirements focus on a basic foundation and allow students who are specializing in another discipline to benefit from knowing more about computing.
6 courses/ 24 credits
Please note that students must take 12 additional credits from Computer Science (CS) offerings, in addition to CS 110 and CS 111.
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).
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.
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.
Advanced Placement in Computer Science
Students who receive a score of four or five on the exam will receive 4 credits and credit for CS 110.
Departmental Honors
A departmental honors program is available for exceptionally able and motivated students pursuing a Bachelor of Science degree. 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. Students must work with a faculty advisor during their junior year to develop a detailed proposal, and then complete an individual honors project during their senior year.
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.
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.
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).
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.
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.
Techniques for data wrangling/munging (acquisition, cleaning, transformation), visualization (using the grammar of graphics), and modeling that are foundational to data science. Topics to include efficient management of large and sparse datasets, uni/multivariate graphical and numerical descriptive statistics, code efficacy (memory and speed), study reproducibility, and data ethics.
Prerequisite: CS 110.
Recommended MATH 111 or equivalent.
Offered as needed.
Numeric grade only.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.