Computer Science

Minor in Computer Science

COS 101 • Introduction to Procedural Programming 2 Credits

An introduction to programming using a current procedural (imperative) programming language. Standard data types and control structures are introduced.
Offered: Fall, Spring. Special Notes: Students may not receive credit for both COS 101 and COS 111.

COS 110 • Introduction to Object-Oriented Programming 2 Credits

Continuation of procedural programming and an introduction to object-oriented programming. Fundamental search and sort algorithms, and recursion.
Prerequisites: COS 101 with a C- or higher (may be taken concurrently) or Consent of instructor. Offered: Fall, Spring. Special Notes: Students may not receive credit for both COS 110 and COS 111.

COS 111 • Introduction to Programming 4 Credits

An introduction to procedural and object-oriented programming. Standard data types and control structures are introduced. Fundamental search and sort algorithms, and recursion.
Offered: Fall, Spring. Special Notes: Students may not receive credit for both COS 111 and COS 101 or COS 110.

COS 211 • Data Structures 4 Credits

Elementary data structures such as arrays, linked lists, stacks, queues, hash tables, and trees. Further development of object-oriented design principles such as encapsulation, inheritance, and polymorphism.
Prerequisites: COS 110 with a C- or higher or COS 111 with a C- or higher. Offered: Fall, Spring.

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 211 with a C- or higher. Offered: Spring.

COS 277 • Software Development Fundamentals 4 Credits

Formal approach to the design and development of software. Multiple process models discussed and compared. Other topics include design patterns, system and data description, verification and validation, and process improvement. Extensive object-oriented programming assignments.
Prerequisites: COS 211 with a C- or higher. Offered: Fall.

COS 299 • Careers in Mathematics and Computer Science Seminar 0 Credit

Explores careers in mathematics and computer science through a selection of videos, lectures, tours, or guest speakers. Activities may include developing practical professional skills such as writing resumes and cover letters, accumulating connections and experience, and techniques for interviewing.
Prerequisites: COS 110 with a C- or higher or COS 111 with a C- or higher. Offered: Fall.

COS 313 • Database Systems 2 Credits

Relational and object-oriented databases, schemas, and normalization. Topics may include database management systems, SQL, concurrent transactions, logging/disaster recovery, query optimization, application program interaction with database management systems, and NoSQL.
Prerequisites: COS 211 with a C- or higher. Offered: Fall, even # years.

COS 318 • Web Programming 4 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.
Prerequisites: COS 277 with a C- or higher. Offered: Fall, odd # years. Special Notes: Some knowledge of HTML and the basics of JavaScript are expected.

COS 320 • Computer Graphics Programming 4 Credits

Introduces the drawing methods, geometrical transformations, 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 277 with a C- or higher; MAT 248 with a C- or higher or Consent of instructor. Offered: Fall, odd # years.

COS 334 • Data Mining and Machine Learning 3 Credits

Introduces 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 implement common algorithms with real data and choose appropriate algorithms for different applications.
Prerequisites: COS 277 with a C- or higher; MAT 248 with a C- or higher or MAT 330 with a C- or higher or Consent of instructor. 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. Offered: Spring, odd # years. Special Notes: COS 386 is a recommended prerequisite.

COS 341 • Computability and Complexity 4 Credits

Investigate two big questions: How efficiently can computers solve problems? Are there problems that cannot be solved by computers at all? Computability theory: formal models of computation, Turing machines, universality, reductions, nondeterminism, and the Church—Turing thesis. Complexity theory: polynomial-time mapping reductions, NP-completeness, and the famous "P versus NP" problem.
Prerequisites: COS 110 with a C- or higher or COS 111 with a C- or higher; MAT 248 with a C- or higher or Consent of instructor. Offered: Fall, even # years.

COS 348 • Algorithms and Advanced Data Structures 4 Credits

Fundamental algorithms, algorithm analysis, and advanced data structures.
Prerequisites: COS 211 with C- or higher; MAT 248 with C- or higher or Consent of instructor. Offered: Spring, odd # years.

COS 351 • High-Performance Computing 4 Credits

Fundamental concepts and techniques for parallel computation in relevant programming languages (load balancing, communication, synchronization, serial program decomposition) using industry-standard parallel computing libraries.
Prerequisites: COS 235 with C- or higher. Offered: Occasionally.

COS 371 • Organization of Programming Languages 4 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 277 with a C- or higher; MAT 248 with a C- or higher or Consent of instructor. 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 a 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 277 with a C- or higher. Offered: Occasionally.

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.
Prerequisites: COS 277 with a C- or higher. Offered: Spring, odd # years. Special Notes: COS 477 is a recommended prerequisite. This course carries cross credit in engineering.

COS 450 • Humans and Computers 2 Credits

Examines the ways that humans and computers interact. Christian and professional ethics in the development and application of computing technology are extensively examined.
Prerequisites: COS 277 with a C- or higher; Senior standing. Offered: Spring.

COS 477 • Machine Learning and Artificial Intelligence (AI) for Business 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 277 with a C- or higher. Offered: Spring, even # years. Special Notes: This course carries cross credit in engineering.

COS 490 • Topics in Computer Science 4 Credits

An in-depth study of a specific field of computer science.
Prerequisites: COS 277 with a C- or higher. Offered: Fall, odd # years.

Connect with Bethel