Master of Science with a Major in Computer Science


Program Director: Mitch Thornton, Ph.D.

Admission Requirements

In addition to meeting the Lyle School of Engineering admission requirements for an M.S. degree, applicants are required to satisfy the following:

  • Bachelor's degree in computer science, computer engineering, or closely related discipline. Applicants with undergraduate degrees in disciplines other than Computer Science may be admitted to the program and may be required to take articulation coursework and/or satisfy the competency requirement (see below).
  • A minimum GPA of 3.000 on a 4.000 point basis in the student's junior and senior years. 
  • A reasonable level of mathematical maturity.

Degree Requirements

In addition to meeting the Lyle School of Engineering degree requirements for an M.S. degree, candidates are required to satisfy the following:

1.    Either 24 credit hours of coursework and a master’s thesis or 30 credit hours of coursework.
2.    Twelve credit hours of core courses. Students on campus are required to register for a seminar course (for zero credit hours) for at least one term and secure a grade of Pass.
3.    Six credit hours of concentration. Thesis students take six credit hours of thesis, instead of concentration.
4.    Twelve credit hours of electives. All students are allowed to take at most three credit hours of independent study, which will be counted as one elective course.

The CS Department requires that the courses taken constitute a coherent program leading to mastery of computer science. These requirements are discussed in the subsequent subsections. Any deviation from the stated requirements must be approved in writing from the student’s adviser and department chair.

Students entering the program without an undergraduate degree in Computer Science must satisfy the following competency requirements in addition to the degree requirements listed above:

A.  The ability to write programs in a high level language such as Java, C++, Python, etc.
B.  Demonstrate competence in six core areas of computer science

Students may fulfill (A) by either:

i.   Demonstrating their programming ability in a departmental examination,
ii.  Successful completion of CSE 1341, Principles of Computer Science, or
iii. Obtaining a certificate of achievement from EDX (or comparable entity) in one of the high‐level programming languages (e.g. Java, C++, Python)

Students may fulfill (B) by demonstrating competence in the following core areas of Computer Science:

1)  Computer Architecture
2)  Programming Languages
3)  Data Structures and Algorithms
4)  Database Management Systems
5)  Operating Systems and Concurrency
6)  Networks and Distributed Systems

Competence in core areas may be demonstrated by one of the following:

i.   Completing a course from an ABET accredited program that covers a core area.
ii.  Obtaining 70% or better on a departmental examination that covers a core area.Exams will be based on a set of specified
     readings published by the Computer Science Department and should be taken prior to beginning the first semester.
iii. Completing and passing one or more of the following core-area courses:

CS 7101 Foundations of Computer Architecture
CS 7102 Foundations of Programming Languages
CS 7103 Foundations of Data Structures and Algorithms
CS 7104 Foundations of Database Management Systems
CS 7105 Foundations of Operating Systems and Concurrency
CS 7106 Foundations of Networks and Distributed Systems

These courses are 1 credit hour each and are offered pass-fail and do not count toward the 30 hour degree requirement. The grade for the course will be based on several assignments and a final examination.

Residency and Level Requirements

  • A minimum of 30 graduate credit hours must be earned towards an M.S. degree, of which at least 24 must be earned in residency at SMU. Up to six credit hours may be transferred with departmental approval.
  • Of the 30 credit hours needed for graduation, at least nine credit hours must be above the 8000 level, with the remainder above the 7000 level. For the 8000 level, at least six credit hours must be CS courses.

Distribution of Courses

Courses are considered to be core, concentration, or elective. Core courses cover material considered fundamental to graduate-level computer science and are required of all students. Each student is expected to specialize in some area of computer science. The concentration area is a mechanism by which a student can tailor a coherent program of study to his/her interests. Electives are courses taken to round out the 30 credit hour requirement. Transferred credits may be used to satisfy any of these requirements. The specific requirements are discussed in detail in the following subsections.

Course Requirements

A student who elects to take the non-thesis option must take 12 credit hours of core courses, six hours of concentration, and 12 credit hours of electives. The electives may be selected from available graduate-level course offerings in the Lyle School of Engineering, subject to the residency and level requirements and adviser approval. Those who elect to take thesis option will substitute the concentration with thesis credit hours.

Core Courses (12 credit hours)

CS 7330 File Organization and Database Management
CS 7343 Operating Systems and Systems Software
CS 7350 Algorithm Engineering
CS 7381 Computer Architecture
CS 8098 Computer Science Seminar

Concentration (6 credit hours in one of the following programs)

Two of the following:
CS 7380 VLSI Algorithms
CS 8350 Algorithms II
CS 8351 Computer Arithmetic
CS 8355 Graph Theory: Algorithms and Applications

Two of the following:
CS 7380 VLSI Algorithms
CS 8377 Fault-Tolerant Computing
CS 8380 Parallel and Distributed Processing
CS 8383 Advanced Computer Architecture
CS 8387 Switching Theory and Applications in VLSI CAD

Two of the following:
CS 7314 Software Testing and Quality Assurance
CS 7319 Software Architecture and Design
CS 7345 Advanced Application Programming
CS 8313 Object-Oriented Analysis and Design Methodology
CS 8316 User Interface Design

Data Science:
Two of the following:
CS 7323 Mobile Applications for Sensing and Learning
CS 7331 Introduction to Data Mining and Related Topics
CS 7337 Information Retrieval and Web Search
CS 7338 Security Economics
CS 7347 XML and the Enterprise
CS 8331 Advanced Data Mining
CS 8337 Information Storage and Retrieval

Two of the following:
CS 7338 Security Economics
CS 7339 Computer System Security
CS 7349 Data and Network Security
CS 7359 Software Security
CS 7369 Hardware Security and Trojan Detection
CS 8349 Advanced Network Security
CS 8352 (EE 8372) Cryptography and Data Security
CS 8359 Advanced Software Security

Electives (12 credit hours)

Electives may be selected from available graduate-level course offerings in the Lyle School of Engineering, subject to the residency and level requirements and adviser approval.

Thesis Option

A student may elect to write a master’s thesis, which counts as the six credit hours of concentration. The student must register for at least six credit hours under CS 7(1–6)96. If the thesis option is chosen, all other requirements are the same. The six credit hours of thesis satisfy six of the nine required credit hours for advanced (CS 8000 level) courses.

A master’s thesis represents one or more of the following: synthesis of divergent ideas or a scholarly critique of current literature, a creative research activity or a significant design project, the results of which must be documented in a well-written thesis. The thesis should be of publishable quality, and it is recommended that it be submitted to an appropriate conference or journal before the thesis defense.

A thesis must be supervised by a faculty adviser selected by the student. Any full-time faculty member supporting the student’s concentration area may serve as the thesis adviser. It is the student’s responsibility either to find an adviser willing to provide a thesis topic or willing to supervise a topic of the student’s choosing.

Once the student has found an adviser and a topic has been selected, the student and adviser should jointly form a thesis supervisory committee. This committee must consist of at least three members, two of whom must represent the concentration area. The adviser chairs this committee. The makeup of this committee must be approved by the chair of CS and the director of the graduate division.

The student must provide the members of the committee with a written thesis proposal. Typically, this will be done before the faculty agrees to serve on the committee.

A thesis is judged by the supervisory committee based upon technical merit, originality, and presentation. The thesis must be presented orally to the committee at a thesis defense. A copy of the thesis must be made available to each member of the committee at least two weeks before the planned defense. The defense must be scheduled with the CS department office and posted in appropriate bulletin boards. The defense is open to the public.

Degree Plan

Course Descriptions

Graduate Catalog

Graduate Catalog Archives

M.S. | Computer Science Flyer (.pdf)

M.S. | Computer Science + MBA