B.S. in Computer Science

There are more computing jobs than qualified people to fill them.

Earning a Rensselaer undergraduate degree in computer science prepares students to solve real-world problems and carry out fundamental research. Our students have distinguished themselves by founding companies while still in school, landing high-income jobs at a broad range of companies, and going on to prominent graduate schools. Given our strengths and successes, in 2016, the incoming freshman class was the largest ever in our 32-year history, with 254 new students, also the largest incoming freshman class for any major in the 192-year history of Rensselaer. This trend continues into 2017. As the second-largest major and the most popular dual major, our flexible degree requirements allow students to focus on specific topics within computer science and also provide unique opportunities for open source software development and involvement in faculty-sponsored undergraduate research.

 

Curriculum

Computer science is the study of the design, analysis, communication, implementation, and application of computational processes. At Rensselaer, an education in computer science prepares students to solve applied real-world problems and conduct research in computer science. The program provides students with a solid grounding in both theory and practice.

Program Outcome

Students who successfully complete this program will be able to demonstrate:

  • An ability to develop a computational formulation of a problem, one or more data structures and algorithms to solve the problem, a program to implement a solution, and strategies for testing and verifying that the program is correct.
  • Knowledge of the mathematical and theoretical underpinnings of computer science.
  • An ability to adapt a solution to different computing platforms, paradigms, and/or programming languages.
  • An advanced depth of knowledge in one or more of the following areas: computer systems, computer theory, applications, software engineering, data analysis, and large-scale software architecture

Major Requirements

Computer science majors are required to complete 128 credits, including required courses in science, mathematics, and the humanities, arts, and social sciences. The computer science core includes a sequence of named courses, as well as a capstone requirement that can be fulfilled by either a substantial research project or software development effort OR a sequence of courses taken in a specific concentration area.

Our curriculum provides a substantial amount of flexibility, with 28-32 free elective credits that students can use to pursue dual degrees and/or minors in other subject areas. Further, we strongly believe in learning by doing. Many of our students actively participate in research, develop software projects in the Rensselaer Center for Open Source (RCOS), and matriculate in the co-terminal program, thereby obtaining a Bachelors and Masters in Computer Science within five years.

Our curriculum templates are available at the following URLs.

Regarding the coursework-based capstone, click here for the latest lists of concentration area courses.

Also click here to go to the official Rensselaer catalog.

Minor Requirements

A computer science minor requires CSCI 2300 Introduction to Algorithms, plus three additional four-credit courses at the 2000 level or above, excluding CSCI 2200 Foundations of Computer Science. At least two of these three additional courses must have a CSCI prefix, and at least two must be at the 4000 or 6000 level. One course may be chosen from ECSE x6xx or ECSE x7xx family, excluding ECSE 4630, ECSE 4640, and ECSE 4720. Reading and independent study courses and courses required by name for the student's major cannot be used for the minor. The Pass/No Credit (P/NC) option cannot be used for these courses.

To add a minor in computer science, first complete the Undergraduate Minor Approval Form. Next, contact David Goldschmidt to obtain an authorizing signature. Next, contact your academic advisor for his or her authorizing signature. Finally, submit the form to the Registrar's Office in Academy Hall.

Dual Majors, Switching Majors, and Transfer Credits

Given the structure of our degree requirements (i.e., 28-32 free elective credits), it is quite possible for students to obtain a dual major within four years. Many of our students take advantage of this opportunity, causing our major to contain the largest number of dual majors across Rensselaer. Also within this section are instructions as to how to bring in transfer credit from other institutions.

 

Information for Dual Majors and for Switching to CSCI

A dual major requires students to meet the specific course and credit requirements of two separate degrees. For all dual majors, please be sure to verify your curriculum requirements with both of your majors; i.e., do not solely rely on dual templates. The computer science curriculum templates are available above. The 28-32 free elective credits within the Computer Science program enables students to complete dual majors with most departments with 128 credits; for various dual majors with Engineering, the total number of required credits increases to as much as 136. Students do not have to declare dual majors immediately and can add them even after their first year at Rensselaer.

Computer Science students interested in adding a second major in another department should contact the other department for information about the course requirements for the new major.

Note that for the in-major communication intensive (CI) course, students can choose to take this CI course either in CSCI or the other major. Students are still required to take a CI course in HASS.  In total, two CI courses must be taken.

Students From Other Majors (i.e., for both duals and to switch to CSCI)

We recommend students from other majors interested in Computer Science take CSCI 1100 Computer Science I and CSCI 1200 Data Structures in their freshman year.  You will not be admitted into the computer science major until you have demonstrated your ability to succeed in these computer science courses. More specifically, you must earn a B or higher in CSCI 1200 Data Structures. If you do not meet this criterion, you must take CSCI 2200 Foundations of Computer Science and have a GPA in all named required CSCI courses of 3.0 or higher. Contact David Goldschmidt for admittance and/or more details.

Popular Dual Majors

  • Mathematics (MATH)
  • Biology (BIOL)
  • Computer Systems Engineering (CSYS)
  • Electronic Media Arts and Communication (EMAC)
  • Cognitive Science (COGS)
  • Physics (PHYS)
  • Philosophy (PHIL)
  • Games and Simulation Arts and Sciences (GSAS)
  • Business and Management (BMGT)
  • Information Technology and Web Science (ITWS)

Transfer Credits

Courses that have already been approved for transfer credit are listed in the Undergraduate Transfer Course Guide. To request transfer credit for courses not in this guide, please refer to the Academic Credit section of the Rensselaer Catalog. Further, you will need the appropriate transfer credit form available from the Registrar Forms list. If the form requires departmental approval, you will need to obtain a signature from the department corresponding to the course you are trying to transfer in. For the Computer Science Department, please contact David Goldschmidt. Also note that the Study Abroad Office can help here for study abroad credits.

Academic Opportunities

The open source center allows students to work in teams to develop open-source platforms and applications that solve societal problems.

Student researchers play a critical role in the world-changing discovery, innovation, and breakthroughs taking place across campus.

Integrate your classroom studies with paid, productive, real-life work experience.

RPISEC, a student run organization, participates in a number of computer security competitions throughout the school year, typically placing among the top undergraduate US teams.

Celebrates, informs and supports women in computing

The only International Honors Society for the computing and information disciplines.

HackRPI is responsible for the planning, organization and running of the annual RPI hackathon. In past years, more than 500 hackers from the region participated in the hackathon and participated in competitions in many different software categories.