Computer Science

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

4 courses/ 16 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.

Computer Science Electives

2 courses/ 8 credits

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

Related Field Requirements

2 courses/ 8 credits

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. 

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.

 

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

6 courses/ 24 credits

Please note students may complete CS 211 instead of CS 301.

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 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 211 Introduction to Data Sciences. (4 Credits)

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.

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.

Computer Science Electives: 

3 courses/ 12 credits

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

Related Requirements:

5 courses/ 20 credits

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 311 Probability (4 Credits)

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.

MATH 312 Mathematical Statistics (4 Credits)

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. 

MATH 201 Discrete Mathematical Structures (4 Credits)

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.

MATH 205 Cryptography (3 Credits)

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.

MATH 231 Introduction to Mathematical Modeling (4 Credits)

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.

MATH 235 Differential Equations (4 Credits)

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.

MATH 331 Numerical Analysis (4 Credits)

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.

PHYS 231 General Physics I (4 Credits)

Quantitative study of classical Newtonian mechanics. Includes lecture and laboratory components. 
Prerequisite: MATH 119, MATH 121, MATH 122 or MATH 221.

PHYS 232 General Physics II (4 Credits)

Introduction to classical electricity and magnetism. Includes lecture and laboratory components.
Prerequisite: PHYS 231; Pre- or corequisite: MATH 122 or MATH 221.

PHYS 310 Electronics Applications (4 Credits)

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

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.

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.

Courses

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 211 Introduction to Data Sciences. (4 Credits)

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.

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

The Minor

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.  

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.

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.

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 211 Introduction to Data Sciences. (4 Credits)

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.

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.