Graduate Studies

Computer Science

Admission | Courses | Program | Requirements | Integrated Degree | Profile

Director:  Dennis DeVolder
Graduate Committee Chairperson: Martin Maskarinec
Office: Stipes Hall 447
Telephone: (309) 298-1452 Fax: (309) 298-2302
Location of Program Offering: Macomb

Graduate Faculty


  • Dennis DeVolder, Ph.D., Florida State University
  • Binto George, Ph.D., Indian Institute of Science
  • Yeongkwun Kim, Ph.D., Illinois Institute of Technology
  • Byoung Lee, Ph.D., University of Iowa
  • George Mangalaraj, Ph.D., University of Texas-Arlington
  • Martin Maskarinec, Ph.D., Northwestern University
  • James McQuillan, Ph.D., University of Western Ontario
  • Chunying Zhao, Ph.D., University of Texas-Dallas

Associate Professor

  • L. Leff, Ph.D., Southern Methodist University

Assistant Professors

  • Antonio Cardenas-Haro, Ph.D., Arizona State University
  • Anjum Razzaque, Ph.D., Brunel University
  • Nilanjan Sen, Ph.D., University of North Texas

Associate Graduate Faculty

Assistant Professors

  • Gregory Baramidze, Ph.D., University of Georgia
  • Ihab Mohammed, Ph.D., Western Michigan University

Learning Outcomes

For student learning outcomes, please see

 Program Description

The School of Computer Sciences offers a Master of Science degree in Computer Science. The program emphasizes technical and professional education that integrates academic course work with extensive projects. The program is designed to have the flexibility to provide academic and professional preparation for industrial careers as well as the pursuit of higher degrees. The program integrates the theoretical with the practical by combining academic technical preparation in core areas and depth areas as well as a number of elective areas. The program is also designed to accommodate students with B.A. and B.S. degrees from other majors wishing to pursue a master’s degree in computer science.

Integrated Baccalaureate and Master’s Degree Program

Please go to integrated programs for details and program offerings.

 Admission Requirements

  • A minimum cumulative GPA of 2.75 OR 3.0 or higher GPA for the last two years (60 s.h.) of undergraduate work

The Departmental Graduate Committee will evaluate undergraduate work at the time a student seeks admission to the program. Students entering this program should normally have received their undergraduate degree in computer science. Other students may be admitted, at the discretion of the Departmental Graduate Committee, but may have to remedy deficiencies in their undergraduate preparation by taking courses for nondegree credit.

 Degree Requirements

The Chairperson of the Departmental Graduate Committee serves as a student's advisor during the first semester. After completing nine semester hours of course work acceptable for the graduate degree, and prior to the completion of 15 hours, students will complete the Degree Plan for the School of Graduate Studies. The Chairperson of the Departmental Graduate Committee will approve an advisory committee when the Degree Plan is approved.

Each graduate student's advisory committee will consist of three full‑time faculty members. For those students under the Thesis or Project Plans, the chairperson of the student's graduate committee will direct the thesis or project research, and the remaining members will share responsibility with the chairperson for final approval of the written research document and for conducting an oral examination over the project or thesis.

The School of Computer Sciences offers four plans by which the Master of Science degree may be earned.

Plan 1, the Thesis Plan, requires 27 semester hours of course work and six hours of research. The final written thesis will be a formal document describing the research and will be prepared in accordance with requirements of the School of Graduate Studies.

Plan 2, the Project Plan, requires 30 semester hours of course work, and three hours of directed study research. A final written report on the research project is required.

Plan 3, the Internship Plan, requires 30 semester hours of course work, and three hours of internship credit. A final written report on the internship is required.

Plan 4, the All‑Course‑Work Plan, requires 33 semester credit hours of course work.

In the All‑Course‑Work Plan, the chairperson of the student's graduate committee will normally be the chairperson of the Departmental Graduate Committee; students can petition the Departmental Graduate Committee for a change of chairperson.

The maximum course load for Computer Science graduate students is nine hours during fall or spring semester or six hours during the summer term.

No more than 15 s.h. of 4xxG credit may be applied to the graduate degree.

If a student requires no remedial computer science course work, a total of 33 semester hours is required for the master’s degree in computer science. The hours are distributed as follows:

I. Proficiency: 3 s.h.

CS 500 Intensive Programming Review (3)

II. Core Requirements: 18 s.h.

Students must complete one course from each subject area below while in residence at WIU.

Subject Area 1 – Operating Systems

CS 410G Operating Systems (3)
CS 511 Operating Systems I (3)
CS 512 Advanced Operating Systems (3)
CS 513 Topics in Operating Systems (3)

Subject Area 2 – Database Systems

CS 470G Database Systems (3)
CS 521 Database Design and Administration I (3)
CS 522 Advanced Database Design and Administration (3)
CS 523 Topics in Database Systems (3)

Subject Area 3 – Artificial Intelligence

CS 460G Artificial Intelligence Methods (3)
CS 547 Artificial Intelligence I (3)
CS 548 Advanced Artificial Intelligence (3)
CS 549 Topics in Artificial Intelligence (3)

Subject Area 4 – Computer Networks

CS 420G Computer Communication and Networks (3)
CS 555 Telecommunications Networks I (3)
CS 556 Advanced Computer Networks (3)
CS 557 Topics in Computer Networks (3)

Subject Area 5 – Computer Architecture

CS 560 Computer Architecture (3)
CS 561 Advanced Computer Architecture (3)
CS 562 Topics in Computer Architecture (3)

Subject Area 6 – Computer Graphics

CS 465G Computer Graphics (3)
CS 565 Computer Graphics I (3)
CS 566 Advanced Computer Graphics (3)
CS 567 Topics in Computer Graphics (3)

III. Depth Requirements: 6 s.h.

Students must complete a second course in two of the subject areas listed above.

IV. Plans of Study: 6 s.h.

A. Thesis

CS 600 Research (3)
CS 601 Thesis (3)

B. Project

Approved Electives (3)
CS 599 Master’s Project (3)

C. Internship (This plan is not available to students in the Integrated Bachelor’s and Master’s degree program.)

Approved Electives (3)
CS 595 Graduate Computer Science Internship (3)

D. All Coursework (This plan is not available to students in the Integrated Bachelor’s and Master’s degree program.)

Approved Electives (6)


The successful completion of a final oral examination covering the project, internship, or thesis, when those plans are chosen, is required to graduate.

A variety of programming languages and software packages are used at the graduate level. Graduate students are expected to have the ability to immediately learn these languages and packages as needed for their programs.

 Course Descriptions

Computer Science (CS)

400G Computer Organization II. (3) Computer systems analysis and design, interconnection structures, memory, input/output processors, machine instruction sets, microprogramming, CPU structures, control units, parallel processing, computer architectures and systems. Prerequisites: CS 214 and 310.

410G Operating Systems. (3) Overview of the concepts/theory of operating systems with emphasis on process management, memory management, file management, scheduling, device management, and synchronization. Prerequisite: CS 310 and (CS 250 or CS 500). Credit cannot be given for both CS 410 and CS 511.

420G Computer Communication and Networks. (3) Survey of the operational features of telecommunications systems, computer networks, and distributed-processing systems. Considerations for the design of real-time systems. Prerequisite: CS 351 or CS 500. Credit cannot be given for both CS 420 and (CS 484 or IS 324 or CS 555).

425G Server-Side Web Development. (3) Significant development of server-side web applications using server-side architecture and a current scripting language. Prerequisites: CS 351 or (CS 350 and IS 415) or (CS 350 and NET 422)

433G Python for Data Exploration. (3) Programming data-intensive and computational applications in Python. The emphasis is on using Python’s various technical libraries and tools geared toward data manipulation, visualization, and analysis, as well as scientific computing. Relevant case studies are used to hone these skills. Not open to MS in Computer Science students. Prerequisites: (CS 114 or CS 214) and (MATH 128 or STAT 171).

460G Artificial Intelligence Methods. (3) An introduction to the main principles and methods of artificial intelligence. Solving problems by searching, knowledge and reasoning; machine learning; current AI applications. Programming paradigms relevant to AI will be explored. Graduate students will need to write a term paper on a topic in or related to AI. Prerequisite: CS 351 or CS 500. Credit cannot be given for both CS 460 and CS 547.

465G Computer Graphics. (3) Introduction to computer-generation of images of 3D scenes using modern graphics API (such as OpenGL with GLSL. Emphasis on programming techniques for rendering, animation, and 3D modeling, as well as necessary mathematical foundations. Prerequisite: CS 351 or CS 500. Credit cannot be given for both CS 465 and CS 565.

470G Database Systems. (3) Survey of data models with emphasis on the relational model. Data normalization. Query languages and query optimization. Design and security considerations. Exposure to commercial database management systems. Prerequisite: CS 351 or CS 500* or [CS 250 and (CS/CSEC 395 or CS 351 or CS/CSEC 398 or CSEC 432) (*If taking CS 470G).

478G GPU Programming. (3) Graphics Processing Unit (GPU) programming. Parallel algorithms and programming techniques for GPUs. Sorting algorithms, matrix manipulation algorithms, sparse matrices. Prerequisites: CS 351 and CS/CSEC 371.

481G Database Programming. (3) Introduction to practical aspects of querying relational databases (using SQL). Creating applications written in high-level, general-purpose programming languages (Python) for interacting with databases. Necessary programming fundamentals, principles of database querying, developing applications that work with databases. Prerequisites: STAT 171 or permission of the instructor.

483G Elementary Database Applications. (3) Covers command language, programming logic and applications of database systems for the non-computer science major. Cannot be applied to the computer science master's program. Prerequisite: CS 101 or 114. Credit cannot be given for both CS 483, and CS 470 or IS 342.

484G Network and Data Communications Concepts (3) Concepts and design of commercial computer and telecommunications networks. Course is designed for non‑majors, especially those who will manage/operate networks in business environments. Cannot be applied toward the Computer Science Master's Program. Prerequisite: CS 101 or CS 114 or CS 214 or CS 211 and CS 212. Credit cannot be given for both CS 484, and IS 324 or CS 420.

488G Introduction to Programming with Visual Basic. (3) Introduction to the principles of programming for Windows in Visual Basic. Principles include event-driven programming, control structures, properties, events, methods of controls, and forms. Cannot be applied to the computer science master’s program. Prerequisites: CS 101 or ET 105, or equivalent.

500 Intensive Programming Review. (3) This course will review computer programming, object-oriented design, linear and non-linear data structures, and the software development lifecycle. All concepts will be reinforced through hands-on programming assignments and projects. Prerequisite: CS 250.

505 Computer and Information Security. (3) Methods of protecting computers, devices, networks, software and data from undesirable access, modification or damage. Modern cryptographic methods, security protocols, network security, web application security, cloud security, software security and usable security. Prerequisites: CS 351 or CS 500 or permission of the School of Computer Science.

511 Operating Systems I. (3) Study of operating systems principles. Hardware, software, firmware. Survey of existing systems, future trends. Discussion of considerations for selection of particular systems. Prerequisite: CS 250 or equivalent.

512 Advanced Operating Systems. (3) This course covers advanced concepts in operating systems with historical and current perspectives from research papers. Topics include kernel structures, process management techniques, memory management mechanisms, advanced file systems, protection and security. Prerequisite: CS 410G.

513 Topics in Operating Systems. (3) Topics to include additional depth, readings, and/or examination of research trends in operating systems. Prerequisite: CS 410G or equivalent.

521 Database Design and Administration I. (3) Review of data file structures. Database organizations, and implementations. Prerequisite: CS 351 or equivalent.

522 Advanced Database Design and Administration. (3) Advanced relational database concepts. This course will examine topics such as relational database management system design (RDBMS), including discussion of the major components of a RDBMS; query optimization strategies and cost estimation techniques; active databases, advanced transaction processing; and concurrency control. Prerequisite: CS 470G.

523 Topics in Database Systems. (3) Topics to include additional depth, reading and/or examination of research trends in Database Systems. Prerequisite: CS 470G or equivalent.

530 Design and Analysis of Algorithms. (3) Fundamentals of the design and analysis of algorithms, space and time-complexity issues, dynamic programming, greedy algorithms, linear programming, NP-completeness, multithreaded algorithms, and applications. Prerequisites: CS 355 and prerequisite or corequisite CS 250.

540 Computer Simulation. (3) Introduction to various modeling formalisms and computer simulation techniques; emphasis on discrete-event and/or agent-based modeling and simulation. Focuses on programming simulation models (rather than using existing applications), designing them, parameter fitting, visualizing/animating results, and collecting statistics. Prerequisites: One statistics course and familiarity with two programming languages.

547 Artificial Intelligence I. (3) Problem-solving methods in artificial intelligence with emphasis on heuristic programming. Prerequisite: CS 351 or equivalent.

548 Advanced Artificial Intelligence. (3) The course will include topics from Expert Systems, Knowledge Engineering, Soft Computing, and other advanced topics. Prerequisite: CS 460G, or equivalent.

549 Topics in Artificial Intelligence. (3) Course covers modern trends in artificial intelligence. Prerequisite: CS 460G or equivalent.

550 Workshop. (1–3)

555 Telecommunications Networks I. (3) Study of real-time and distributed processing computer networks including telecommunications and data transmission techniques. Design and implementation of typical systems. Prerequisites: CS 250 and a statistics course or equivalents.

556 Advanced Computer Networks. (3) In depth studies of computer networks and the services built on top of them. Prerequisite: CS 420G, or equivalent.

557 Topics in Computer Networks. (3) Survey of computer networks covering current trends and advanced topics. Survey of research papers from classic literature through contemporary research. Prerequisite: CS 420G or equivalent.

560 Computer Architecture. (3) Study of computer architecture for large-scale and small-scale systems. Microprogramming concepts. Minicomputer and microcomputer design and applications, projects on small‑scale systems. Prerequisite: CS 310 or equivalent.

561 Advanced Computer Architecture. (3) Investigation of techniques to enhance system performance. Topics may include compiler optimization, hardware optimization, branch prediction, speculation, exploitation of instructional-and loop-level parallelism, etc. Prerequisite: CS 560 or 400G, or equivalent.

562 Topics in Computer Architecture. (3) Advanced topics to include additional depth, readings, and/or examination of research trends in computer architecture. Prerequisite: CS 560 or 400G, or equivalent.

565 Computer Graphics I. (3) Study of graphical display devices and their applications. Techniques of graphical display software, including display files, windowing, slipping, and two- and three-dimensional transformations. Prerequisites: CS 250 and MATH 311 or equivalents.

566 Advanced Computer Graphics. (3) Study and programming of problems beyond the introductory level, such as real time computer graphics using modern programming languages and graphics development environments. Prerequisite: CS 465G, or equivalent.

567 Topics in Computer Graphics. (3) Designed to gain depth in computer graphics. Possible topics include the study of 3-D modeling for, and the development of, multi-user virtual worlds. Prerequisite: CS 465G or equivalent.

575 Independent Study. (3) An investigation of issues related to computer science not specifically covered in other courses. A written report is required. Graded S/U. Prerequisites: Completion of nine graduate hours in computer science with a GPA of at least 3.0 and permission of the department.

585 Software Engineering. (3) Covers the design and implementation of large software applications through the study of team approaches and industrial standards. Prerequisite: CS 351 or equivalent.

590 Topics in Computer Science. (3) May be repeated with a change in subject matter to a total of nine credit hours. This course is designed to give students knowledge at the frontier of a rapidly changing technology. It is offered in the following areas: a) expert database systems; b) object-oriented programming; c) fundamentals of computer arithmetic; d) computing theory for software engineers; e) design of decision support systems; f) complexity; g) cybernetics; h) fuzzy logic; i) distributed computing. j) knowledge engineering; k) software maintenance; l) systems analysis. Prerequisites: Permission of the instructor.

595 Graduate Computer Science Internship. (3) A one-semester on-the-job experience in an industrial facility or research laboratory. Graded S/U. Prerequisite: A GPA greater than 3.0, at least 9 hours of Computer Science graduate coursework, and permission of the School of Computer Sciences.

599 Master's Project. (3, repeatable once with change in subject matter) Special software or hardware project work, in lieu of a thesis, under supervision of the student’s graduate committee chairperson. Written and oral project reports are required. Graded S/U.

600 Research. (3) Research project for the MS Thesis, under direction of the student's graduate committee chairperson. Graded S/U.

601 Thesis. (3) Graded S/U.

Cyber Security (CSEC)

482G Wireless LANs and Security. (3) Radio Frequency Fundamentals, features and functions of Wireless LANs, Spread Spectrum Techniques, IEEE 802.11 architecture, Wireless LAN Security, Designing and Troubleshooting Wireless LANs. Prerequisites: CS/CSEC 395 and CSEC 322.