Computing technology has become an essential part of nearly every profession even as new research in computer science continues to reinvent how we communicate and work. The computer science major at Bethel prepares students to be leaders in this ever-changing academic discipline as they learn current programming languages, network technology, databases, software engineering techniques, hardware, and operating systems. Electives are also offered in graphics, compilers, artificial intelligence, and high-performance computing. Students can gain work experience through employment in Bethel’s computing support services and can earn course credit through internships at local companies. Bethel conforms to the Association for Computing Machinery (ACM) model for a liberal arts university computing degree with coursework in computing ethics and a balance of practical and theoretical study in computer science.

Advanced Placement: The computer science department requires a score of 4 or better on the AP exam in order for the exam to be used to fulfill course requirements in the majors and minors it offers. Students with a score of 3 will receive elective credit or receive credit toward General Education requirements. Students should consult the department chair with questions on AP exams and requirements for majors.

Minor in Computer Science

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

COS105 • Computer Science 1. 4 Credits.

Introduction to fundamental computer programming design principles. Strong emphasis on theory. Extensive programming assignments in a current object-oriented computer language.
Prerequisites: COS100, COS205, or equivalent proficiency; MAT123M, MAT124M, MAT125, or equivalent proficiency. Offered: Spring. Special Notes: Not designed as a computer literacy course. Includes 6 lab hours.

COS205 • Scientific Computing. 3 Credits.

Introduction to programming in C and C++ with an emphasis on issues relevant to scientific computing such as machine error, performance, and implementation of common numerical algorithms.
Prerequisites: MAT124M. Offered: Fall, spring

COS212 • Computer Science 2. 4 Credits.

Elementary data structures such as file structures, linked lists, and simple trees. Introduction to fundamental search and sort algorithms, analysis, design methodologies, and object-oriented programming. Extensive programming assignments in a current computer language.
Prerequisites: COS105; MAT123M, MAT124M, MAT125, or equivalent proficiency. Offered: Fall. Special Notes: Includes 6 lab hours.

COS214 • Computer Systems. 4 Credits.

Assembly and machine language to study computer organization and structure, addressing techniques, digital representation of instructions, program segmentation, and linkage.
Prerequisites: COS212. Offered: Spring. Special Notes: Includes 6 lab hours.

COS216 • Data Structures and Algorithms. 3 Credits.

Advanced data structures, algorithms, and algorithm analysis. Extensive programming assignments in a current object-oriented computer language.
Prerequisites: COS212; MAT241. Offered: Spring

COS301 • Operating Systems and Computer Architecture. 4 Credits.

Computer organization, structure of operating systems, memory management, process management, resource allocation, and operating system monitors. Alternative approaches to operating system design.
Prerequisites: COS214; knowledge of C or C++. Offered: Fall

COS313 • 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: COS216. Offered: Fall, even # years

COS318 • Web Programming. 3 Credits.

An examination of the foundational technologies used for creating web applications. Includes client- and server-side programming languages (JavaScript and PHP), data serialization standards (XML, JSON, and URI encoding), security, storage, and web services.
Prerequisites: COS216. Offered: Fall. Special Notes: Some knowledge of HTML and the basics of JavaScript are expected.

COS320 • Computer Graphics Programming. 3 Credits.

An introduction to the drawing methods, geometrical transforms, and illumination models that are fundamental to computer graphics programming. Topics include 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: COS216. Offered: Fall, odd # years

COS334 • Data Mining. 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: COS216 Offered: Spring, even # years.

COS337K • Behavioral Robotics. 3 Credits.

Control and automation are fundamental aspects of human, animal, and machine behavior. These topics will be considered from philosophical and psychological perspectives and explored through robotics and other hands-on expirimental labs, in order to develop both a practical and thoretical understanding of behavior.
Prerequisites: Laboratory Science (D) course; Mathematics (M) course. Special Note: Carries cross credit in psychology. Offered: Interim

COS351 • 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: COS205 or COS214. Offered: Interim

COS371 • 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: COS216. Offered: Spring, even # years

COS386 • 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: COS301. Offered: Spring, odd # years

COS389 • 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: COS216. Offered: Spring, odd # years

COS420 • Sofware Process. 3 Credits.

Balancing the various rea-world challenges that a software engineer encounters, including ambiguity, conflicting requirements, task-time estimation, team dynamics, requests from customers, product managers or archetects. A team-based software project on a monder computer science topic will be developed during the semester.
Prerequisites: COS216; COS477 recommended Offered: Spring, odd # years.

COS450 • 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: COS216. Offered: Interim, even # years. Special Notes: Students may not receive credit for both COS450 and GES334K.

COS477 • Software Engineering. 3 Credits.

Formal approach to the design and development of software. Design methodologies include object-oriented design, components, design patterns, and event-driven design. Project management, walkthroughs, documentation, team programming, and the development of a significant software project.
Prerequisites: COS216. Offered: Fall, odd # years

COS490 • 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: COS216. Offered: Occasionally