E.M.U.’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.
The entire curriculum is designed to meet the ACM 2013 Curriculum guidelines. The department is working with the Institute for Certification of Computing Professionals to offer one of two possible certifications upon completion of either degree and successful completion of the CS2013 exam. Students who score 50% or higher on both parts of the exam qualify for the ICCP Certified Computer Science Associate credential. Students who score 70% or higher qualify for the ICCP Certified Computer Scientist – mastery level.
Based on Spring 2015 Beta test results, most students who finish the BACS program will be capable of qualifying for the Certified Computer Science Associate credential and those who finish the BSCS program will be capable of qualifying for the Certified Computer Scientist – mastery level.
About Our Computer Science Program
The computer science major at E.M.U. 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 the approval of the faculty) which usually includes a minor or second major in another field, as computer science is an applied field. Examples of minors and second majors include:
- 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.
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 185 Calculus I
- 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 E.M.U.’s Washington Community Scholar’s Center, organizations in the Harrisonburg area, and even E.M.U.’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.
Minor in Computer Science
The minor in computer science consists of 18 SH of computer science courses with at least 6 SH selected from the upper-level (300 or above) courses.
- CS 110 Introduction to Computer Science (3)
- CS 120 Introduction to Programming: Python (3)
- CS 220 Intermediate Programming: Java (3)
- CS 230 Networking and Data Communications (3)
- CS 250 Architecture and Operating Systems (3)
- CS 270 Databases and Information Management (3)
- CS 320 Data Structures (3)
- CS 333 Topics in Computing (3) (can be repeated)
- CS 340 Analysis of Algorithms (3)
- CS 350 System Administration (3)
- CS 370 Software Engineering (3)
- CS 420 Programming Languages (3)
- CS 470 Project Management (3)
ACM student club
The Association for Computing Machinery (ACM) student club at E.M.U. is an informal gathering for students who are interesting in computers, coding, or programming. The club meets once a month for lunch during which time a guest speaker presents on a topic of interest.
Past topics include:
- A discussion on Alan Turing and his contributions to the field of computing and mathematics
- A presentation by Bob Haskins from the telecommunication company Shentel
- A discussion on the current state of different areas of computer science including drones, houses and cars
Working groups are student-led groups based around a common interest or theme.
Current working groups include:
- Programming competitions
- Cell phone app design
- Outreach – recently hosted a One Hour of Code event
E.M.U.’s math and computer science faculty helped expand my thinking in life. Every professor I had was outstanding. Predicting outcomes, managing time, knowing what an ideal solution looks like, knowing when approximations are good enough, and understanding the pros and cons of the different methods of statistical analysis used in all fields of scientific research are just a few of the important life skills I learned.
– Eric Brodersen, computer science grad