George Mason University > University Catalog > Information Technology & Engineering
2003-04 University Catalog George Mason University

Computer Science

Phone: (703) 993-1530


Professors: DeJong, Hamburger, Menasce, Pullen, Rine, Sood, Tecuci, Wechsler

Associate professors: Carver, Chen, Richards, Setia, Simon,Wang, White

Assistant professors: Aydin, Duric, Huang, Kosecka, Luke

Instructors: Maddox, Maney, McJunkin, Nordstrom, Singh

Adjunct professors: Baldo, Buck, Curts, Doughty, Evans, Geldon Gross, Hwang, Jamison, Kaznachey, Maddox, Mannucci, Mayo, Nelson, Obaidi, Otten, Rosene, Smeltzer, Snow, Xiao


Computer science is the discipline concerned with the design, implementation, and maintenance of the computer systems used in almost all other professions. Computer scientists must be well grounded in the technologies needed for the acquisition, representation, storage, transmission, transformation, and use of information in digital form and must be capable of working closely with members of other professions associated with computing.

Course Work

The Computer Science Department offers all courses designated CS in the "Course Descriptions" chapter of this catalog as well as some of the IT courses.

Undergraduate Programs

Computer Science, B.S.

George Mason's computer science program is accredited by the Computer Science Accreditation Board.

For the B.S. degree, students must complete 120 credits, including the general education requirements and all of the following:

1. Computer science core: CS 105, 112, 211, 265, 310, 330, 365, 421, and 483. Total credits: 26. Students should take CS 105 during their second semester.

2. Senior computer science: Any four of the following: CS 440, 450, 451, 455, 471, 475, 480, 482, 490, and 491. Total credits: 12.

3. Mathematics: MATH 113, 114, 125, 203, 213; OR 481; STAT 344; and ECE 301. Total credits: 26. (MATH 105 and 108 cannot be counted toward this degree.)

4. Computer science-related courses: 6 credits chosen from STAT 354; OR 335, 441, 442; ECE 280, 431, 442, 447, 450, 511; SWE 432; SYST 301, 302, 371, 470; PHIL 371, 376; and any MATH or CS course numbered above 300 (except MATH 351). Students may need to choose electives to satisfy the prerequisites of these courses. In particular, those planning to take MATH 352 may replace STAT 344 with MATH 351.

5. Natural sciences: 12 credits in natural science courses intended for scientists and engineers. Two of the courses for this requirement must have laboratory components and must constitute a sequence. A list of relevant courses can be obtained from the department office.

6. COMM 100 or 104: Computer science students in either course must make a technical presentation. The course fulfills the general education requirement in oral communication for IT&E students.

Students should consult the sample schedule below and ensure that course prerequisites are satisfied. Students should obtain computer-generated audits periodically to ensure that degree requirements are met.

Sample Schedule

The following table presents a sample schedule that an undergraduate computer science major would follow to obtain a bachelor's degree.

First Semester  
MATH 113 Analytic Geometry and Calculus I 4
CS 112 Computer Science I 4
ENGL 101 Composition 3
HIST 100 History of Western Civilization* 3
Second Semester  
CS 211 Computer Science II 3
MATH 114 Analytic Geometry and Calculus II 4
HIST 120 U.S. History 3
Literature general education course 3
Third Semester  
CS 265 Assembly Language Programming 3
MATH 213 Analytic Geometry and Calculus III 3
General elective 3
Social and behavioral science general education* 3
General elective 3
CS 105 Computer Ethics and Society 1
Fourth Semester  
CS 310 Computer Science III 3
MATH 125 Discrete Mathematics I 3
ENGL 302 Advanced Composition 3
Natural science course 4
COMM 100 Oral Communication or 104 Presenting with Technology 3
Fifth Semester  
CS 330 Formal Methods and Models 3
CS 421 Introduction to Software Engineering 3
ECE 301 Digital Electronics 3
MATH 203 Matrix Algebra 3
General elective 3
Sixth Semester  
CS 365 Computer Systems Architecture 3
Senior computer science course 3
STAT 344 Probability and Statistics for Engineers and Scientists I 3
Computer science-related elective 3
Elective 3
Seventh Semester  
Senior computer science course 3
CS 483 Data Structures and Analysis of Algorithms 3
OR 481 Numerical Methods in Engineering 3
Computer science-related elective 3
Natural science with lab 4
Eighth Semester  
Senior computer science courses (2) 6
Natural science with lab 4
Global understanding general education 3
Synthesis general education 3

* These 12 credits must satisfy the general education component of the IT&E degree requirements. See the third item in the list of bachelor of science degree requirements at the front of this chapter.

Change of Major

Students requesting a change of major to computer science must have a GPA of at least 2.750 and have successfully completed two of these courses: CS 112, 211; MATH 113, 114, or 125.

Advanced Placement and Credit by Examination

Some students may receive credit for CS 112, CS 211, or CS 265 by passing departmentally administered examinations. In addition, a score of 3 on the Advanced Placement (AP) Computer Science examination qualifies the student for credit in CS 112. An AP score of 4, together with demonstrated competence in the programming language used in CS 211, qualifies the student for credit in CS 211. A score of 4 on the International Baccalaureate (IB) program computer science examination qualifies the student for credit in CS 112, and a score of 5 or more qualifies the student for credit in CS 211.

Writing-Intensive Requirement

Computer science majors complete the writing-intensive requirement through a sequence of projects and reports in the following computer science courses: CS 105, 211, 332, 421, 471, 480, and 490. In all these courses, faculty members provide feedback on students' expository writing.


A student must earn a C or better in any course intended to satisfy a prerequisite for a computer science course. Computer science majors may not use more than one course with a grade of D toward the departmental requirements.

Cooperative Education

A computer science major may participate in the George Mason cooperative education program or in a work-study program in the Washington, D.C.-Northern Virginia area.

B.S./Accelerated M.S. in Computer Science

The B.S./Accelerated M.S. in Computer Science program is for those interested in immediately continuing on to graduate studies in computer science.

Admission Requirements

Students in the B.S. program may apply for the B.S./Accelerated M.S. in Computer Science program if they have earned 90 undergraduate credits with an overall GPA of at least 3.30. Criteria for admission to the B.S./Accelerated M.S. program are identical to the criteria for admission to the M.S. program.

Degree Requirements

1. Students have to complete 144 credits that satisfy both the requirements for the B.S. program and those for the M.S. program, with 6 credits overlap.

2. Students register for 6 credits of CS 500-level core courses in place of the corresponding CS 400-level courses required for the undergraduate degree requirements. That is, students must register for two of the following courses: CS 540, 571, 580, and 583, in place of the corresponding 400-level courses.

3. Students in the B.S./Accelerated M.S. program are permitted to take additional graduate core courses in their undergraduate programs. In such cases, the students must satisfy the core requirements for the M.S. by taking more advanced courses from the same concentration. For example, if CS 580 and CS 583 are the two overlapping core courses, and the student also takes CS 540 as part of his or her B.S. program, then the student needs to take a more advanced course from the concentration (systems) corresponding to CS 540, to satisfy the core requirements for the M.S.

Degree Conferral

Students in the B.S./Accelerated M.S. program may apply to have the B.S. degree conferred during the semester in which they expect to complete the B.S. requirements. At the completion of the M.S. requirements, a master's degree is granted.

B.S. in Computer Science/Accelerated M.S. in related fields

The B.S. program in Computer Science coordinates with the M.S. programs in Information Systems, Software Engineering and Telecommunications. For information on these accelerated programs, please refer to the M.S. program in the appropriate section of this catalog.

Minor in Computer Science

A minor in computer science requires the completion of 17 credits. Required courses are CS 105, 112, 211, and 310.

Two additional computer science courses should be selected from the following: CS 265, 330, 332, 363, 365, 421, 450, 455, 471, 480, and 483. Students should pay careful attention to prerequisites when selecting courses.

Double Major in Computer Science and Computer Engineering

Computer science majors can earn a double major in computer science and computer engineering if they complete an additional 17 credits of courses beyond the 120 credits required for the computer science degree. The additional 17 credits must be part of an approved plan of study. Details are available at the IT&E web site,

Graduate Programs

In addition to offering the M.S. and Ph.D. in Computer Science, the department participates in the Ph.D. in Information Technology.

Computer Science, M.S.

The graduate program leading to an M.S, in Computer Science prepares students for research and professional practice in computer science and related technologies. The program includes both fundamentals and advanced work in the core areas of algorithms, artificial intelligence, software engineering, and computer systems and networks. In addition, students have the opportunity to receive in-depth understanding in current technologies associated with adaptive systems, agent systems, distributed systems, embedded computing, graphics, image analysis, robotics, and web technologies. A certificate in computer networks is available. Graduate classes are generally offered in the late afternoon and evening. Financial aid in the form of graduate assistantships may be available for full-time, degree seeking students.

Plan of Study

Before the end of the second semester, each students must have a plan of study approved by his or her academic advisor. This plan should be kept up to date by regular consultation with the student's academic advisor. A final, signed version of the plan must be included when the student submits a graduation application.

Admission Requirements

Students seeking admission to the M.S. in Computer Science program must satisfy the following requirements:

1. Fulfill admission requirements for graduate study at George Mason University.

2. Hold a baccalaureate degree that includes CS 310 Computer Science III, CS 330 Formal Methods and Models, CS 265 Assembly Language Programming, and CS 365 Computer Systems Architecture. Students also must have completed one year of mathematics beyond first-year calculus, including a substantial course in discrete mathematics (e.g., MATH 125). Students with some deficiencies in preparation may be admitted provisionally pending completion of foundation courses in mathematics or computer science. Undergraduate credit earned for this purpose may not be applied toward the graduate degree.

3. Have a cumulative GPA of 3.000 for the last two years of undergraduate work, preferably with a major in a technical field such as computer science, mathematics, physical sciences, engineering, or information systems.

4. Submit transcripts of all postsecondary education; a self-assessment form (normally included in the application package or available from the department); three letters of recommendation; and an official Graduate Record Examination (GRE) report.

Degree Requirements

In addition to the general requirements of the university, completion of this program requires 30 credits of graduate courses, as follows:

1. Core Courses: 12 credits consisting of

  • CS 540 Language Processors
  • CS 571 Operating Systems
  • CS 580 Introduction to Artificial Intelligence
  • CS 583 Analysis of Algorithms

2. Additional Courses: 18 credits of computer science or computer science-related* courses:

  • At least 15 of these credits must qualify as advanced* by having suitable graduate courses as prerequisites.
  • At least 9 of these credits must be in courses specifically designated CS.

3. Breadth: The courses in requirement 2 above must include entries in three different concentration areas.* Courses listed under more than one concentration count only once for satisfying this requirement.

4. Project/Thesis (optional): 3 of the advanced credits may be replaced by a project (3 credits of CS 798) or a thesis (3 to 6 credits of CS 799). The project or thesis must be guided and approved by a committee of three appropriate faculty members and presented at an appropriate forum. Theses must meet relevant university requirements.

* The Department of Computer Science maintains a list of computer science-related courses, indicating which are at an advanced level. These are available on the web and in the department office, as are lists of courses in the concentration areas.

Certificate in Computer Networking

When brought together to form computer networks, the technologies of computing and communications exhibit a synergy that is revolutionizing our world. As a result, in-depth knowledge of the new discipline of computer networking increasingly is in demand as a basis for design and deployment of new information systems of all sorts, ranging from aspects of the global Internet to distributed systems in a wide variety of application domains. The courses for this certificate have been selected to provide a solid basis for understanding the core software and communications technologies upon which today's networks are based, and how they may be combined to create effective computer networks. Courses included cover both mainstream and leading-edge technology considerations, ensuring that the student is prepared to function at the professional level in this fast-moving and technologically challenging field. Course work toward the graduate certificate can be used for credit toward the M.S. in Computer Science with a specialization in networks. However, the certificate also may be pursued concurrently with any of the graduate degree programs in the School of Information Technology and Engineering.

Admission Requirements

The certificate program in communications and networking is open to all students who are eligible for entrance into the master's degree program in computer science or in any scientific or engineering discipline at George Mason University.

Certificate Requirements

To obtain the certificate, candidates must complete the following courses, for a total of 15 credits:

Required of all students (6 credits):

1. CS 571 Operating Systems

2. CS 656 Computer Communications and Networking

Plus one or both of the following (3 or 6 credits):

1. CS 755 Advanced Computer Networks

2. CS 756 Performance Analysis of Computer Networks

Plus one or two of the following elective courses (3 or 6 credits):

1. ECE 542 Computer Network Architectures and Protocols

2. ECE 642 Design and Analysis of Computer Communication Networks

3. ECE 742 High-Speed Networks

4. INFS 762 Information Systems Security

5. INFS 766 Internet Security Protocols

6. IT 657 Advanced Network Science

Computer Science, Ph.D.

Because research in computer science at George Mason is distributed across the Department of Computer Science and the Department of Information and Software Engineering, the Ph.D. program is coordinated by a committee drawn from these two departments.

The program is designed for breadth, depth, flexibility, and interaction. In recognition of the diverse forms of preparation and experience that students may possess, the foundational breadth requirement takes the form of a qualifying examination rather than specified course work. Standard courses are available to help prepare for these exams but not all students need all the courses. In the next phase, individuals pursue unique combinations of courses, including individual study, selected with the guidance of their advisory committees. This advanced work leads to a comprehensive examination and culminates in a dissertation. The general doctoral requirements of George Mason University apply to this program.

Admission Requirements

Applicants are evaluated on an individual basis by the Ph.D. Admissions Committee. A master of science degree with a very strong background in computer science or a closely related field, such as software engineering or information systems, is required. The admission process involves submitting the application for admission, all postsecondary transcripts, Graduate Record Examination scores in Computer Science, three letters of reference, a resume, and a short statement of career goals and aspirations. Application forms are available online at

Qualifying Examination

Students take a written qualifying examination, given twice a year, in the fall and spring semesters. This must be done before continuing beyond 36 credits. Students must choose four areas in which to be examined, one of which must be algorithms and theory. The other three are chosen from among the following: language processing and formal models, artificial intelligence, computer systems, software engineering, and databases/information engineering. The exams are pass/fail. To qualify, a student must pass all four examinations. A student who passes three of four at the first attempt is permitted to retake the one failed examination. A student who passes fewer than three examinations must retake an entire set of examinations. Any retaking must occur within a year of the original examinations. Failure after two attempts is grounds for dismissal from the program.

Course Requirements

In addition to courses taken to prepare for the qualifying exam, students must take at least eight courses, including two computer science courses at the 600 level or above; CS 700 Quantitative Methods and Experimental Design in Computer Science; and five other courses in computer science at the 700 level or above, chosen from a list maintained by the program.

Planning and Advising

The student forms a faculty advisory committee to advise in establishing and carrying out a plan of study that meets the above requirements and will prepare the student properly for the dissertation phase. The members and chair of this advising committee must qualify as a dissertation committee, as specified below. Normally some or all of the members will later belong to the student's dissertation committee, so these individuals will be able to ensure relevance of the plan of study to an emerging dissertation topic.


Each Ph.D. student is required to attend a seminar series in the first year, at which faculty members present their own computer science research. The purpose of the seminar is to provide common experiences for new students, to familiarize new students with the computer science research done in the school, and to help them choose a dissertation director and committee.

Comprehensive Examination

Each student must take a combined written and oral comprehensive examination after completion of all course requirements. The purpose of this examination is to evaluate the student's knowledge and ability to complete a Ph.D. dissertation. The student must pass both the written and oral parts. Each can be retaken no more than once if it is failed.

Dissertation Committee Selection

The student forms a dissertation supervisory committee consisting of four or five appropriately qualified individuals, three of whom must be tenured or tenure-track faculty members in the Computer Science Department and/or Information and Software Engineering Department. Committee membership must transcend a single department. It is recommended that the committee include a member outside the two departments. The chair of the supervisory committee, who is also the dissertation director, must be tenured or tenure-track in the School of Information Technology and Engineering. The committee must be approved by the chair of the Computer Science Department and the associate dean for graduate studies of IT&E.

Dissertation Proposal Defense

Each student prepares a written dissertation proposal, which is presented to the supervisory committee. The student may enroll in CS 998 Doctoral Dissertation Proposal to complete this effort. The committee assesses the proposal and assists the student in fulfilling his/her responsibility to have a clear topic with the potential to make a significant contribution to the field, along with a clear methodology. The committee also assesses whether the student has the intellectual background and the resources to have a good chance of completing a successful dissertation in a timely manner. After successfully completing this requirement, the student is formally advanced to candidacy for the Ph.D. degree.

Dissertation and Defense

The Ph.D. dissertation corresponds to a maximum of 24 credits from CS 998 and CS 999, at least 12 of them in CS 999, after advancement to candidacy. The work must represent an achievement in research; must be a significant contribution to its field; and should be deemed publishable in refereed journals or refereed conferences. The document must meet format guidelines specified by the Guide for Preparing Graduate Theses, Dissertations, and Projects.

The student prepares to defend the dissertation in consultation with the dissertation director. Normally, there is a predefense with only the committee members present. There must be a public defense at a date that is agreed upon by all members of the committee and is preceded by at least two weeks of public announcement by the program. The dissertation must be made available to the committee at least two weeks in advance. If the candidate successfully defends the dissertation, the committee recommends that the final form of the dissertation be completed, and that the graduate faculty of George Mason University accept the candidate for the Ph.D. degree.