Skip to main content
Jump to Footer

Computer Science Degree    CAC-RGB-W-S

The Computer Science degree program is designed to introduce students to a wide range of problems and how to implement solutions to these problems as programs; it also provides a strong foundation for students who may wish to continue their studies in a graduate program. Graduates will be proficient in developing computer software to solve problems in a wide variety of contexts. The program leads to a Bachelor of Science in Computer Science. Our spring 2019 graduates are 100% employed at the following companies: Deloitte, United States Patent Trade Office, Leidos, CGI Federal, Tenn. Department of Treasury, and NetServices Inc. Furthermore, our program is accredited by the CAC Accreditation Commission of ABET, placing Shippensburg University among 46 Pennsylvania colleges and universities that have ABET-accredited programs and one of 20 that include computer science programs. Refer to the ABET Accreditation and Program Objectives and Student Outcome links below for additional information about ABET.

The program consists of a number of required courses and concentrations. Students will generally choose a concentration in their sophomore or junior year. Concentrations currently available are Artificial Intelligence, Computer Graphics, Computer Science Applications, and Secondary Field. In addition, the department offers a selection of advanced topics from which students may choose electives.

All students will complete their studies with a capstone research project. This project, under the supervision of a faculty mentor, has the student apply his/her accumulated knowledge to a challenging problem in computer science.

The department offers a wide variety of activities in which students may participate. We have an active programming team, game development club, and WIFI (Wildy Intelligent Female Innovators) group, to name a few.

Students who are unsure whether Computer Science is the avenue they wish to pursue for a career in computing technologies are encouraged to compare these related degree programs:

  • Software Engineering, which is concerned with the development and management of large software projects. This degree program is offered by the Department of Computer, Electrical, and Software Engineering, and results in a Bachelor of Science in Software Engineering. This program shares many of the core requirements of the Computer Science program listed above.

  • Management Information Systems, which is concerned with computing in the business world. This degree program is offered by the Department of Management Information Systems in the College of Business, and results in a Bachelor of Science in Business Administration.

The Computer Science program at Ship is designed to enable the student to gain knowledge of computer science and to apply this knowledge to an application area. Students will be proficient in developing computer software to solve problems in a number of contexts.

The Computer Science program and its concentrations are accredited by the Computing Accreditation Commission of ABET, placing Shippensburg University among 30 Pennsylvania colleges and universities that have ABET-accredited programs and one of 17 that include computer science programs.

Required Computer Science Classes
CMSC 110 - Computer Science I
CMSC 111 - Computer Science II
CMSC 310 - Design and Analysis of Algorithms
CMSC 410 - Theoretical Foundations of Computer Science
CMSC 471 - Database Management Systems
CMSC 498 - Computer Science Senior Research Methods
CMSC 499 - Computer Science Senior Research and Development

Required Courses from Software Engineering
SWEN 200 - Design Patterns

Required Courses from Computer Engineering
CMPE 220 - Computer Organization
CMPE 320 - Operating Systems

Required Courses from Mathematics
MATH 211 Calculus I
MATH 225 Discrete Mathematics
MATH 217 Statistics I or MAT 375 Stats for Engineers
MATH 318 Elementary Linear Algebra

Available Upper Division Computer Science Courses
CMSC 361 - Video Game Programming
CMSC 403 - Machine Learning
CMSC 410 - Theoretical Foundations of Computer Science
CMSC 431 - Computer Networks
CMSC 462 - Artificial Intelligence

Science Requirement
Any two from:
BIO 161 - Principles of Biology: Cell Structure and Function
BIO 162 - Principles of Biology: Organismal Diversity
CHM 121/125 - Chemical Bonding/Laboratory IB-Stoichiometry and Reactions
CHM 122/126 - Chemical Dynamics/Laboratory IIB-Equilibrium and Instrumentation
ESS 110 - Introduction to Geology
PHY 124/205 - Physics I Laboratory/Intermediate Physics I
PHY 126/206 - Physics II Laboratory/Intermediate Physics II

In addition to the required courses, students must complete one concentration.

In addition to the core courses, students must complete the requirements of a concentration. Students may choose from pre-approved concentrations or seek department approval for a concentration of their own design. The decision to pursue a concentration is typically made during the sophomore year.

Computer Science Applications - This is our broadest degree. Its goal is to give the student experiences across the discipline. Students select from two upper division CS courses and one upper division course in the School of Engineering.

Computer Science with Secondary Field - This concentration is designed for students who would like to combine computer science with minor or major in another field of study.

In addition to a concentration, students have the option to do a focused area of study in Artificial Intelligence or Video Game Programming.  With proper planning this requires no additional course work for students in the Applications concentration.

Artificial Intelligence Certificate - This is an interdisciplinary concentration that combines AI courses in our department with courses from other disciplines that are foundations on which the field of AI is based.

Video Game Programming Certificate - This is an interdisciplinary concentration that combines courses about graphics, video game programming, and networking in our department with courses from other disciplines.


CMPE 220 Computer Organization

Credits: 4
Description:  Introduces organization and architecture of computer systems from the standard von Neumann model to more recent architectural concepts. Internal structure and organization of a computer leads to significant differences in performance and functionality, giving rise to an extraordinary range of computing devices from hand-held computer to large-scale, high performance machines. To gain a better understanding of exactly how a computer functions, students will write programs in a common assembly language.

Prerequisites: CSC 111/ENGR 120 for level with C or better AND MAT 225 with C or better or currently taking MAT 225

CMPE 320 Operating Systems

Credits: 4
Description:  An operating system provides an abstract interface with which programmers can control hardware. The study of this area includes both the use of operating systems (externals) and their design and implementation (internals). This course will include laboratories to simulate or experiment with operating system concepts. Topics include overview of operating systems, processes and concurrency, memory management, scheduling, input/output and file systems, system performance evaluation, ethics, and security.

Prerequisites: CMPE 220 with C or better

CMSC 110 Computer Science I

Credits: 4
Description:  An introduction to computer programming from an object-oriented perspective. Students will complete several programs with an emphasis placed on good software engineering principles and development of good programming skills. Students will implement complete programs using an object-oriented programming language and development environment. Topics include: fundamental programming techniques including algorithm design, documentation, style, and debugging; fundamental program constructs including simple data types, and control structures; fundamental object oriented techniques including classes, abstraction, polymorphism, inheritance, and encapsulation; and fundamental software engineering principles.

Prerequisites: Math placement level 4 or higher.

CMSC 111 Computer Science II

Credits: 4
Description:  Students will reinforce their proficiency with core programming techniques by developing more challenging programs than in CS1. Students will apply new techniques such as pointers, structures and unions to create advanced programs and solutions. Students will also need to improve their solutions to enhance efficiency and soundness. Topics include intermediate programming techniques; using advanced data types including multi-dimensional arrays, queues, stacks, linked lists, recursion, sorting and searching algorithms.

Prerequisites: CMSC 110 with C or better.

CMSC 310 Design and Analysis of Algorithms

Credits: 4
Description:  Examines various techniques for designing algorithms and analyzing their efficiencies, and examines and compares their efficiency of execution. Studies the theoretical foundations for analysis of algorithms and the ramifications of design strategies on efficiency.

Prerequisites: CMSC 111/ENGR 120 with C or better and MATH 225 with C or better

CMSC 361 Video Game Programming

Credits: 4
Description:  This course will look at the key concepts needed to build 2D and 3D video games using an existing game engine. The course will look at asset management, animation, collision detection physics, and user input. Additionally, It will look at some key design patterns related to game programming.

Prerequisites: SWEN 200 with C or better.

CMSC 403 Machine Learning

Credits: 4
Description:  This introductory course gives an overview of machine learning. This is a wide ranging field including topics such as: classification, linear regression, Principal Component Analysis (PCA), neural networks, bagging and boosting, support vector machines, hidden Markov models, Bayesian networks, Q-learning, reinforcement learning. 

Prerequisites: MATH 217 with D or better and CMSC 310 with D or better.

CMSC 410 Theoretical Foundations of Computer Science

Credits: 3
Description:  Topics include finite automata, regular languages, regular expressions, and regular grammars; pushdown automata and context-free languages; Turing machines; Church-Turing Thesis; the Halting Problem; undecidability; classes of languages, including the Chomsky hierarchy and the classes P, NP, and NP-Complete. Proof techniques for showing language (non)membership in a class. 

Prerequisites: CMSC 310 with C or better.

CMSC 431 Computer Networks

Credits: 4
Description:  Studies protocol suites, emphasizing the TCP/IP 4-layer model. Topics included are network addresses, sub netting, client/server network programming via the sockets API, network utilities, architecture of packets, routing, fragmentation, connection and termination, connection-less applications, data flow, and an examination of necessary protocols at the link layer, particularly Ethernet. Other topics may include FDDI, wireless, ATM, congestion control, and network security. 

Prerequisites: CMPE 220 or SWEN 200 with a C or better or GPRE level 1

CMSC 462 Artificial Intelligence

Credits: 4
Description:  Overview of artificial intelligence. Emphasis on basic tools of AI, search and knowledge representation, and their application to a variety of AI problems. Search methods include depth-first, breadth-first, and AI algorithms; knowledge representation schemes include propositional and predicate logics, semantic nets and frames, and scripts. Planning using a STRIPS-like planner will also be addressed. Areas that may be addressed include natural language processing, computer vision, robotics, expert systems, and machine learning.

Prerequisites: SWEN 200 with C or better, GPRE level 1.

CMSC 471 Database Management Systems

Credits: 3
Description:  Detailed examination of theory and practical issues underlying the design, development, and use of a DBMS. Topics include characteristics of a well-designed database; high-level representation of an application using ER modeling; functional dependency theory, normalization, and their application toward a well-designed database; abstract query languages; query languages; concurrency; integrity; security. Advanced topics may be included (e.g., distributed databases; object-oriented databases). Theory to practice is applied in a number of projects involving the design, creation, and use of a database.

Prerequisites: SWEN 200 with C or better

CMSC 498 Research Methods

Credits: 3
Description:  Students will learn basic research strategies including conducting literature reviews, designing experiments, defining hypotheses, and writing proposals. The course will include topics including finding and evaluating sources of information, defining topics, developing and supporting a hypotheses, and acceptable research and experimental practices. Students will develop a proposal for a research project to be completed in CSC 499. Graduate students are not allowed to take this course.

Prerequisites: CMSC 310 and co-req of MATH 117 or MATH 217 or MATH 375.

CMSC 499 Senior Research and Development

Credits: 3
Description:  Students will independently, but under the direction of the instructor of record, execute the proposal developed in CSC 498. Students will conduct the experiments outlined in their testing / implementation plan. Students will then analyze the results and determine if their hypothesis was supported or not. The goal of this course is to gain experience with a formal development process and understand how the scientific method, mathematical reasoning, logic, and algorithmic thinking will generate concrete answers to problems. Pre-requisite: Completion of CSC 498 with a C or better. Graduate students are not allowed to take this course

Prerequisites: PHIL 105 and CMSC 498 with C or better.

SWEN 200 Design Patterns

Credits: 4
Description:  Provides an advanced study of the concepts of object-oriented programming, with an emphasis on applying those concepts to software development. Many object design patters have emerged as proven ways to structure object-oriented solutions to a wide range of key problems. This course provides hands-on experience with using object design patterns to solve a number of problems that recur in computer science. Students will develop a number of medium to large programs individually.

Prerequisites: CMSC 111 or ENGR 120 with C or better.

Career opportunities in software development have been and are predicted to be, very favorable in the future. The work environment and income potential are highly attractive. Opportunities exist among all employers, especially business and industry, government, science, and education. And not everyone who completes this degree becomes a programmer. These skills are required in jobs like sales, technical support, and project management.

The students from our programs are highly sought after in industry. They are hired by small start ups through Fortune 500 companies. They build a variety of types of systems like control systems, business systems, games, research software, medical software, networking and database software.

The Computer Science degree program and its concentrations are accredited by the CAC Accreditation Commission of ABET, placing Shippensburg University among 46 Pennsylvania colleges and universities that have accredited ABET programs and one of 20 that include computer science programs. For more information on ABET, visit ABET Information.

This accreditation means that the national accrediting organization has spent time on our campus making sure that our curriculum meets national standards, our faculty are well-supported and current in the discipline, and our infrastructure is up-to-date and well-supported. It is your assurance that, not only is our program strong today, but we have also laid the foundation so that it will continue to be strong in the future.

The goal of our Bachelor Science program is to provide students with the skills necessary to succeed in the computer science profession. Our program combines practical experience with appropriate theory and the ability to specialize within the discipline.

Program Objectives

Graduates of our program will be prepared to achieve the following objectives:

  1.  Satisfying work in a field of their choice (corporate or academic)
    a. Have obtained a satisfying position
    b. Have confidence in their ability to move to their next position of choice
  2. Continue to be an effective and productive member of his/her workplace by applying these fundamentals taught in our program
    a. Effective problems solving skills
    b. Effective communication
    c. Critical thinking
    d. Sound business practices
    e. Professional standards
    f. Behaving in accordance with professional ethics
  3. Remain a member of his/her larger community by
    a. Participating actively in professional organizations
    b. Using expertise through volunteering
  4. Continue to learn and develop within his/her field of interest (corporate or academic) by participating in:
    a. Workshops/Training
    b. Certifications
    c. Graduate school
    d. Self-study
  5. Expand breadth of scope and leadership role and advance toward one or more of the following career paths: technical, managerial, or business

Student Outcomes

General Criterion 3-1: An ability to analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.

General Criterion 3-2: An ability to design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.

General Criterion 3-3: An ability to communicate effectively in a variety of professional contexts.

General Criterion 3-4: An ability to recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.

General Criterion 3-5: An ability to effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

General Criterion 3-6: Apply computer science theory and software development fundamentals to produce computing-based solutions.

General Criterion 5-1: Computing topics must include techniques, skills, and tools necessary for computing practice.

General Criterion 5-2: Computing topics must include principles and practices for secure computing.

General Criterion 5-3: Computing topics must include local and global impacts of computing solutions on individuals, organizations, and society.

Special Criterion 1: Recognition of the need for and an ability to engage in continuing professional development.

Special Criterion 2: Using the CS MFT Exam our students will perform at or above level with Programming and Software Engineering, at or above level with Discrete Structures and Algorithms, and at or slightly below level with Systems.

Mapping of Program Objectives to Student Outcomes

1a: 3-3, 3-4, 5-3

1b: 3-1, 5-1

2a: 3-1, 3-6

2b: 3-3

2c: 3-1, 3-2, 3-6

2d: 3-4, 5-3

2e: 3-4, 3-5

2f: 3-4

3a-b: SC-1

4a-d: SC-1


Incoming Freshmen and Graduating Class Size by AY:


2019 AY

2020 AY

2021 AY

2022 AY

2023 AY

Incoming Freshmen






Total Freshmen












With careful planning, our advanced undergraduate students can complete our MS in Computer Science with only one additional year of study. The details of how this works depend on the interest areas of the student, but leveraging both degrees can give a graduate a combination of breadth and depth that employers will appreciate.

Contact the Computer Science Department 156 Mathematics and Computing Technologies Center 1871 Old Main Drive, Shippensburg, PA 17257 Phone: 717-477-1178