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. The Computer Science Subject Exam that is an optional part of the Graduate Record Examination is not required.
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.
CSCI-6050 Computability and Complexity. Students should take this course as early as possible in their degree program. A student who has had an equivalent course prior to entering the graduate program may take CSCI-6480 Theory of Compiler Design instead. If Theory of Compiler Design is used to replace CSCI-6050, it may not also count toward the theory requirement.
CSCI-6140 Computer Operating Systems. Students should take this course as early as possible in their degree program. Students who have not had an operating systems course prior to joining the program may replace CSCI-6140 with CSCI-4210 with the permission of their advisor.
CSCI-6990 Master's Research. The Master's Thesis is six credits, supervised by a faculty advisor, graded on a satisfactory/unsatisfactory basis, and submitted to the Office of Graduate Education. 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.
Additional courses. Students must take at least one additional course in systems and at least one additional course in theory. 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. This requirement 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. 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 chair of the Graduate Curriculum Committee.
CSCI-4220 Network Programming
Special topics courses (course number subject to change each semester)
CSCI-4961 Network Flows (may be Systems or Theory, depending on project. See instructor for details.)
B. Theory of Computation
CSCI-4020 Computer Algorithms
Special topics courses (course number subject to change each semester)
CSCI-4961 Network Flows (may be Systems or Theory,
depending on project. See instructor for details.)
Double Counting Courses. A course may only be used to fulfill one requirement. Thus, students may only use CSCI-6140 for the systems requirement if they used CSCI-4210 for the operating systems requirement, and any course that is classified as both systems and theory may only be counted for one of the two.
PhD Oral Qualifying Exams. Students who have passed the PhD oral qualifying exam for CSCI-6050 Computability and Complexity or CSCI-6140 Computer Operating Systems may have that course waived for the MS program. Students who have passed the PhD oral qualifying exam for CSCI-4430 Programming Languages may waive the additional systems courses, and those who have passed the CSCI-4020 Computer Algorithms oral exam may waive the additional theory course. 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 with the approval of the student's academic advisor to constitute an overall coherent plan of study and to bring the total number of credits in the degree program up to 30 (subject to the constraints below). The selection of courses should reflect the student's goals and interests in obtaining a MS degree in Computer Science.
These courses must be at the 4000 or 6000 level. Not all of the courses need to be courses offered by the Computer Science Department. Independent study courses (e.g., CSCI-4940 and CSCI-6940, Readings in Computer Science) can be used as elective courses. Several recommended elective courses in computer science and related fields are listed below.
Course Credit Constraints: No more than 12 credits of the 30 required for the degree may be at the undergraduate (4000) level. At least half of the 30 credits required for the MS degree must come from courses offered by the Computer Science Department (i.e., courses numbered CSCI-xxxx).
Computer Science Colloquia. Full-time students must attend at least 8 colloquia 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. (This requirement is not applicable to students registered in absentia.)
RECOMMENDED ELECTIVE COURSES
A good foundation in mathematics is important for the computer scientist. The following courses are especially recommended for consideration. Courses chosen should complement the computer science interests of the student.
MATH-4010 Abstract Algebra
Other courses especially suited for the Master of Science student are CSCI-xxxx courses at the 4000-6000 level.
Each student must submit a Plan of Study for his or her degree program during the first 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.
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.