* Faculty       * Staff       * Students & Alumni       * Committees       * Contact       * Institute Directory
* Undergraduate Program       * Graduate Program       * Courses       * Institute Catalog      
* Undergraduate       * Graduate       * Institute Admissions: Undergraduate | Graduate      
* Colloquia       * Seminars       * News       * Events       * Institute Events      
* Overview       * Lab Manual       * Institute Computing      
No Menu Selected

* Academics

Graduate Program

M.S. Requirements


The Master of Science degree in Computer Science at Rensselaer is a technical degree from which students may advance to positions of responsibility in the computing field with a solid foundation of knowledge to serve them. A number of students will continue into PhD study similarly well prepared.

The program requirements, detailed below, provide a broad program at a high level, yet permit a modest degree of specialization. A significant requirement of the program is the six-credit Master's Thesis based on original research. The Master's Thesis should demonstrate a student's skill in problem-solving and application of software engineering principles such as algorithm and data-structure design, programming language and software systems usage, program testing and debugging, and software documentation.


Students with significant prior computer science experience are encouraged to apply for admission to the program. To be considered, an applicant must have a bachelor's degree in a technical field, preferably related to Computer Science. Applicants must know how to program in at least three higher-level languages, and must have a thorough working knowledge of computer organization and data structures. The applicant also must have substantial mathematics background at the college level, including a year of calculus and knowledge of linear algebra and discrete mathematics.

Application materials are available from the Rensselaer Admissions Office. A complete application file consists of the application itself, plus official scores for the Graduate Record Examination General Test (waived for Rensselaer undergraduate CS majors), transcripts from all prior undergraduate and graduate work, a statement of background and goals, and letters of recommendation. International applicants are also required to include official scores for the Test Of English as a Foreign Language (TOEFL) examination.

Applicants should clearly indicate, both in their personal statements and on the application form where requested, their main area or areas of interest in computer science research, relating them if possible to the faculty research interests as listed in the document Research Groups at Rensselaer Computer Science Department. An important factor in evaluation and selection of applicants is potential for conducting original research, so students who have already participated in a significant research project should emphasize their experience and achievements in the project. In most cases admission and financial aid awards will be by research groups rather than by the department as a whole, so that students become associated with a research group and begin research immediately upon entering the program.

The application deadline for the Fall semester is the preceding January 1, and for the Spring semester is the preceding August 15.


In addition to meeting the degree requirements of the Office of Graduate Education, a candidate must:

  • Complete a Plan of Study form by the second semester of study. This plan is drawn up with the advice and approval of the student's academic advisor and is to be a coherent, thoughtful plan reflecting the student's professional goals. If necessary, changes can be made to this plan at any time with the approval of the academic advisor.
  • Complete 30 credits beyond the bachelors, at least 18 of which must be at the 6000 level.
  • Complete at least two theory courses, one of which must be CSCI-6210 Design and Analysis of Algorithms.
  • Complete at least two systems courses, chosen from the list below. In general, one of the systems courses must be CSCI-6140 Computer Operating Systems. However, students who have taken CSCI-4210 Operating Systems while enrolled in our undergraduate program should not take CSCI-6140, but should take two systems courses beyond what was studied at the undergraduate level. Students who took a course equivalent to CSCI-6140 at another school may request a waiver of the CSCI-6140 requirement by submitting syllabus of the course they took.
  • Full-time students must attend at least 50% of colloquia offered for each semester they are enrolled (up to a maximum of four semesters). More details are available at http://www.cs.rpi.edu/academics/grad/colloquium.html.
  • Complete a Master's Thesis or Project. Details about the project are at http://www.cs.rpi.edu/academics/grad/msproject.html. The thesis requires at least six, and no more than nine credits of CSCI-6990 Master's Research. The thesis is supervised by a committee of three faculty members, graded on a satisfactory/unsatisfactory basis, and submitted to the Office of Graduate Education. The committee membership must be approved by the Office of Graduate Education prior to submision of the thesis. The student may work with a research supervisor who is not a CS faculty member, but the work must be overseen by an advisor who is a member of the Computer Science Department faculty. The thesis should present an original research contribution, which is also the subject of a paper submitted for publication with the advisor as co-author. For details, see the document Guidelines for Computer Science Master's Theses. Most students should be involved in research each semester, taking at least one CSCI-6990 Master's Research credit under supervision of their faculty advisor.
  • In conjunction with the completion of the thesis or project, students must complete an oral presentation. For students completing a thesis, details can be found on page two of the Record of Master's Thesis and Oral Presentation. Students completing a project must present at a Computer Science Department poster session.

Systems and theory courses Courses that count toward the systems and theory requirements are listed below. If a course is listed in both groups, the student may use it to fulfill the requirement for either one of the groups, but not both. These requirements may not be fulfilled with readings courses (i.e., courses with number XXXX-4940 and XXXX-6940).

Students should advance their knowledge in each area beyond what it was when they entered the degree program. Therefore, the fact that a student has previously taken systems or theory courses is usually not grounds to waive these requirements. However, a student entering the program with an exceptionally strong preparation in one of these areas may request a waiver of the requirement in that area from the Graduate Curriculum Committee.

A. Systems

Catalog courses

CSCI-4220 Network Programming
CSCI-4230, 6230 Cryptography and Network Security I
CSCI-4240, 6240 Cryptography and Network Security II
CSCI-4250, 6250 Frontiers of Network Science
CSCI-4320 Parallel Programming
CSCI-4430 Programming Languages
CSCI-4440 Software Design and Documentation
CSCI-4500 Distributed Computing over Internet
CSCI-4650 Networking Laboratory I
CSCI-4660 Networking Laboratory II
CSCI-6140 Computer Operating Systems
CSCI-6360 Parallel Computing
CSCI-6430 Programming Languages
CSCI-6500 Distributed Computing over Internet
ECSE-4670 Computer Communication Networks
ECSE-4760 Computer Applications Laboratory
ECSE-4770 Computer Hardware Design
ECSE-4780 Advanced Computer Hardware Design
ECSE-4790 Microprocessor Systems
ECSE-6600 Internet Protocols
ECSE-6730 Fault-Tolerant Digital Systems

Special topics courses (course number subject to change each semester)

CSCI-496x, 696x Digital Manufacturing
CSCI-49xx Modern Binary Exploitation

B. Theory of Computation

Catalog courses

CSCI-4020 Computer Algorithms
CSCI-4100, 6100 Machine Learning from Data
CSCI-4230, 6230 Cryptography and Network Security I
CSCI-4240, 6240 Cryptography and Network Security II
CSCI-4250, 6250 Frontiers of Network Science
CSCI-4260 Graph Theory
CSCI-6120 Computational Finance
CSCI-6210 Design and Analysis of Algorithms
CSCI-6220 Randomized Algorithms
CSCI-6390 Database Mining
ECSE-4530 Digital Signal Processing
ECSE-6530 Information Theory and Coding
ECSE-6750 Finite State Machine Theory

Special topics courses (course number subject to change each semester)

CSCI-496x/696x Distributed Systems (Fall 2015)
CSCI-496x/696x Distributed Systems and Algorithms (Fall 2016)
CSCI-4969/6966 Security Topics (Fall 2016)

PhD Oral Qualifying Exams. The PhD core qualifying exam is primarily course-based, but occasionally a student arranges to take an oral exam. A student who passes an oral exam in a systems or theory course may count that toward fulfilling the systems or theory requirement for the MS. Students still have to take 30 credits for the MS, so when a course is waived due to an oral qualifying exam pass, the student must substitute another course.

Elective Courses. The student must select additional courses to bring the total number of credits in the degree program up to 30. Course credits must be chosen with the advice and approval of the Computer Science advisor and must constitute a coherent plan of study reflecting the student's goals in obtaining a degree in Computer Science. At least half of the 30 credits required for the MS degree must be offered by the Computer Science Department (i.e., courses numbered CSCI-xxxx). These courses must be at the 4000 or 6000 level. No more than 12 credits of the 30 required for the degree may be at the undergraduate (4000) level.

Any 4000 or 6000 level Computer Science course can be a free elective, including independent study courses. In addition, there are many suitable courses offered by other departments. Some courses offered by other departments which may be of interest include:

BIOL-4540/6410 Sequence Analysis
CIVL-6660/MANE-6660 Fundamentals of Finite Elements
CIVL-6680/MANE-6680 Finite Element Programming
MATP-6610 Computational Optimization
MGMT-4960 Networks, Innovation, and Value Creation
MGMT-6650 Technology and Competitive Advantage
MGMT-6660 Strategy, Technology, and Entrepreneurship
STSH-4580 Self-organization in Science and Society


In special circumstances it may be possible to have one or more of the degree requirements waived. To request a waiver, students should submit a request to the Graduate Curriculum Committee Chair, who will make the decision in consultation with faculty who teach in the appropriate area.

* Return to main Graduate Program page