Department of Computer Science
To help persons discover whether they have ability and interest in computing, and to empower those who do to extend the application of computers to the problems of society.
- "To help persons discover": Computer science is skill-oriented. Individuals only grow when they actively participate in the application of knowledge. We are committed to providing a variety of active learning experiences.
- "Whether they have the ability and interest in computing": The rapid advancement of computing creates a broad spectrum of novel opportunities and roles for computer scientists in our society. We are committed to providing a rich environment that allows individuals to find a niche in this spectrum suited to their aptitudes and interests.
- "And to empower those who do": Empowerment implies knowledge of the machines, algorithms and applications already developed so our students can build on the work of their predecessors. To apply a computer to a problem is a practical matter, not just a theoretical one. Because of the complexity of the systems that are being created, empowerment implies the ability to manage persons, time and other resources to accomplish such goals within allocated means.
- "To extend the application of computers": By extending is meant not just any use of computers, but some use that claims new ground. For example, entering data into a spreadsheet does not extend the use of computers, while setting up a spreadsheet to perform a customized data analysis extends the application of computers to that particular problem. Stronger examples would include developing applications, even extending the concept of computing itself, to open previously unknown application domains. Computing professionals must be leaders in the development of computing and the application of computing to new problems.
- "To the problems of society": A wide-ranging liberal education is particularly valuable for computer scientists, since often their task is to apply computing to a problem domain in some other discipline, or even more frequently, across several disciplines at once. The ability to communicate with experts in a broad range of social and scientific disciplines is critical. Our efforts flourish in the context of the wider university, and are particularly needful of integration with other departments. We therefore participate as computer scientists in the application of computing to the research of our colleagues, and as educators in maintaining, designing and implementing the wider mission of the university.
The program puts students in the middle of the exploding information revolution where they study technological advances such as object-oriented software, communication networks, multimedia systems, information security and artificial intelligence. Students learn about computing technologies used by today's professionals and how to use these technologies to solve real-world problems. They learn to analyze problems, design solutions, implement solutions using multiple computing technologies, test and install those solutions, and communicate those solutions to others in written and verbal presentations.
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.
|Required Courses||Credit Hours|
|Quantitative requirement (in addition to General Education)||3|
|Major requirements (listed below)||49-51|
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.
|CS/MATH 227. Discrete Structures I||3|
|CS/MATH 228. Discrete Structures II||3|
|CS 239. Advanced Computer Programming||4|
|(CS 139 or equivalent is a prerequisite for CS 239)|
|CS 240. Algorithms and Data Structures||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 Applications||3|
|Computer Science electives above CS 300||9|
|WRTC 210. Technical and Scientific Communication||3|
|Choose one of the following:||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.
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 sequence 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.
Dr. H. Taz Daughtrey, Minor Adviser
|CS 139. Algorithm Development||4|
|CS 239. Advanced Computer Programming||4|
|Choose one of the following:||3|
|CS 345. Software Engineering|
|CS 350. Computer Organization|
|Choose three of the following:||9|
|CS 240. Algorithms and Data Structures|
|CS/MATH 228. Discrete Structures II|
|Computer Science courses above CS 300|
Dr. Mohamed Aboutabl, Minor Adviser
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.