
Computer Science, B.S.
Program Description
The Bachelor of Science degree in Computer Science prepares graduates to excel in the field of computing. All students complete required coursework in programming, mathematics, data structures, algorithms, software engineering, computer systems, and programming languages. Students also choose elective courses from a variety of computing subfields including robotics, artificial intelligence, human-computer interaction, cyber defense, database systems, and web applications. Throughout the curriculum, students apply their knowledge by completing many software development projects both individually and on a team, using a variety of languages and systems.
Admission Requirements
Admission to JMU does not guarantee admission to the Computer Science major. Admission is limited, but the department will strive to accommodate all interested students who have demonstrated the potential to succeed in CS. Students may enroll in CS courses beyond CS 149, CS 159 and CS 227/MATH 227 only if they are fully admitted to the CS major or minor.
Students interested in the major must complete the application process described below to request full admission.
Students who wish to apply for full admission to the CS major must:
- Be enrolled at JMU
- Have declared the CS major
- Have completed a minimum of 15 credit hours
- Have completed or be currently enrolled in CS 159 and CS 227/MATH 227/MATH 245
- Achieve grades of "B-" or better in CS 159 and CS 227/MATH 227/MATH 245
- Submit an official application that includes an essay of no more than 250 words to address a prompt that demonstrates students' commitment to the values of the Department of Computer Science.
Additional application and acceptance information:
- Students will be granted full admission to the CS major as space permits based on their grades in CS 159 and CS 227/MATH 227/MATH 245 and faculty evaluation of their potential to succeed in the CS major.
- There are two application cycles, once in the fall for spring admission, and once in the spring for fall admission.
- Students will be notified of their CS major admission status no later than January 1st for admission for the spring semester, and no later than May 31st for admission for the fall semester.
- Students may apply to the CS major and/or minor two times, in total.
- Students who have attempted CS 149, CS 159 or CS 227/MATH 227/MATH 245 at JMU may not attempt them elsewhere (i.e. they must make any second attempt(s) at JMU).
- Non-transfer students must take CS 159 and CS 227/MATH 227/MATH 245 at JMU.
- MATH 245 may be substituted for CS 227.
- An applicant's CS and calculus grades will be considered during the admission process, with a strong emphasis on CS grades. Final admission decisions will be made by a committee of CS faculty members.
Incoming transfer students will be placed into appropriate CS courses for their first semester after consultation with a transfer advisor based on placement test performance and other considerations. Students who are placed into CS 149 will be subject to the same eligibility requirements and application process as non-transfer students. Transfer students who are placed into courses other than CS 149 must apply for full admission at the end of their first semester. They will be evaluated by a committee of CS faculty members based on their performance in the first semester as well as the other elements of the admissions application. Transfer students must have credit for or be taking CS 159 and CS 227/MATH 227/MATH 245 the semester they apply for full admission to the major.
Transfer students who are denied admission on their first attempt may continue to take appropriate CS courses during a subsequent semester as determined through consultation with a transfer advisor. Admission decisions for the second attempt will be based on the full record of coursework at JMU.
Progressing in the Major and Minimum Grades
Students may enroll in each of CS 149, CS 159, CS 240 and CS 261 at most twice. Most CS courses require a minimum grade of "C-" (minimum of "B-" in CS 149 and CS 227) in prerequisite courses, including those taken in the Department of Mathematics and Statistics. Students must achieve a minimum cumulative grade point average of 2.0 in all courses used to satisfy CS major degree requirements.
Students must earn a minimum grade of "C-" in the following courses to count for the CS major: CS 240, CS 261, CS 327, CS 361, Calculus (MATH 231 or MATH 235), and Statistics (MATH 220, MATH 229, or MATH 318).
Degree Requirements
| Degree Requirements | Credit Hours |
|---|---|
| General Education 1 | 41 |
| Quantitative requirement (in addition to General Education) | 3 |
| Major requirements (listed below) | 49-52 |
| University electives | 24-27 |
| Total | 120 |
- 1
The General Education program contains a set of requirements each student must fulfill. Some credits may be fulfilled by courses required within the major.
Major Requirements
| Code | Title | Credits |
|---|---|---|
| CS 149 | Introduction to Programming | 3 |
| CS 159 | Advanced Programming | 3 |
| CS 240 | Algorithms and Data Structures | 3 |
| CS 261 | Computer Systems I | 3 |
| CS 327 | Discrete Structures II | 3 |
| CS 345 | Software Engineering | 3 |
| CS 361 | Computer Systems II | 3 |
| CS 430 | Programming Languages | 3 |
| Computer Science electives at the 300-level or above, with at least two above CS 332 | 9 | |
| Choose one introductory discrete math course: | 3 | |
| Discrete Structures I | ||
| Discrete Structures I | ||
| Discrete Mathematics | ||
| Choose one calculus sequence: | 4-6 | |
| Calculus I [C3QR] | ||
| Calculus with Functions I [C3QR] and Calculus with Functions II | ||
| Choose one statistics course: | 3-4 | |
| Elementary Statistics [C3QR] | ||
| Introduction to Applied Statistics Using R [C3QR] | ||
| Introduction to Probability and Statistics | ||
| Choose one algorithms course: | 3 | |
| Applied Algorithms | ||
| Design and Analysis of Algorithms | ||
| Choose one systems elective: | 3 | |
| Compilers | ||
| Operating Systems | ||
| Advanced Computer Networking | ||
| Computer Architecture | ||
| Parallel and Distributed Systems | ||
| Total Credits | 49-52 | |
Additional Information
The credit/no-credit option may not be applied to any courses specifically listed above, nor may that option be applied to computer science electives.
Certificate of Completion
Periodically, the department may offer a collection of two or more advanced courses in a particular area of study.
Students successfully completing those courses will obtain a certificate of completion in that area of study. Examples of possible certificate programs include networking, software engineering and information security.
U.S. Government Requirements for Computer Scientists
The U.S. government standard for occupational category GS- 1550: Computer Science Series includes a requirement of 15 hours in statistics and mathematics including differential and integral calculus. This means that students considering a career as a computer scientist with the U.S. government (including DoD, NASA, etc.) must complete more math courses than the minimum requirement for a B.S. degree. Recommended calculus sequences for these students are MATH 235-MATH 236 or MATH 231- MATH 232-MATH 236. However, only the U.S. Office of Personnel Management can give final approval of individual qualifications.
Sample Plan of Study for Majors
This is just an illustration of a path through our curriculum.
| First Year | ||
|---|---|---|
| Fall Semester | Credits | |
| CS 149 | Introduction to Programming | 3 |
| MATH 231 | Calculus with Functions I [C3QR] 1 | 3 |
| General Education requirement | 9 | |
| Credits | 15 | |
| Spring Semester | ||
| CS 159 | Advanced Programming | 3 |
| CS 227 | Discrete Structures I | 3 |
| MATH 232 | Calculus with Functions II 1 | 3 |
| General Education requirement | 6 | |
| Credits | 15 | |
| Second Year | ||
| Fall Semester | ||
| CS 240 | Algorithms and Data Structures | 3 |
| CS 345 | Software Engineering | 3 |
| General Education requirement | 6 | |
| Electives | 3 | |
| Credits | 15 | |
| Spring Semester | ||
| CS 261 | Computer Systems I | 3 |
| MATH 220 | Elementary Statistics [C3QR] 2 | 3 |
| General Education requirement | 6 | |
| Electives | 3 | |
| Credits | 15 | |
| Third Year | ||
| Fall Semester | ||
| CS 327 | Discrete Structures II | 3 |
| CS 361 | Computer Systems II | 3 |
| General Education requirement | 6 | |
| Electives | 3 | |
| Credits | 15 | |
| Spring Semester | ||
| CS 430 | Programming Languages | 3 |
| CS Systems Elective | 3 | |
| General Education requirement | 3 | |
| Electives | 6 | |
| Credits | 15 | |
| Fourth Year | ||
| Fall Semester | ||
| CS Algorithm Elective | 3 | |
| CS Elective | 3 | |
| Electives | 9 | |
| Credits | 15 | |
| Spring Semester | ||
| CS Electives | 6 | |
| Electives | 9 | |
| Credits | 15 | |
| Total Credits | 120 | |
- 1
Many students opt to take the two-course calculus sequence (MATH 231 and MATH 232), but if you have the appropriate ALEKS score, you could take MATH 235 to fulfill your calculus requirement.
- 2
Many students opt to take Elementary Statistics (MATH 220) to fulfill our statistics requirement, but we have two other course options: MATH 229 or MATH 318.
