College of Arts & Sciences Catalog
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 course work in computing ethics and a balance of practical and theoretical study in computer science.
An introduction to algorithms and programming in a current programming language including a survey of computer hardware, operating systems, and networks.
Introduction to fundamental computer programming design principles. Strong emphasis on theory. Extensive programming assignments in a current computer language. Not designed as a computer literacy course. Includes 6 lab hrs. Prerequisites: COS100 or equivalent proficiency; MAT122M or equivalent proficiency.
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. Includes an introduction to and experience with high-performance computing in parallel environments. Prerequisite: MAT124M.
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. Includes 6 lab hrs. Prerequisite: COS105 or COS205.
Assembly and machine language to study computer organization and structure, addressing techniques, digital representation of instructions, program segmentation, and linkage. Includes 6 lab hrs. Prerequisite: COS212.
Abstract data types, objects, classes, and methods as a software paradigm. Advanced data structures and algorithms are also studied. Extensive programming assignments in a current object-oriented computer language. Prerequisites: COS212; MAT241.
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++.
Relational and object-oriented databases, schemas, and normalization. Database management systems, SQL, and query optimization. Application program interaction with database management systems. Prerequisites: COS216.
An examination of the foundational technologies used for creating dynamic web content. Includes scripting languages (JavaScript and PHP), XML, and related replacements for HTML. Exploration of CGI protocol explored using programming languages such as Perl and PHP. Other topics include validation, creating secure web applications, XSLT, and an overview of more advanced technologies. Prerequisite: COS216.
Numerical methods for solving systems of linear equations, finding roots and fixed points, approximating data and functions, numerical integration, and finding solutions to differential equations. Prerequisites: MAT211 or MAT222; Recommended: COS105 or COS205. (Carries cross-credit in mathematics.)
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. Prerequisite: COS216.
Mathematical techniques used in systems analysis, including linear programming, simulation techniques, and other topics such as transportation models, integer programming, and network analysis. Prerequisites: COS105; MAT211. (Carries cross-credit in mathematics.)
Formal approach to the design and development of software. Design methodologies including object-oriented design and components. Communication, linking, and sharing of programs and data. Milestones and estimating, chief programmer teams, walk-throughs, documentation, organization management, and development of a software project by students working in teams. Prerequisite: COS216.
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. Prerequisite: COS301.
Basic concepts and techniques of artificial intelligence, including representation, notational structures, searches, control structures, and the LISP or Prolog programming languages. Samples of current work in several application areas including natural language systems, expert systems, and neural networks. Prerequisite: COS216.
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 as well as explore the future implications of the current topic. Prerequisite: COS216.
In this section, semester credit hours will be shown after the course number and description.
| COS100 | Introduction to Programming | 3 |
| COS105 | Computer Science 1 | 4 |
| COS212 | Computer Science 2 | 4 |
| COS214 | Computer Systems | 4 |
| COS216 | Data Structures and Objects | 3 |
| COS301 | Operating Systems and Computer Architecture | 4 |
| COS313 | Database Systems | 3 |
| COS318 | Web Programming | 3 |
| COS371 | Organization of Programming Languages | 3 |
| COS377 | Software Engineering | 3 |
| COS386 | Data Communications and Computer Networks | 3 |
| COS389 | Artificial Intelligence | 3 |
| COS490 | Topics in Computer Science | 3 |
| Choose from: | 3 | |
| COS344 | Numerical Methods | |
| COS376 | Operations Research | |
| PHY350 | Computer Methods in Physics and Engineering | |
| GES334K* | Perspectives on Computing and Society | 3 |
| MAT124M* | Calculus 1 | 4 |
| MAT125 | Calculus 2 | 4 |
| MAT211 | Linear Algebra | 3 |
| MAT241 | Discrete Mathematics | 3 |
| MAT330 | Probability and Statistics | 3 |
|
Total |
66 | |
| General Education | 51-52 | |
| Electives | 4-5** | |
| TOTAL | 122 |
* A student may also choose to use this course to meet a General Education requirement.
** Because of possible double counting between General Education and the major, the total of 122 credits can include up to 10-11 credits of electives.
| COS100 | Introduction to Programming | 3 |
| COS105 | Computer Science 1 | 4 |
| COS212 | Computer Science 2 | 4 |
| COS214 | Computer Systems | 4 |
| COS216 | Data Structures and Objects | 3 |
| COS301 | Operating Systems and Computer Architecture | 4 |
| COS318 | Web Programming | 3 |
| GES334K* | Perspectives on Computing and Society | 3 |
| MAT124M* | Calculus 1 | 4 |
| MAT241 | Discrete Mathematics | 3 |
| Choose from: | 3 | |
| COS313 | Database Systems | |
| COS377 | Software Engineering | |
| COS386 | Data Communications and Computer Networks | |
| Electives from | 300-level or above computer science courses | 9 |
|
Total |
47 | |
| General Education | 51-52 | |
| Electives | 23-24 | |
|
TOTAL |
122 |
* A student may also choose to use this course to meet a General Education requirement.
| COS100 | Introduction to Programming | 3 |
| COS105 | Computer Science 1 | 4 |
| COS212 | Computer Science 2 | 4 |
| COS214 | Computer Systems | 4 |
| COS216 | Data Structures and Objects | 3 |
| Elective from | 200-level or above computer science courses | 3 |
|
TOTAL |
21 |
| COS100 | Introduction to Programming | 3 |
| COS105 | Computer Science 1 | 4 |
| COS212 | Computer Science 2 | 4 |
| COS216 | Data Structures and Objects | 3 |
| COS318 | Web Programming | 3 |
| Choose from: | 3 | |
| COS313 | Database Systems | |
| COS377 | Software Engineering | |
| TOTAL | 20 |