Explore UAB

M.S. in Computer Science (MSCS) Requirements

General Requirements

All MSCS students must take 30 credit hours in order to graduate. At least 21 credit hours must be taken at the 600 level; thus a maximum of 9 credit hours can be taken at the 500 level. Students will take at least four courses from a list of 600-level breadth requirements. A well-prepared student taking a full load (9 credit hours per Spring/Fall semester and 3-6 credit hours in the Summer semester) can complete this program in 1.5 years. The program is defined in terms of either of two plans:

  • Plan I: 24 credit hours of CS courses and six (6) credit hours of thesis research (CS 699: Master's Thesis Research).
  • Plan II: 30 credit hours of CS courses (courses only; does not require a thesis).

Most students choose the Plan II option. Plan I requires a significant research component and requires that the student work closely with a faculty member on a research project. This project should be begun early in the program.

Course descriptions are available in the UAB Graduate Catalog. Please note that CS 510: Database Application Development cannot be taken for M.S. credit if CS 610: Database Systems has already been taken. Similarly, CS 520: Software Engineering cannot be taken after CS 620: Software Design and Integration; CS 550: Automata and Formal Language Theory cannot be taken after CS 650: Theory of Computation, however, if CS 510/520/550 is taken before 610/620/650, the credit hours earned on both 5XX and 6XX courses will count toward M.S. At most three credit hours of special courses (CS 697: Directed Readings or CS 598: Practical Work Experience) can count towards the MS degree. There is no foreign language requirement.

Required Courses

The students are required to take at least four courses from the following list and pick at least one course from each of the three areas. PLEASE NOTE: required courses may change; please consult the graduate program director at This email address is being protected from spambots. You need JavaScript enabled to view it. for specific requirements.


  • CS 652: Advanced Algorithms and Applications
  • CS 645: Modern Cryptography
  • CS 680: Matrix Algorithms for Data Science
  • CS 685: Foundation of Data Sciences


  • CS 532: Systems Programming
  • CS 602: Compiler Design
  • CS 610: Database Systems
  • CS 629: GPU Programming
  • CS 630: Computer Architecture
  • CS 632: Parallel Computing


  • CS 623: Network Security
  • CS 635: Network Programming or CS 616/716: Big Data Programming
  • CS 660: Artificial Intelligence
  • CS 667: Machine Learning
  • CS 670: Computer Graphics or CS 673/773: Computer Vision & Conv Neu Net
  • CS 675: Data Visualization
  • CS 662: Natural Language Processing
  • CS 633: Cloud Computing
  • CS 646: Blockchain and Cryptocurrency
  • CS 663: Data Mining
  • CS 665: Deep Learning

Plan I (Thesis Option) Guidance

If you are interested in the Plan I (thesis option) M.S., following is a summary of steps toward competing the degree:

  1. Select a faculty advisor.
  2. Maintain good standing.
  3. Appointment of graduate study committee — complete and submit the Graduate Study Committee Letter (available on the Graduate School's Online Forms page).
  4. Obtain IRB and/or IACUC approvals (if applicable).
  5. Complete the required RCR (Responsible Conduct of Research) training.
  6. Admission to candidacy — complete and submit the Master’s Degree Admission to candidacy” form at least one semester before graduation is expected (available on the Graduate School's Online Forms page).
  7. Apply for degree — see UAB Graduate School deadline dates.
  8. Work on preliminary version of thesis.
  9. Request Thesis or Dissertation Approval Forms (available on the Graduate School's Online Forms page).
  10. Undergo final examination, including defense of thesis.
  11. Submit a PDF of the defended, committee-approved thesis to UAB/ProQuest submission website no later than two weeks (10 business days) following the public defense.
  12. Degree is conferred.