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.
In addition to meeting the degree requirements of the Office of Graduate Education, a candidate must plan a degree program and complete the Plan of Study form in consultation with a faculty advisor. A degree program must include 30 credits, at least 18 of which must be at the 6000 level. It requires at least two theory courses and at least two systems courses. At least one of the theory courses must be chosen from CSCI 6050 Computability and Complexity, CSCI 6210 Design and Analysis of Algorithms, and CSCI 6220 Randomized Algorithms. At least one of the systems courses must be CSCI 6140 Computer Operating Systems. 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. Finally, it must include a master's thesis and regular attendance at department colloquia.
CSCI-6990 Master's Research. The Master's Thesis must be at least six credits. It is supervised by a committee of three faculty members, 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.
Course requirements: 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.
CSCI-4220 Network Programming
Special topics courses (course number subject to change each semester)
CSCI-496x 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-496x Network Flows (may be Systems or Theory,
depending on project. See instructor for details.)
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 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 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. (This requirement is not applicable to students registered in absentia.)
Oral presentation MS students must complete an oral presentation. There are three kinds of oral presentations which can be counted toward this requirement:
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.