Major in Computer Science
Back to top
Mission
EMU’s computer science program seeks to produce skilled computing professionals with a respect for the cultural and social impact of computing technologies in our modern global community.
Computer science has traditionally focused on finding new and more effective ways to use computers, but now that computer technology is part of our everyday lives, the field of computing has also grown to include designing, managing, and improving reliable and efficient computing systems.
A major in computer science can prepare graduates to:
- devise new ways to use computers,
- develop more effective and efficient ways to solve traditional problems,
- plan and manage computer and network systems,
- and design and create a wide range of computer programs including climate simulators, payroll systems, and even games.
Back to top
Related Majors
The computer science major at EMU is designed to be robust and flexible enough to meet
the needs of a diverse set of students. Each student will create a custom plan of study
(with approval of the faculty) which might include a minor or second major in
another field. Some students might be better served with the related
digital media major with only a minor in computer science.
- The combination of mathematics and computer science provides an excellent background for graduate study in either field.
- Those interested in the efficient and effective use computing technology in a business environment might combine computer science and one of the business fields.
- The emerging field of biomedical informatics is a combination of computer science and biology.
- Game programming and web application development are partially about technology and partially about interface design techniques taught as part of the digital media major.
- A computer science teaching endorsement for grades 6-12 is approved by the Virginia Department of Education when combined with an education licensure.
- With computing technology part of our everyday lives, it can be combined with almost any other field" for those seeking a unique career path.
Back to top
Facilities
The University maintains three technology classrooms and two general
purpose computer labs with both Macintosh and Microsoft Windows systems.
The department also has a small lab for CS student projects which would be
impossible in the general labs such as configuring networks and installing
and configuring Linux or MS Windows servers.
Back to top
Computing Subfields
Computing is a diverse field with many specialties. An undergraduate degree in computer science can only offer an overview of the various areas within computer science, but for those who pursue graduate studies there are a wide range of options.
- programming and software development
- system and software engineering
- architecture and operating systems
- networks and distributed computing
- human-computer interaction
- graphics and visualization
- information management
- scientific computing
- information and business systems
- security and system administration
- algorithms and complexity theory
And all of those fall within the traditional definitions of computer science. As computer have become part of our everyday lives, more fields such as information technology, which specializes in system administration and other applications of computer technology, have developed.
Back to top
Major Requirements
The major consists of 9 hours of foundational mathematics courses, 12 hours
of fundamental computer science courses, 18 hours of upper-level computer
science courses, and 6 additional hours from computer science or related
fields (with advisor approval) for a total of 45 hours.
Students seeking a Bachelor of Science degree in Computer Science must take
CS 320, CS 340, CS 420, MATH 192, MATH 170, MATH 240, and are encouraged to
minor in mathematics. Students meeting the general major requirements but
who do not complete the math and computer science courses required for a
B.S. will receive a Bachelor of Arts in Computer Science.
Mathematics Foundation Courses (9 hours)
Principles from statistics, calculus, and discrete mathematics provide the
foundation for many computer science methods and techniques.
| MATH 150 Elements of Calculus | OR | MATH 192 Integral Calculus |
| MATH 130 Finite Mathematics | OR | MATH 170 Discrete Mathematics |
| MATH 140 Elementary Statistics | OR | MATH 240 Statistics for Natural Sciences |
CS Fundamental Courses (12 hours)
Fundamental knowledge of programming, networks, databases, architecture and
operating systems used in modern computing environments provide a practical
framework for studying more advanced topics.
| CS 220 Intermediate Programming: Java |
| CS 230 Networking and Data Communications |
| CS 250 Architecture and Operating Systems |
| CS 270 Databases and Information Management |
CS Upper-level Courses (18 hours)
Students select from a range of courses covering both theoretical and
applied aspects of computing based on personal interest and career goals.
| CS 320 Data Structures |
| CS 333 Topics in Computing (can be repeated) |
| CS 340 Analysis of Algorithms |
| CS 350 System Administration |
| CS 370 Software Engineering |
| CS 420 Programming Languages |
| CS 470 Project Management |
| CS 488 Internship |
| CS 499 Independent Study/Research |
Internship opportunities are available through EMU’s Washington Community
Scholar’s Center, organizations in the Harrisonburg area, and even EMU’s
own Information Systems department.
The department offers at least one “topics” course each year with the
content selected based on the areas of interest of current students and
faculty. The course may be taken for credit repeatedly since the content
will vary from year to year. Topic examples include: theory of computation,
numerical analysis, modeling and simulation, graphics, computer animation,
computer vision, advanced algorithmic analysis, cryptography, parallel
algorithms, artificial intelligence, robotics, hypermedia development,
language translation systems, and functional programming.
CS or Related Field Elective Courses (6 hours)
These might be additional CS courses or from related fields to
cover topics such as electronics, numerical computation, quantitative
decision making, or media production.

