|Major in Computer Science (B.A.)|
|COS 100||Introduction to Programming||3|
|or COS 205||Scientific Computing|
|COS 105||Object-oriented Design and Programming||4|
|COS 212||Data Structures||4|
|COS 216||Algorithms and Advanced Data Structures||3|
|COS 235||Computer Systems||4|
|COS 450||Humans and Computers||3|
|MAT 123M||Precalculus 2||3|
|MAT 124M||Calculus 1||4|
|MAT 241||Discrete Mathematics||3|
|Choose three of the following Applications of Computer Science courses:||9|
|Data Mining and Machine Learning|
|Data Communications and Computer Networks|
|Electives from 300-level or above Computer Science courses or MAT 376 or PHY 352/PHY 353 or ENR 352/ENR 353 1||9-10|
Students may test out of this course based on their performance on the Math and Computer Science department placement exam.
Students may not declare a B.A. in Computer Science and a B.S. in Computer Science.
Students may not declare a B.A. in Computer Science and a Minor in Computer Science.
Students may not declare a B.A. in Computer Science with Software Project Management and a B.A. in Computer Science.
Courses whose number is followed by a letter fulfill a General Education requirement.
COS 100 • Introduction to Programming 3 Credits
An introduction to programming using a current procedural (imperative) programming language. Standard data types and control structures are introduced.
Offered: Fall, Interim.
COS 105 • Object-oriented Design and Programming 4 Credits
Introduction to object-oriented design methodologies and programming, fundamental search and sort algorithms, and recursion. Strong emphasis on theory. Extensive programming assignments in a current object-oriented computer language.
Prerequisites: COS 100, COS 205, or equivalent proficiency; MAT 123M, MAT 124M, MAT 125, or equivalent proficiency. Offered: Spring. Special Notes: Not designed as a computer literacy course. Includes 6 lab hours.
COS 205 • Scientific Computing 3 Credits
An introduction to programming using both a procedural (C language) and object-oriented (C++) programming language. Basic data types and control structures are introduced and the fundamentals of OOP (encapsulation, inheritance, and polymorphism) are covered. Issues relevant to scientific computing are considered including performance, numerical representation, and machine error.
Prerequisites: MAT 124M with C- or higher (can be taken concurrently). Offered: Fall, Spring.
COS 212 • Data Structures 4 Credits
Elementary data structures such as arrays, linked lists, stacks, queues, heaps, hashtables, and trees. Extensive programming assignments in a current computer language.
Prerequisites: COS 105 with C- or higher or COS 205 with C- or higher with consent of instructor. Special Notes: Includes 6 lab hours. Offered: Fall, Spring.
COS 216 • Algorithms and Advanced Data Structures 3 Credits
COS 235 • Computer Systems 4 Credits
Assembly and machine language to study computer organization and structure, including addressing techniques, digital logic and representation of numbers and arithmetic, structure of operating systems, memory management, process management, resource allocation, and operating system monitors. Also includes an introduction to C.
Prerequisites: COS 212 with C- or higher. Offered: Spring.
COS 313 • Database Systems 3 Credits
Relational and object-oriented databases, schemas, and normalization. Database management systems, SQL, concurrent transactions, logging/disaster recovery, and query optimization. Application program interaction with database management systems.
Prerequisites: COS 216 with C- or higher. Offered: Fall, even # years.
COS 318 • Web Programming 3 Credits
An examination of the foundational technologies used for creating web applications. Includes client and server programming, as well as fundamentals of cloud services, including security, storage, and reliability.
COS 320 • Computer Graphics Programming 3 Credits
Introduces the drawing methods, geometrical transforms, and illumination models that are fundamental to computer graphics programming. Modeling of 2D and 3D objects, local and global illumination simulation, shading, color models, procedural modeling, and discrete (fragment) techniques, including texture mapping. A current graphics API is used, including custom shaders.
Prerequisites: COS 216 with C- or higher. Offered: Fall, odd # years.
COS 334 • Data Mining and Machine Learning 3 Credits
An introduction to widely-used techniques for extracting information from large data sets such as medical databases, credit reports, weather history, and the stock market. Includes algorithms for nominal and ordinal data and metrics to measure their performance. Students will implement common algorithms with real data and choose appropriate algorithms for different applications.
Prerequisites: COS 216 with C- or higher. Offered: Spring, even # years.
COS 335 • Computer Security 3 Credits
An introduction to the concepts of security as applied to areas such as programming, databases, networks, systems, and applications. General concepts and specific instances of security-related threats are presented. Security risks are discussed in the context of several computer operating system and architecture components.
Prerequisites: COS 235 with C- or higher (COS 386 is a recommended prerequisite). Offered: Spring, odd # years.
COS 351 • High-Performance Computing 3 Credits
Fundamental concepts and techniques for parallel computation in C/C++ (load balancing, communication, synchronization, serial program decomposition) using an industry-standard parallel computing library.
Prerequisites: COS 205 with C- or higher or COS 235 with C- or higher. Offered: Fall, odd # years, Interim, odd # years.
COS 371 • Organization of Programming Languages 3 Credits
Formal programming language specification using various grammars and the Backus-Naur Form. Data types and structures, control structures, and data flow of several programming languages, including interpreters and compilers. Introduction to parsing and lexical analysis.
Prerequisites: COS 216 with C- or higher. Offered: Spring, even # years.
COS 386 • Data Communications and Computer Networks 3 Credits
Data communications including interprocess communication, computer networking, and associated software protocols. Topics include network topologies, point-to-point network protocols, local area networks, and interconnection of networks.
Prerequisites: COS 235 with C- or higher. Offered: Fall, even # years.
COS 389 • Artificial Intelligence 3 Credits
Basic concepts and techniques of artificial intelligence, including representation, notational structures, searches, control structures, and logic programming languages. Samples of current work in several application areas including natural language systems, expert systems, and neural networks.
Prerequisites: COS 216 with C- or higher. Offered: Spring, odd # years.
COS 420 • Software Process 3 Credits
Balancing the various real-world challenges that a software engineer encounters, including ambiguity, conflicting requirements, task-time estimation, team dynamics, requests from customers, product managers or architects. A team-based software project on a modern computer science topic will be developed during the semester.
Prerequisites: COS 216 with C- or higher. Special Notes: Carries cross credit in engineering. COS 477 is a recommended prerequisite. Offered: Spring, odd # years.
COS 450 • Humans and Computers 3 Credits
Examines the ways that humans and computers interact. Issues in user experience and human-machine interaction are explored. Christian and professional ethics in the development and application of computing technology are extensively examined.
Prerequisites: COS 216 with C- or higher. Offered: Interim, even # years. Special Notes: Students may not receive credit for both COS 450 and GES334K.
COS 477 • Software Engineering 3 Credits
Formal approach to the design and development of software. Multiple process models discussed and compared. Other topics include design patterns, project management and estimation, team management, formal methods, documentation, system and data description, verification and validation, and process improvement.
Prerequisites: COS 216 with C- or higher. Special Notes: Carries cross credit in engineering. Offered: Spring, even # years.
COS 490 • Topics in Computer Science 3 Credits
A seminar to provide an in-depth survey of a recent trend or field in the rapidly changing discipline of computer science. Students work on a significant project and explore the future implications of the current topic.
Prerequisites: COS 216 with C- or higher. Offered: Occasionally.