COMP 1500 – Introduction to Computer Science
A breadth-first overview of computer science. Topics are introduced through a layered approach: data representation, hardware components, problem solving and algorithms, low- and high-level programming languages, operating systems, communications, applications, and social/ethical issues. Basic programming concepts are introduced and applied through a high-level language.
COMP 1600 – Implementation of Object-Oriented Systems
Lecture and Laboratory. The problem-solving principles of top-down design, iterative refinement, and procedural abstraction are introduced through algorithmic problem solving. Students learn to utilize library application program interfaces (APIs). Programming by contract is introduced and students learn to implement methods satisfying a contract. Students engage in creating elementary object-oriented designs, specifying their contracts, and implementing them in a programming language. Elementary design patterns are explored.
COMP 2100 – Abstractions: Data and Algorithms
Lecture and Laboratory. An introduction to fundamental data structures and computing algorithms within an object-oriented context. Principles of data abstraction and representation are examined. Additional topics include specification, design, use, and implementation of abstractions; recursion; and intuitive analysis of algorithms. Prerequisites: COMP 1600; Corequisites: Math 1230
MATH 1230 – Discrete Mathematics
Discrete mathematics includes material from such areas as set theory, logic, number theory, induction and recursion, and combinatorics. An essential aspect of the course is developing an ability to create and understand mathematically rigorous arguments and/or proofs. Prerequisites: MATH 0900 with a C- or better; or ACT Math score of 24 or higher; or SAT Math score of 560 or higher; or qualification through Otterbein’s Mathematics Placement Exam.
COMP 2230 – Foundations of Computer Science
A continued exploration of the mathematical foundations of computer science begun in Discrete Mathematics. Topics include asymptotic analysis and complexity, discrete probability, relations, graph theory, Boolean algebra, and automata theory. Prerequisites: Math 1230
COMP 2600 – Software Design
Bridging from analysis to implementation, this course studies how to decompose a proposed system so that it can be implemented in a reliable and cost effective manner. Object-oriented design of component-based software is emphasized, and we will utilize modeling tools to document the design. The relationship between component design and component implementation will be explored. Design Patterns will also be emphasized. Prerequisites: COMP 2100
COMP 3100 – Software Engineering – Writing Intensive
Processes and practices for developing large software systems. Topics to be emphasized include development lifecycles, requirements, design, testing, verification, project management and professional codes of ethics. Most activities will be team-oriented. Prerequisites: COMP 2600.
COMP 3200 – Languages and Machines
A study of two classes of languages: formal languages (regular, context-free, and computable) and their associated machines (finite automata, pushdown automata, and Turing machines); and programming languages, including the essential features of imperative, functional, object-oriented, and logic programming languages, together with their design and implementation on modern computers and virtual machines. Prerequisites: COMP 2100 AND COMP 2230.
COMP 3500 – Computer Systems
Introduction to the functionality and design of computer systems with an emphasis on computer architecture and operating systems. Topics include the study of digital representation, logic circuits, and memory; processor and memory management; instruction set architectures; assembly languages and programming; and the translation of algorithms into assembly language and of assembly language into machine language. Prerequisites: COMP 2100.
COMP 3600 – Database Systems
The design and use of databases. Entity-relationship modeling, relational modeling, normalization, query languages (SQL), and relational algebra & calculus will be covered. XML language processing, object relational databases, and active databases may also be covered. Prerequisites: COMP 2100; Corequisites: COMP 2230.
COMP 3700 – Web Development
COMP 3800 – Parallel and Distributed Processing
Parallel and distributed processing both use multiple processors executing asynchronously, but with different goals. Parallel processing is concerned with time efficiency, while distributed focuses on throughput of the whole system. Similarities and differences in the two approaches are examined. Prerequisites: COMP 2600.
COMP 4100 – Computer Science Practicum – Writing Intensive
Application of the computer science curriculum’s topics through hands-on experience. Focuses on group problem-solving skills. Students will work in teams to complete significant semester-length software projects. Prerequisites: COMP 3100 and COMM 2800.
COMP 4500 – Algorithm Design and Analysis
Formal techniques for the analysis of algorithmic complexity, both space and time. Algorithm design techniques, such as brute force, divide and conquer, dynamic programming, backtracking, etc., are explored. Advanced algorithms and data structures are introduced. The concept of computational complexity is introduced along with NP-completeness. Prerequisites: COMP 2100 and COMP 2230.
COMP 4290 – Special Topics
The presentation of an advanced computer science topic. Topics vary. Prerequisites: Vary with topic; permission of the instructor. Notes: May be repeated for credit.
COMP 4270 – Computer and Information Security
Foundations of modern computer and information security, including software security, operating system security, network security, applied cryptography, human factors, authentication, anonymity, and web security. Prerequisites: COMP 2600.
COMP 4260 – Introduction to Game Development
An introduction to major issues in the development of electronic games. These include development processes and tools, technical and artistic development, software architectures and algorithms, graphics and interaction, simulation and more. Students will implement games or parts of games. Prerequisites: COMP 2600.
COMP 4240 – Mobile Computing and Communication
An introduction to the technologies of mobile networks, devices, and services. Emphasis is on application development and the unique interaction design and security issues presented by the mobile computing environment. Prerequisites: COMP 2600.
COMP 4230 – Applied Artificial Intelligence
An introduction to current trends in intelligent computing. Covers an applied topic that may include expert systems, neural networks, machine learning, evolutionary computation, or knowledge engineering; all with a focus on application to modern problems. Prerequisites: COMP 2600.
COMP 1010 – Productivity Software: Microsoft Office
A hands-on introduction to the Microsoft Office productivity suite. The emphasis is on Word, Excel, PowerPoint, and Access. Students will complete web-based training exercises as well as independently-produced projects. Notes: Offered in a hybrid format.
COMP 1020 – Spreadsheet Fundamentals with Excel
A hands-on introduction to spreadsheet concepts and Microsoft Excel. Students will complete web-based training exercises as well as independently-produced projects. Notes: Offered in a hybrid format.
COMP 1100 – Data Modeling and Management
An introduction to data modeling, visualization, and management for non-computer science majors. Students will explore these issues in the context of prevailing industry environments such as Excel and Access/SQL. Notes: Offered in a hybrid format
COMP 1200 – Elementary Programming and Logic
Laboratory. An introduction to computer programming for non-computer science majors. Covers elementary logic, control structures, and simple user interfaces in Visual Basic (VB.NET) and Visual Basic for Applications (VBA).
COMP 3900 – Independent Study
Independent study in computer science. Provides an opportunity to study a topic of interest not otherwise available. Developed in consultation with the instructor. Prerequisites: Permission of instructor.
COMP 4900 – Internship
Internships are available to majors upon submission of a written proposal as described in the internship packet. They are arranged individually usually with local organizations, agencies, or companies.
Prerequisites: Permission of instructor and department chairperson required.