Department of Computer Science


Mission Statement
The Computer Science department strives to be an intellectual community that continually explores the broad field of computing, applies this knowledge to solve problems in a variety of domains, and engages with the profession and society at large. Undergraduates join this community when they become majors, participating with faculty and other students in exploring computing through classes, projects, clubs, and internships.


The goals of the Computer Science department are to:


  • Offer small classes that provide opportunities for personal interaction with students.
  • Provide a broad, inclusive, and up-to-date computing curriculum.
  • Provide students opportunities for professional and community engagement and real word experiences.
  • Help students to become computing problem solvers and good communicators.
  • Produce graduates who will succeed in the computing profession.


Career Opportunities and Marketable Skills
Computing technology pervades modern society, and demand for computing professionals is strong and projected to remain strong for the foreseeable future. Careers in computing range from technical positions specifying, designing, building, and maintaining networks and systems of all kinds, through project leadership and technical management. The Computer Science major prepares students for entry-level technical positions as programmers, software developers, requirements analysts, software designers, testers, software quality assurance professionals, system architects, network engineers, information security specialists, and computing consultants.


Co-curricular Activities and Organizations
The James Madison University Student Chapter of the Association for Computing Machinery is the local student chapter of the national association for computing professionals.


The JMU chapter of Upsilon Pi Epsilon, the international honor society in computer science, recognizes outstanding academic achievement by students and outstanding contributions to education by faculty. The department also sponsors the Cyber Defense, Digital Forensics, and Women in Technology clubs.


Students are encouraged to intern in a business or government organization during the summer. Students may receive elective credit toward their major requirements for internship experiences.





Degree and Major Requirements


Bachelor of Science in Computer Science


Degree Requirements


Required Courses Credit Hours
General Education 1 41
Quantitative requirement (in addition to General Education) 3
Major requirements (listed below) 48-51
University electives 25-28



1 The General Education program contains a set of requirements each student must fulfill. The number of credit hours necessary to fulfill these requirements may vary.


Major Requirements Credit Hours
Choose one: 3-4
CS 139. Programming Fundamentals  
CS 149. Programming Fundamentals (Advanced)  
Choose one: 3-4
CS 159. Advanced Programming  
CS 239. Advanced Computer Programming  
CS/MATH 227. Discrete Structures I 3
CS/MATH 228. Discrete Structures II 3
CS 240. Algorithms and Data Structures 3
CS 260. Technical Communication for Computer Science 3
CS 345. Software Engineering 3
CS 350. Computer Organization 3
CS 430. Programming Languages 3
CS 450. Operating Systems 3
CS 460. TCP/IP Networks 3
CS 474. Database Design and Application 3
Computer Science electives above CS 300 9
Choose one of the following calculus courses: 3-4
MATH 205. Introductory Calculus I  
MATH 231. Calculus with Functions I  
MATH 235. Calculus I  
Choose one of the following statistics courses: 3-4
MATH 220. Elementary Statistics  
MATH 318. Introduction to Probability and Statistics  



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. Students must achieve a cumulative grade point average of 2.0 or better in all courses used to satisfy the above requirements.




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 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-236 or MATH 231-232-236. However, only the U.S. Office of Personnel Management can give final approval of individual qualifications.




Minor Requirements


Computer Science Minor


Minor Adviser: Dr. Michael Kirkpatrick


Courses Credit Hours
Choose one: 3-4
CS 139. Algorithm Development  
CS 149. Programming Fundamentals (Accelerated)  
Choose one: 3-4
CS 159. Advanced Programming  
CS 239. Advanced Computer Programming  
Choose four: 12
CS 240. Algorithms and Data Structures  
CS/MATH 228. Discrete Structures II  
Computer Science courses above CS 300  



Telecommunications Minor


Minor Adviser: Dr. Mohamed Aboutabl


The Department of Computer Science, in cooperation with other departments, offers a cross disciplinary minor in telecommunications. The program is intended to augment major programs in preparing students to become network and telecommunications professionals. For a full description of the requirements for the minor in Telecommunications, see Cross Disciplinary Programs.