CPS110 Algorithms to Machines: A Survey of Computer Science (4)
Introduces study of computer science for nonmajor. Topics include nature of algorithms, data representation, computer architecture, expression of algorithms in modern programming languages and translation of programs into machine language. Also history of computing, artifical intelligence and social impact of computing. Laboratory work introduces principles of computing through inquiry-based approach. Students complete significant programming project to control simple robot. Core lab option for students entering before fall 2009. Lab fee.
CPS121 Introduction to Programming (4)
Introduces fundamental programming concepts using Python. Topics include nature of algorithms, essential control structures, data representation, and object-oriented program design. Weekly programming laboratories. Lab fee.
CPS122 Object-Oriented Software Development (4)
Introduces object-oriented analysis and design using a statically typed programming language, encapsulation, inheritance, polymorphism, use cases, UML modeling, design patterns and testing methods. Continued development of design and programming skills using UML and Java through weekly laboratories and a semester team project. Prerequisite: CPS121. Lab fee.
CPS221 Software Systems (4)
Introduces fundamental software systems: operating systems, computer networks, database management systems, intelligent systems. Common concerns such as concurrency and security. Continued development of design and programming skills using Java through weekly laboratories. Prerequisite: CPS122 or familiarity with Java. Lab fee.
CPS222 Data Structures and Algorithms (4)
Introduces analysis of algorithms; implementation of data structures; advanced methods for organizing data in primary and secondary storage; problem-solving strategies; recursion; parallel algorithms; continued development of algorithm analysis skills. Weekly laboratories introduce C++ including use of templates and Standard Template Library. Prerequisite: CPS122. Lab fee.
CPS311 Computer Organization (4)
Introduces computers as physical devices composed of gates, binary representation of information, and the assembly language level of computer description. Methods of improving performance including various forms of parallelism in hardware. Prerequisite: CPS122. Lab fee. (Alternate years. Not offered 2010–11.)
CPS320 Models of Computation (4)
Introduces automata, including nondetermi-nistic automata and Turing machines, formal languages, space and time complexity, NP-complete problems, data types, and virtual machines. Prerequisites: CPS122 and MAT230. (First offered fall 2012.)
CPS323 Programming Languages (4)
Introduces formal study of programming language syntax, data types and control structures; methods of executing higher-level constructs at run-time; data structures and algorithms used in compilation and interpretation. Laboratory work emphasizes acquisition of skill in numerous programming languages. Prerequisite: CPS222. (Alternate years. Offered 2010–11.)
CPS331 Artificial Intelligence (4)
Approaches to producing “intelligent” systems. Knowledge representation (both symbolic and neural network), search and machine learning. Exposure to Al programming using PROLOG. Theological and philosophical issues raised by work in Al. Fulfills core Human Person theme. Prerequisites: PHI118, NSM202 and BCM308.
CPS342/MAT342 Numerical Analysis (4)
See MAT342 course description.
CPS352 Database Systems (4)
Explores database technology; various data models, query languages and applications program-DBMS interface. Prerequisites: CPS122, 221 and MAT230. (Alternate years. Offered 2010–11.)
CPS353 Internet Programming (4)
Begins the process of understanding the theory and practice of programming for the Internet. In this
CPS356 Management Information Systems (4)
Equips students to better identify management information system application opportunities in business settings and be more capable of participating in IT decision making and policy setting. (First offered spring 2011.)
CPS373 Computer Graphics (4)
Surveys interactive graphics systems. Studies two- and three-dimensional computer graphics, color models, shading, windowing, clipping, segments, hidden-surface and line removal and animation. Exposure to industry standard computer graphics library on department’s workstations. Prerequisites: CPS222, MAT232.
CPS382 Applications Project (2)
Interdisciplinary development of significant application useful to cosponsoring department. Prerequisites: one computer science course at 200 level, plus approval of project plan by both discipline supervisors prior to registration.
CPS403 Computers and Society (2)
Uses and impact of computers in modern society; considers ethical and moral issues in context of Christian worldview. Nontechnical; open to all students. Prerequisite: junior or senior standing or permission of instructor. (Alternate years. Offered 2010–11.) Number of credits will change from 2 to 4 in 2012–13.
CPS425 Internship (2 or 4)
Supervised internship in an appropriate technology setting combining on-the-job experience with related academic study. Must be prearranged and approved by instructor and Registrar’s Office. Prerequisite: minimum cumulative GPA of 2.50.
CPS471, 472 Research I, II (Variable)
Research under supervision of faculty member in computer science. Library searches, computational/laboratory investigation, and written and oral reports may be required.
CPS491 Senior Seminar (2)
Students work in teams to develop requirements, specifications and high-level design for computerized solution to an actual problem, including both oral reports and written documentation. Readings and class discussion related to process.
CPS492 Software Development Project (2)
Students work in teams to implement design developed in CPS491. Readings and class discussion related to process. Credit hours will increase to 4 semester hours in 2012–13.
* Fulfills Core Curriculum requirement.
HONORS IN COMPUTER SCIENCE
Seniors who research and write an honors thesis will be eligible to graduate with honors in computer science. Under the direction of a faculty advisor, candidates will carry out research in an area not covered by existing courses culminating in a significant honors thesis, which will be defended orally to departmental faculty during the senior year. Normally this will be done in the context of a 2- to 4-credit independent study. The minimum GPA for honors candidates is 3.5 in the major and 3.0 overall.