Computer Science
Master of Science
(
MS)

Program Overview

The Master of Science in Computer Science (MSCS) is a 34-credit program that provides advanced study in the theory and practice of Computer Science. It focuses on two of the key areas in modern computing: distributed systems and computer security. The program has been designed to:

strike a healthy balance between theory and practice;

help students acquire the ability to read and assimilate highly technical material;

deepen students' technical knowledge;

enable students to solve complex problems;

help students effectively respond to rapid technological changes;

help students develop well organized presentations and written materials; and

enhance students' careers in computing

The MSCS program consists of 28 credits of coursework, which includes 12 credits focused on distributed computing and computer security and 16 credits of electives. All MSCS students will learn about research methodologies, scholarly research, and professional writing in a 2-credit ICS 698 Research Seminar course. An applied project or original thesis in Computer Science (4 credits) must also be completed.

In keeping with Metropolitan State University's commitment to working adults, the MSCS program offers evening and online classes, with flexible program choices to suit individual professional goals.

Program Outcomes

Graduates of this program will have acquired:

a solid foundation in the concepts of distributed systems and computer security;

a good knowledge of the major research areas in Computer Science;

the ability to survey literature related to research problems in Computer Science, and to obtain the necessary background information to further explore the problems; and

the skill to write up research results and present them orally

The research seminar (ICS 698) course must be completed before the research project/thesis is undertaken. The seminar is designed to help students learn more about current research topics in the major areas of computer science and to become more familiar with the research process.

All MSCS students must complete a practical research project (project option) or theoretical problem (thesis option) under the guidance of a full-time faculty member of the department. Students may register for a variable number of credits (1-4) per semester for the project/thesis, but the total credits earned from the project/thesis must be no less than four. All project/thesis credits (ICS 660I) will be graded Pass/No Credit only.

In a typical research project, the student will do some conceptual development followed by an implementation. The thesis option requires students to do original research. A thesis option is more appropriate if the student is considering the pursuit of doctoral studies elsewhere at some point. In both cases (project/thesis) the student must submit a written report of his/her work to a graduate committee and make an oral defense of the work.

Before registering for the project/thesis, the student must form a committee of at least three faculty members, the chair of which must be a resident faculty member of the ICS department. The committee must include at least two faculty members (community or resident) from the ICS department and at least two resident faculty members of Metropolitan State University.

The student must orally defend the project/thesis before the committee at least two weeks (four to six weeks is recommended) prior to the student's date of graduation. The defense may occur only after the following steps are completed:

The chair of the committee approves the project/thesis report

The student sends the project/thesis report to their committee, and also to director of the graduate program, who will check the report for conformance to program stipulations, quality, and authenticity. This report must be distributed at least two weeks prior to the scheduled date of the project/thesis defense.

Any faculty member on the student's committee, or the graduate director, may reject the project/thesis report as not ready for defense within a week of receiving the report. The student must then make the necessary revisions and resubmit the report for approval.

After a successful defense, the student must submit a bound copy of the report, with any requested corrections completed, to the director of the graduate program.

A student may graduate only after Step 4 above is completed.

The thesis defense can have one of three outcomes:

The student passes the defense with no changes required to the project/thesis report.

The student passes the defense with the understanding that certain requested changes must be made, and approved by the committee and the graduate program director, before graduation. No further defense will be required.

The student fails the defense and must revise and re-defend the project/thesis.

Because outcome (A) cannot be assured (and is, indeed, rare), and because binderies may get busy near the end of semesters, students are advised to schedule their thesis defense four to six weeks prior to the end of the semester in which they plan to graduate.

Admission Criteria

The ICS department bases admission decisions on the applicant's prior academic work (especially in Computer Science), professional or other non-academic background in Computer Science, and recommendation letters. The following four items are the minimum criteria for the ICS department to consider an applicant for potential admission. Meeting these requirements is not a guarantee of admission.

Bachelor's degree from an accredited institution with either:

a cumulative undergraduate grade point average (GPA) of at least 3.0 (on a 4.0 scale), or

an undergraduate GPA of at least 3.0 in all Computer Science and Mathematics or related courses, or

in rare circumstances, a student not meeting requirements (a) or (b) might be considered if their other application materials are stellar (e.g., outstanding recommendations, excellent GRE scores, etc.)

Evidence that the student's preparation includes work in Computer Science and Mathematics through the level of ICS 240 and MATH 215, through either:

transcript verified credits in equivalent courses

letters of recommendation and essay indicating how such competence was achieved

Two positive recommendations from people qualified to judge the applicant's ability for graduate studies

English language proficiency (international applicants only, on any type of visa) as documented by official TOEFL or IELTS score:

Application Requirements

This is a summary listing only. See Applying to the Program for full details on the application deadline and requirements, and requirements specific to international students.

Graduate Application; required

$20 non-refundable application fee; required (waived only for graduates of Metropolitan State University)

Official transcripts or transcript evaluation from all undergraduate institutions attended; required

Two letters of recommendation; required

Resume; recommended

Purpose Essay; recommended

Graduate Record Examination (GRE) official score report; recommended

Additional Information

To complete the program, the student must complete 34 credits of approved work, which include:

one course in computer security (4 credits)

one course in distributed systems (4 credits)

a second course in either computer security or distributed systems (4 credits)

the research seminar course (2 credits)

a set of elective courses covering advanced material in computer science. (Electives may include additional work in distributed systems or security or may be taken from other advanced topics.) (16 credits)

completion of a practical research project (project option) or theoretical problem (thesis option) under the guidance of a full-time faculty member of the department. The student must submit a written report of his/her work to a graduate committee and later make an oral defense of the work. (4 credits)

Transfer Credits

A maximum of eight (8) graduate credits from other universities or departments may be used for graduate credit with advisor approval. Courses used for the award of another degree at Metropolitan State or any other university may not be used again for graduate credit in the MSCS program. Prior learning and internship credits do not count toward program requirements. Independent studies are strongly discouraged except for project or thesis work. Regardless of other coursework, the student must complete at least 22 credits of ICS coursework at the 600-level at Metropolitan State University.

Academic Standing

To remain in good academic standing, the student must:

Earn a grade of B- or better in all courses;

Maintain a cumulative GPA of 3.0;

Successfully complete at least one approved course within three semesters (including summer) of admission; and

Finish the program within 18 semesters (summers included) of first registration as a graduate student fully admitted to the MSCS program.

Students who earn a grade less than B- in more than two classes (prerequisite undergraduate coursework or graduate level coursework) will be dismissed from the program. Students whose GPA falls below 3.0 (out of 4.0) will be given multiple semesters to bring their GPA back to 3.0 or higher. A student will be deemed to have a GPA of 3.0 or better if their GPA in their highest-graded 30 credits of coursework is 3.0 or better. Failure to remain in good academic standing will result in dismissal from the program. A dismissed student must sit out at least 3 consecutive semesters (one calendar year) and reapply for admission to continue in the program. If readmitted, the student may be asked to repeat some or all of the courses taken previously.

Reactivating into the Program

A student in good academic standing who has not registered for courses for three or more consecutive semesters (including summers) must formally request to reactivate into the degree program. To reactivate, submit a letter to the director of the MSCS program expressing a desire to reactivate into the program. You will be required to satisfy degree requirements in force at the time of reactivation, even if those requirements differ from those in force at the time of original admission to the degree program.

Accreditation

Metropolitan State University is accredited by the Higher Learning Commission:Higher Learning Commission30 North LaSalle Street, Suite 2400Chicago, IL 60602-2504312-263-0456

How Admissions Works

Prerequisites

Ideally, applicants will have an undergraduate degree in Computer Science or a related field. Applicants are expected, at a minimum, to have intermediate object-oriented programming skills with a good knowledge of data structures and concomitant mathematical background. This would be the equivalent of having completed ICS 140, 141, and 240 and MATH 215 in our undergraduate program (further work in Computer Science would be preferable.)

Applicants lacking a strong undergraduate major in Computer Science may be required, as a condition of admission, to take senior-level undergraduate courses as part of their program.

Eight credits of this 400-level work may count toward the 34 credits required to graduate.

Principles and practices of the OSI and TCP/IP models of computer networks, with special emphasis on the security of these networks. Coverage of general issues of computer and data security. Introduction to the various layers of network protocols, including physical, data link, network, and transport layers, flow control, error checking, and congestion control. Computer system strengths and vulnerabilities, and protection techniques: Topics include applied cryptography, security threats, security management, operating systems, network firewall and security measures. Focus on secure programming techniques. Programming projects.

This course introduces XML technologies, web services and service-oriented architectures. Current approaches to web service design and implementation will be discussed. Models for designing and implementing a service-oriented architecture will be discussed. Security considerations and emerging trends will be explored. Students will implement web services.

Study of distributed algorithms that are designed to run on networked processors and useful in a variety of applications., such as telecommunications, information processing, and real-time process control. Specific algorithms studied include leader election, distributed consensus, mutual exclusion, resource allocation, and stable property detection. Both asynchronous and synchronous systems will be covered and fault tolerance will be the major theme. Algorithms will be analyzed for complexity and proofs of corrections will be studied.

Computer Security (4 credits)

A second course in either distributed systems or computer security (4 credits)

ICS 682 Cryptography and Computer Security

4 credits

This course will discuss a broad range of computer security issues related to cryptography and networks. Students will study the design and use of cryptographic systems and analyze cryptanalytic attacks. A history of cryptographic systems and the mathematics behind them will be covered as well. Techniques of network security, including cryptographic techniques, will be covered.

This course is the first of a two-course series that introduces the interdisciplinary field of cyberspace security. The technical foundation for the cybersecurity defender is a particular combination of network, operating system, hardware (mobile/desktop/server) and software engineering skills, all of which are required to protect and defend modern systems, networks and information assets. Students will explore in-depth technical foundations which underpin cybersecurity threats and corresponding defenses. Through hands-on training students will gain necessary skills to begin supporting and implementing cyberspace security. This course will cover the following topics: Security and Risk Management (security governance principles, compliance, legal and regulatory issues, professional ethic, and security policies), Asset Security (information and asset classification and ownership, data security controls and handling requirements), Security Engineering (secure Engineering processes, security models, security evaluation model, security architectures and designs, cryptography, and physical security), and Communications and Network Security (secure network architecture design, secure network components, secure communication channels, and network attacks)

This course is an integrated course emphasizing the design, analysis, and implementation of software information assurance system solutions by analyzing the current information infrastructures, software design, and applying software development, programming, testing, and engineering concepts.

Electives (16 credits)

May include additional work in distributed systems or computer security or may be taken from other advanced topics such as:

ICS 650 Simulation Modeling and Queuing Theory

4 credits

This course is the study of fundamentals of computer simulation modeling and queuing theory at graduate level. Computer simulation can be an extremely powerful tool, yet few in industry seem well trained in the design, implementation, and interpretation of a useful simulation experiment. The instructional materials in this course are designed to familiarize the students with the use of computer simulation and queuing theory. Students will be taught to focus simulation studies on tractable and intractable questions, to draw conclusions from simulations results, and to bring these conclusions into appropriate domain context. This is a hands-on course. Students are taught simulation theory through the practice of developing models and of writing software. Examples of application areas include: Computer Networks, Bioinformatics, Public Health Issues, Trends in Education, Trends in Industry and many, many more. Topics include: Introduction to Simulation; Introduction to the Arena software package; Simulation Examples; Statistical Models in Simulation; Queuing theory and Models; Analysis of Simulation Data; Verification and validation of Simulation Models.

This course is the study of fundamentals of design and implementation of real-time operating systems. Most embedded computer systems have dedicated microprocessors as their computational and controlling elements and run real-time operating systems. This course covers concepts, programming languages, tools, hardware, and methodologies used in the construction of real-time operating systems and their peripheral components. Topics include: applications of real-time operating systems; communications between PC computers and embedded systems; fundamental concepts of scheduling (multitasking and interruptions); introduction of basic hardware components used in most real-time operating systems; Hardware description language[VHDL]; and the writing of a real-time operating system [RTOS] using industrial standard C language, debugging, and loading the code to the target hardware.

This course presents Software Engineering topics of interest to students in the graduate Computer Science program. Topics vary with each offering of this course, but will be related to Software Engineering concepts such as verification, validation, secure systems, quality control, or formal methods. Check the class schedule for details about topics and course prerequisites.

Object-oriented design using design patterns. Topics include: Study of creational, structural, and behavioral patterns; Applications of these patterns in the design and implementation of object-oriented systems; complete analysis, design, implementation, and refactoring of online and batch systems.

This course is an in-depth study of some aspect of computer science that is not part of a regular course. Special topics courses of current interest will be offered on an occasional basis. Students may repeat ICS 690 for additional credit with advisor approval. Some topics may have prerequisites.

Research Seminar and Project or Thesis (6 credits)

Additional course requirement: ICS 660I

Please verify that your Course List is separated by ',' (comma) or 'OR'

ICS 698 Research Seminar

2 credits

In this course, the student will perform the following activities: search the literature on specific areas, read papers in a selected area, study the methodologies used in the applied computer research, write and submit a survey paper based on the reading, and make an oral presentation of the results. It should be taken no later than the second semester.