College of Arts & Sciences Catalog
The computer science major is a four-year program designed to acquaint the student with this rapidly expanding, contemporary subject. The computer science program has been carefully constructed to build upon the broad liberal arts and biblical studies courses that are part of every student’s program at Bethel. In today’s complex world, communication skills and historical perspectives are of critical importance to computer professionals.
Student access to computing hardware is a major emphasis in the program. Hands-on experiences are provided throughout the program, beginning with the first course in the sequence. Students are also encouraged to gain practical work experience while they are enrolled in the program. The department supervises internships at local companies, subject to faculty availability. There is also opportunity for employment in the Information Technology Services Computing Center.
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.
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; COS318 (may be taken concurrently).
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: COS105; MAT211 or MAT222. (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: COS301.
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: COS301.
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: COS301.
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: COS301.
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 |