
Course Listings
Computer Science
A major and a minor in Computer Science are available. See also major and minor in Information Technology.
Major in Computer Science
51 credit hours
- COSC 216 Programming I4
- COSC 316 Programming II4
- COSC 346 Human Computer Interaction3
- COSC 356 Computer Networking & Security3
- COSC 357 Data Privacy and Security3
- COSC 360 Operating Systems4
- COSC 365 Analysis of Algorithms3
- COSC 366 Database Design3
- COSC 406 Systems Analysis3
- COSC 409 Internship3
- COSC 410 Senior Seminar1
- COSC 416 Project Management3
- MATH 205 Discrete Mathematics3
- MATH 211 Calculus I4
- MATH 301 Linear Algebra3
- PHYS 304 Electronics4
Student learning outcomes
Graduates in Computer Science will:
- Demonstrate proficiency in programming, software engineering, database design, networking, security, human computer interaction, operating systems, algorithm analysis, electronics, and systems analysis.
- Demonstrate proficiency with the mathematical principles underlying computer science concepts and techniques.
- Effectively communicate complex computing concepts orally, visually and in writing.
- Function effectively in teams to accomplish programming project goals.
- Design programs, implement, and evaluate said programs within systems and other software to meet the needs of organizations.
- Analyze the local and global impact of computing technology on individuals, organizations, and society.
- Demonstrate proficiency in engaging and using research from published literature and other resources to engage in a career in computing.
Planning guide
First Year | Goshen Core Computational Thinking (if needed) Programming I Calculus I or Discrete Math |
Second & Third Years | Goshen Core Upper level computing and related courses SST |
Fourth Year | Balance of Goshen Core Remaining computing and related courses Internship Senior Seminar |
Minor in Computer Science
Planning and advising notes
If combining this minor with an Information Technology major or minor, there must be at least 8 unique credits in the computer science minor not double-counting with the information technology major or minor.
COSC 216 Programming I
This course provides fundamental programming expertise in a higher-level computational language, focusing on such constructs as user defined functions, recursion versus iteration and files usage. The student also will engage in computational thinking and techniques of general problem solving, with...
COSC 316 Programming II
This course focuses on using object-oriented problem solving techniques. Topics covered include object-oriented design, classes, encapsulation, inheritance, algorithmic analysis, and data structures. In particular, the course covers programming efficiently, and applying appropriate industry recognized tecniques to programming problems. This course...
COSC 346 Human Computer Interaction
This course covers principles for designing, implementing, and evaluating user interfaces. The course will introduce user-centered design, accessibility, rapid prototyping, experimentation, direct manipulation, and cognitive principles. Students will apply these principles in creating web sites and other interfaces. Prerequisite: COSC...
COSC 356 Computer Networking & Security
Structure and components of computer networks, packet switching, layered architectures, and congestion management. Also covers principles of computer and network security. By the end of this course, a student will have either passed or be prepared to take an industry...
COSC 357 Data Privacy and Security
This course explores the fundamentals of information security attacks and defense mechanisms. Security issues related to people, data, networks, and devices are surveyed to provide insight into designing security solutions and policies. Technologies and practices that support the security principles...
COSC 360 Operating Systems
A study of operating system concepts and structures with a major focus on process control, memory management, I/O management and concurrent processes. Students will investigate the impact of different operating systems in both a LAN and a WAN environment. Prerequisite:...
COSC 365 Analysis of Algorithms
Course covers the design and analysis of efficient algorithms. Topics covered include sorting, search trees, heaps, hashing, divide-and-conquer, dynamic programming, randomized algorithms, stochastic algorithms, approximation algorithms, amortized analysis, probabilistic analysis, competitive analysis. Prerequisite: COSC 316 and MATH 205.
COSC 366 Database Design
The proper design of databases and their construction through diagramming tools and SQL. Attention is also given to form and report development, data warehouse and data mining issues, and administrative issues such as user security. Students gain experience in robust...
COSC 406 Systems Analysis
A structured approach to solving organizational problems. The focus of the course is on determining the needs of a real organization and meeting those needs through the design of an information system. Topics such as feasibility analysis, determining requirements, documenting...
COSC 409 Internship
Work experience in or student observation of the computer field. Each student’s project is individually arranged with the instructor. The course is designed to integrate and apply theoretical learning with experience. Students desiring a computer internship must be a Computer...
COSC 410 Senior Seminar
Summative course for the Computer Science major. This course discusses the enormous impact that computing has had on society at large. It will also examine issues concerning a sustainable future and how that places added responsibilities on computing professionals. Course...
COSC 416 Project Management
Working with the organization from COSC 406, students gain practice in managing the system life cycle; requirements determination for logical design, physical design, testing and implementation of a system for a local organization. Topics include system and database integration issues;...
MATH 205 Discrete Mathematics
An introduction to mathematical thinking and reasoning. Topics include number systems and arithmetic, logic and Boolean algebra, functions and relations, set theory, algorithms, combinatorics and probability, matrices, and elementary graph theory. An emphasis is placed on problem solving and proof...
MATH 211 Calculus I
Concepts of calculus emphasizing applications in the natural and social sciences. Topics include differential calculus of one and two variables and integration. Prerequisites: three and one-half units of high school mathematics including trigonometry, Math 170, or a minimum ALEKS score...
MATH 301 Linear Algebra
Linear systems of equations, vector spaces, linear transformations, matrices, determinants, eigenvalues and eigenvectors, inner products, computational aspects, and applications. Prerequisite: Math 211 and either Math 205 or 212.
PHYS 304 Electronics
Introduction to analog and digital electronics and robotics. The focus is on design and construction of practical circuitry which can be used to build useful devices. After the analog and digital groundwork is laid, students learn to program microcontrollers to...