Menu Close

Current M.S. Students

Obtaining an M.S. Degree typically involves the following basic steps:

  1. Meet with Graduate Chair to plan program
  2. ICS 690 in the first semester it is offered to you
  3. Coursework to make up any undergraduate deficiencies in computer science
  4. Six ICS “regular” graduate courses (i.e., ICS 600-692, not including ICS 690), including one course in each one of four broad areas.
  5. Two additional 600-level ICS courses (i.e., ICS 600-692, not including ICS 690), or 600-level courses in other departments but related to ICS. Up to two of these courses may be regular ICS 400-level courses (not ICS 499)
  6. A final ICS “capstone” project (6 credits minimum)

These steps are not strictly sequential. For example, you do not have to completely finish making up all of your undergraduate deficiencies before enrolling in any of the six “regular” graduate courses. However, these steps to give a sense for the basic “flow” through the program and the major milestones that must be reached in order to graduate. The Graduate Chair can help you design a specific sequence of courses that fulfill both the University requirements and your own preferences.

The steps are outlined below, and students may use this convenient checklist to track their progress progress toward graduation.

1. Meet with the Graduate Chair

At the beginning of your first semester, you should meet with the Graduate Chair in order to plan out your program. The plan includes making up undergraduate deficiencies, determining potential course selections, and reviewing project and thesis ideas. You should meet with the Graduate Chair once every semester during your degree program.

2. ICS 690

All new students (MS or PhD) must enroll in and pass ICS 690 in the first semester in which it is offered. Since it is offered in the fall, you should enroll in your first semester if you start in the fall, or in your second semester if you started in the spring. This course is supervised by the Graduate Chair and is CR/NC.

ICS 690 is designed to help orient new students to the program and to learn about faculty research areas and interests. It is also required to graduate. If you fail to take it in your first (or second) semester, you will be taking it later when it is no longer as helpful to you.

3. Coursework to make up undergraduate deficiencies in computer science

Depending on previously obtained degrees and taking into account professional experience, the admission committee may recommend for a student to be admitted to the M.S. program with one or more “deficiencies”. Each deficiency corresponds to a course in our undergraduate Computer Science curriculum and is resolved by taking and passing that course. Once all deficiencies are resolved, then the student can begin taking graduate-level courses. Note the following rules concerning undergraduate deficiencies:

  • Undergraduate deficiencies are prerequisites to graduate study.
  • Only letter grades of A, B, and C can be used to make up undergraduate deficiencies. CR/NC option is not allowed
  • Courses in directed research/reading cannot be used to make up undergraduate deficiencies.
  • Undergraduate deficiency makeup courses carry no credit toward an M.S. degree, but are used when computing the GPA.

4. Six ICS “regular” graduate courses

You must take six “regular” graduate courses, i.e., courses with numbers between ICS 600 and ICS 692, with the exception of ICS 690.  ICS 423 may also be counted as a “regular” course for area 2 but does not count towards Graduate Division’s requirement of a minimum of 18 600+ level credits.

To ensure breadth, you must take at least one course from each of the areas below:

  • Area 1
    • ICS 611 Compiler Theory and Construction
    • ICS 612 Theory of Operating Systems
    • ICS 624 Advanced Data Management
    • ICS 632 High Performance Computing
    • ICS 651 Computer Networks
    • ICS 660 Computer Architecture
    • ICS 691B Topics in Computer Science
  • Area 2
    • ICS 423 Data Security and Cryptography (for Area 2 only, not 600 level: graduate students in this course take separate graduate-level exams)
    • ICS 621 Analysis of Algorithms
    • ICS 622 Network Science
    • ICS 623 Advanced Cryptography
    • ICS 635 Machine Learning
    • ICS 636 Information Theory in Machine Learning
    • ICS 637 Deep Learning with Neural Networks
    • ICS 641 Theory of Computation
    • ICS 643 Advanced Parallel Algorithms
    • ICS 671 Applied Regression Analysis
    • ICS 682 Numeric Computation
    • ICS 691C Topics in Computer Science
  • Area 3
    • ICS 606 Intelligent Autonomous Agents
    • ICS 616 Information Architecture
    • ICS 655 Foundations of Security and Trust III
    • ICS 661 Advanced Artificial Intelligence
    • ICS 663 Pattern Recognition
    • ICS 664 Human-Computer Interaction
    • ICS 667 Advanced HCI Design
    • ICS 674 Evolutionary Computation
    • ICS 683 Computer Vision
    • ICS 691D Topics in Computer Science
  • Area 4
    • ICS 613 Software Engineering
    • ICS 614 Medical Informatics
    • ICS 665 User Interfaces & Hypermedia
    • ICS 668 Social Informatics
    • ICS 669 Social Computing
    • ICS 675 Bioinformatics: Sequence Analysis
    • ICS 676 Bioinformatics: Microarrays
    • ICS 681 Computer Graphics
    • ICS 685 Virtual and Augmented Reality
    • ICS 686 Digital Video Information
    • ICS 691E Topics in Computer Science

ICS 691 courses: These are irregular “Special Topics” courses, some of which are classified into areas above and some of which are not. As of 2017, ICS691 is listed as one of ICS691B, ICS691C, ICS691D, ICS691E, and ICS691G.  The first four of these are each classified in each one of the four areas (B=1, C=2, D=3, E=4). ICS691G is not classified in the areas above and does not count toward an area. (Instead, it can count as one of the two additional 600-level courses described in the section below.)

ICS 691 before 2017: ICS 691 offered before 2017 was not classified and does not count towards an area with the following exception: If the 691 course became a regular course, and the instructor indicated that this new course is sufficiently similar to what was taught in the 691 course, then the 691 is retroactively classified in the same area as that of its corresponding regular course. See also next  item.

ICS 691 converted to a regular course: If an ICS 691 course is subsequently converted to a regular course, then students who earned credit for the ICS691 version of a course will not be allowed to register for the regular course, even though its number is not ICS691.

Substitution of non-ICS courses: We occasionally allow substitution of 600-level non-ICS courses (particularly from the College of Engineering) in this category depending on their suitability and our ability to offer ICS courses in a given area, but these must be approved by the graduate committee. In some cases the approval will be specific to a student’s program of study, and in others it will be offered to all students. Whether an area requirement is met will also be decided based on circumstances.

5. Two additional 600-level ICS courses or 600-level courses related to ICS

Two additional 600-level 3-credit courses must be taken either from the ICS department (i.e., ICS 600-692, not including ICS 690), or some related discipline (such as ECE, ITM, LIS, etc.) on a topic related to Computer Science. If you wish to use a non-ICS course, you must explain the relevance of the course to your degree or capstone project and obtain approval from the Graduate Program Chair.

If you do Plan A (see below), you may opt to replace one of these two courses by 3 credits of ICS 700 (possibly converted from ICS 699: see below).

Counting 400-level courses. Up to two ICS graduate courses may be replaced by regular ICS 400-level courses (not ICS 499) that are not counted towards the undergraduate degree. These courses (except for ICS 423) do not count towards the area requirement. You may not use non-ICS 400 level courses. The Graduate Division requires that you have at least 18 credits at level 600 or above.

6. The ICS “Capstone” Project

A 6 credit “capstone” project is also required for the degree. These credits are typically taken close to or during your final semester in the program. We recommend 3 credits in the semester before graduation and 3 credits in the semester of graduation to allow time for development of the project.

The specific capstone courses depend upon whether you are writing a thesis (Plan A) or developing a final project (Plan B). Under Plan A, your capstone courses consist of at least six credits of ICS 700. Under Plan B, your capstone courses consist of six credits of ICS 699 taken under the supervision of a faculty member for the purpose of developing a single final project. In either case, 6 credits must be applied to a single project, as the intent is that you do an intensive project beyond what could be done in a single course. These credits must be taken for a letter grade.

It is the student’s responsibility to recruit a suitable capstone advisor. Forming appropriate professional relationships is one of the skills to be acquired and demonstrated in this program. If you are having difficulties finding an advisor, contact the graduate program chair for assistance.

Plan A: Thesis

This plan is strongly encouraged for students planning to go on to the Ph.D., as it meets one of the portfolio requirements and gives you a preview of the dissertation process. Also, as a Plan A student you may opt to take an additional 3 credits of ICS 700 as a replacement for one of the “Two additional courses” described above. Plan A students need to fill several Graduate Division Forms throughout their progress through the degree.

Getting Started: You must be enrolled in ICS 700 in the semester of graduation, but many students enroll in ICS 699 in a previous semester in which they do preparatory work. These credits will be counted towards the capstone project. During this preparatory semester, do literature reviews and/or pilot studies as appropriate and work with your advisor to write a brief proposal for the capstone project. Use the proposal to recruit two other committee members. Then have the committee approved with “Masters’ Plan A Form 2” on the forms page. Only then may you enroll in ICS 700. See “699 vs. 700?” below for comments.

Thesis Committee: A Thesis requires 3 committee members, including your advisor. See the Graduate Division Committee Composition page about selecting members for your thesis.

Thesis Defense: Plan A requires successful completion of your thesis and its submission to the Graduate Division before graduation. This requires planning ahead: The defense of your thesis (a public event) must be done in the middle of the final semester in which you are enrolled for ICS 700 credits. The committee must be given your final document at least two weeks before. This essentially means that the project must be completed in the first third of the final semester. We strongly recommend that you speak with the graduate program chair about your plans.

Grad chair as ex-officio member: Graduate program chairs have the privilege of being ex-officio (nonvoting) members of all committees in their program. Students should include the ICS graduate program chair when scheduling MS Plan A, Phd Proposal, or PhD Dissertation Defenses, and when distributing the associated document.

LaTeX Template: ICS graduate students have been maintaining a LaTeX template for the thesis.

Plan B: Project

This plan requires a capstone project conducted under at least 6 credits of ICS 699. It also requires a final report and a poster presentation. The report must be approved by your supervising faculty member and the ICS graduate program chair in order to graduate. A Plan B capstone is not as impressive as a thesis, but is expedient for those who need to get their MS quickly.

Plan B Advisor: Normally capstone projects are advised by an ICS faculty member, who can also help you define a project topic. If you already have a desired project topic but can’t find an ICS faculty member to supervise it, contact the ICS graduate program chair to discuss. If you wish to have the project supervised by a non-ICS Manoa faculty member, provide the graduate program chair with the proposed topic, who will ask ICS faculty whether anyone will supervise it. If none are available, it is up to the graduate program chair’s discretion to approve the request, and will be contingent on the suitability of the topic and proposed supervisor for a computer science degree.

Report Approval: If you are planning to graduate in a given semester under Plan B, have your advisor read and approve your report, which should take the form of a quality technical report appropriate for your subfield (unless we have agreed on another format). Then have your advisor send her/his approval to the ICS graduate program chair via email, along with PDF of the report. The graduate chair has a deadline to tell Graduate Division who is graduating. To meet this deadline, your report and advisor’s approval should both be received by the graduate chair no later than the end of the last week of classes (the week before final exams). Ask if in doubt.

Poster Presentation: Plan B students are also required to present their project in a poster session organized by the department near the end of the semester.

699 vs. 700?

  • 700 is only for Plan A students (thesis).
  • Plan A students must be enrolled in ICS 700 the semester(s) that they defend and graduate with their thesis.
  • A Plan A student can only enroll into 700 after approval of Graduate Division Form II signed by the committee and Graduate Chair. Submit this form before the semester in which you want to enroll in ICS 700.
  • Before the proposal, a Plan A student should enroll in 699. These 699 credits can be “converted” to 700 credits once the thesis proposal stage is completed, by having the Graduate Chair submit a memo to Graduate Division.
  • Note that it is possible to convert 699 credits to 700 credits and vice-versa if you decide to change your plan.

Coursework Summary

The coursework required for the M.S. degree consists of 31 credits, typically arranged as follows:

6 “regular” ICS 600-level courses18 credits of courses labeled 600-692, not including 690. 12 of these credits must be for 1 course in each of 4 areas described above.
2 ICS or “related” 600-level courses6 credits of either additional 600-level ICS courses, or of graduate-level courses in a related discipline such as LIS, MIS or EE, or of 400-level ICS courses. Students doing a Plan A may opt to replace one of these two courses with 3 credits of ICS 700.
ICS 690Seminar in Computer Science
CapstoneSix credits of ICS 700 for Plan A or ICS 699 for Plan B, applied to the development of a single capstone project in either case.

Miscellaneous Additional Rules

The Graduate Division and the Department impose some other constraints on M.S. degree programs. The most important ones are as follows:

  • 18 out of the 31 credits required for an M.S. degree must be numbered 600 and above, excluding 699 and 700.
  • All courses applied to the degree must be taken for a letter grade, with the exception of courses that are only offered CR/NC (e.g., ICS 690).
  • At most 6 credits of ICS 699 can be counted toward an M.S. degree under Plan B, and at most 9 credits of ICS 699/700 under Plan A.
  • A minimum GPA of 3.0 is required. Only letter grades of C or above are counted toward an M.S. degree.
  • The minimum residence requirement is two semesters.
  • After you earn 12 credits or more toward a degree, you are admitted to candidacy and continuous registration is required thereafter. If you do not register in any course toward the degree, you will be dropped from the program unless you submit a petition for a leave of absence to the Graduate Division during the semester before your leave.
  • If you took 600-level credits while enrolled as a BS student in ICS, did not apply them to your undergraduate degree, and want to apply them to your MS degree, then it is a two step process: First fill out the undergraduate excess credits form (technically while in the BS program, but grad division will take them after). Then submit the Transfer / UHM PBU Credits form (via Grad Chair) to transfer in the credits. See Grad Division’s Credit Acceptance Policy page for details and possible updates.


If you have questions, contact the ICS Graduate Chair.