Photos of university / #RutgersU
The Bachelor of Science in Computer Science at Rutgers University offers students a comprehensive and rigorous education in the fundamentals and advanced topics of computing. The program is designed to prepare students for successful careers in software development, systems analysis, cybersecurity, data science, artificial intelligence, and many other rapidly evolving fields. The curriculum provides a solid foundation in programming languages, algorithms, computer architecture, and software engineering, along with specialized courses in areas such as machine learning, databases, networks, and human-computer interaction. Students are encouraged to develop strong problem-solving skills and a deep understanding of the theoretical principles that underpin modern computing technology.
Throughout their studies, students have access to state-of-the-art laboratories and resources, enabling hands-on experience with current tools and practices in the industry. The program emphasizes both theoretical knowledge and practical skills, ensuring graduates are well-prepared to meet the demands of the tech industry or continue their education at the graduate level. In addition to core courses, students can select electives aligned with their interests, including cybersecurity, data analytics, mobile app development, or cloud computing. Rutgers' Computer Science program also promotes research opportunities, internship placements, and collaborations with industry leaders, providing valuable networking and professional development opportunities.
The program is housed within the School of Engineering, renowned for its excellence in research and education. Faculty members are active researchers and industry professionals committed to student success, mentoring students through projects, competitions, and research initiatives. Graduates of the program often find employment in top technology firms, government agencies, and innovative startups, or they pursue advanced degrees to further specialize in areas such as artificial intelligence or software engineering. The Bachelor of Science in Computer Science at Rutgers University is dedicated to fostering innovation, critical thinking, and technical expertise, preparing students to become leaders in the dynamic and ever-changing landscape of technology.
Upon entering the M.S. program, each student will be assigned a faculty advisor, and, with the help of the advisor, will choose an overall study plan which should satisfy the various requirements as well as plan for going more deeply into some area of particular interest to the student. It is important that the student continue to consult with that advisor before registering each semester. (Students should not simply rely on the advice and opinions of other students. Although this input is important, the information is often inaccurate, might be outdated, and students should not rely solely upon it.) Students need not choose immediately between the Master's essay and the Master's thesis options, but should talk about the possibilities with their advisor. Students may change advisors as they become more familiar with the program and clearer about what area they wish to specialize in, and in particular if the Master's thesis option is chosen.
In order to ensure that the students have good preparation in several of the basic fields of computer science, the department has specified two categories of courses (Category A & Category B). Within each category, the courses are divided into “advisory” three levels:
- Basic level: These are courses designed to help MS students filling in any gaps in their computer science background
- Core level: These are courses that are most suitable to the MS-level of study.
- Advanced level: These are advanced courses, which typically require pre-requisites from the core-level courses. MS students are advised to take these courses only if they are in their area of interest and have finished all the pre-requisites.
This split is mainly advisory to help MS find appropriate courses.
Here is a list of all courses in each category (Classification of A and B is for M.Sc. degree only, not applicable to Ph.D. students) :
Category A
- Basic: 508, 512
- Core: 509,510,513, 529
- Advanced: 514,521,522,524, 527,538,540,556, relevant 67x courses
Category B
- Basic: 518, 537, 544
- Core: 505, 515,519,520,523, 530, 534,535, 532, 539, 552
- Advanced: 507, 516, 533, 536,541, 545, 546, 547, 553, relevant 67x courses
Note that this classification of courses is not set in concrete. The Graduate Committee may add and remove courses from this list, or change the placement of a course in this partition, as it deems necessary (for example, to respond to changes in course content or scheduling, or to incorporate new course offerings). Such changes will be posted in a timely fashion on both physical and electronic graduate student ``bulletin boards.''
Courses
01:198:324 | Numerical Methods* | ||
01:198:336 | Principles of Information and Data Management* | Fall, Spring, Summer | |
01:198:415 | Compilers* | Spring | |
01:198:424 | Modeling and Simulation of Continuous Systems* | ||
01:198:425 | Computer Methods in Statistics* | ||
01:198:428 | Introduction to Computer Graphics* | ||
01:198:431 | Software Engineering* | Fall | |
01:198:440 | Introduction to Artificial Intelligence* | Fall | |
01:198:442 | Topics in Computer Science* | ||
01:198:443 | Topics in Computer Science* | ||
01:198:444 | Topics in Computer Science* | ||
16:198:500 | Proseminar in Computer Science | Fall, Spring | |
16:198:503 | Computational Thinking | Fall | |
16:198:504 | Computational Modeling | Fall | |
16:198:505 | Computer Structures | B | Spring |
16:198:507 | Advanced Computer Architecture | B | Fall |
16:198:508 | Formal Language and Automata | Fall | |
16:198:509 | Foundations of Computer Science | A | Fall |
16:198:510 | Numerical Analysis | A | Fall, Spring |
16:198:512 | Introduction to Data Structures and Algorithms | Fall, Spring | |
16:198:513 | Design and Analysis of Data Structures and Algorithms | A | Fall, Spring |
16:198:514 | Design And Analysis Of Data Structures And Algorithms II | A | Spring |
16:198:515 | Programming Languages And Compilers I | B | Fall |
16:198:516 | Programming Languages And Compilers II | B | Spring |
16:198:518 | Operating Systems Design | Fall, Spring | |
16:198:519 | Operating System Theory | B | Fall |
16:198:520 | Introduction To Artificial Intelligence | B | Fall, Spring |
16:198:521 | Linear Programming | A | Fall |
16:198:522 | Network and Combinatorial Optimization Algorithms | A | Spring |
16:198:523 | Computer Graphics | B | Spring |
16:198:527 | Computer Methods For Partial Differential Equations | A | Spring |
16:198:529 | Computational Geometry | A | Fall |
16:198:530 | Principles of Aritificial Intelligence | B | Fall |
16:198:532 | Foundations Of Knowledge Representation | B | Spring |
16:198:533 | Natural Language Processing | B | Spring |
16:198:534 | Computer Vision | B | Spring |
16:198:535 | Pattern Recognition: Theory & Applications | B | Spring |
16:198:536 | Machine Learning | B | Spring |
16:198:538 | Complexity Of Computation | A | Spring |
16:198:539 | Database Systems Implementation | Fall | |
16:198:540 | Combinatorial Methods In Complexity Theory | A | Spring |
16:198:541 | Database Systems | B | Spring |
16:198:544 | Computer Security | Spring | |
16:198:545 | Distributed Systems | B | Spring |
16:198:546 | Computer System Security | Fall | |
16:198:547 | The Security and Dependability of Distributed Systems | B | Spring |
16:198:552 | Computer Networks | B | Fall |
16:198:553 | Design of Internet Services | B | Spring |
16:198:580 | Topics In Computers In Biomedicine | B | Fall |
16:198:583 | Topics In Software Design | B | Fall |
16:198:596 | Topics In The Foundations Of Computer Science | A | |
16:198:598 | Topics In Artificial Intelligence | B | |
16:198:601 | Selected Problems In Computer Science | ||
16:198:602 | Selected Problems In Computer Science | ||
16:198:603 | Selected Problems In Computer Science | ||
16:198:604 | Selected Problems In Computer Science | ||
16:198:605 | Selected Problems In Computer Science | ||
16:198:606 | Selected Problems In Computer Science | ||
16:198:607 | Problems In Numerical Methods | ||
16:198:608 | Problems In Numerical Methods | ||
16:198:671 | Seminar in Computer Science | Fall, Spring | |
16:198:672 | Seminar in Computer Science | Fall | |
16:198:673 | Seminar in Computer Science | ||
16:198:674 | Seminar in Computer Science | ||
16:198:701 | Research In Computer Science | Fall | |
16:198:702 | Research In Computer Science | Spring | |
16:198:800 | Matriculation Continued | Fall, Spring |
In addition to the general admission criteria of the Graduate School, the department requires that applicants to the M.S. program have completed an accredited undergraduate program in Computer Science, or at least taken the core prerequisite courses for the undergraduate degree as listed below:
- A substantial background in mathematics, especially in calculus (as in 640:151-152), linear algebra (as in 640:250), finite mathematics (as in 198:205), probability/combinatorics (as in 198:206), and numerical analysis (as in 198:323). Such background should include at least two semesters of calculus and one semester in each of the other areas.
- Working knowledge of high level languages (as in 198:111), data structures (as in 198:112), computer architecture and assembly language (as in 198:211), algorithm design and analysis (as in 198:344), and some elective courses in advanced undergraduate areas, such as programming languages and compilers (as in 198:314, 415), operating systems (as in 198:416), distributed systems (as in 198:417), information systems (as in 198:336), networks (as in 198:352), etc.
(Short descriptions of undergraduate courses offered by the department can be found in section 6.4 of this brochure.)
Applicants who have adequate knowledge of the above subjects but who have not completed all academic courses in these areas may show proficiency by obtaining a high score on the GRE Subject Test in Computer Science. All applicants are required to take the aptitude part of the GRE examination (verbal, analytic and mathematical reasoning sections). The Computer Science Subject Test is optional, but highly recommended, particularly for applicants with a non-CS background, or who have been out of school for several years.
Criteria for admission currently include:
- An academic record (undergraduate and previous graduate work) that shows distinction (B+ or higher) in Computer Science, Mathematics and related fields. (The mean GPA for a recent entering class of students was 3.62; this included Master's and PhD students, with and without financial aid. )
- A high score on all the GRE examinations required, and the TOEFL exam in the case of foreign students. (The mean GRE scores for a recent entering class of students were: Verbal 150, Quantitative 160, the mean TOEFL score was 92, IBT S >21 IBT L >21.)
- Strong letters of recommendation.
- A clear statement, about one page in length, outlining the reasons why the applicant wishes to pursue graduate study in computer science. (If appropriate, please specify one or more areas of particular interest, to help us assign advisors. See section 5 for a list of areas.)
The Computer Science program at Rutgers University offers a comprehensive range of financing options to support students throughout their academic journey. Undergraduate students can benefit from a variety of scholarships, including merit-based awards, need-based grants, and departmental scholarships specifically for Computer Science majors. These scholarships are available through university-wide programs as well as department-specific funds aimed at encouraging excellence and diversity within the field. Additionally, students may be eligible for federal and state financial aid programs, which can include grants such as the Pell Grant, work-study opportunities, and federal student loans. Rutgers also provides information and assistance for students seeking private scholarships from external organizations, corporations, and foundations that support STEM students.
For graduate students pursuing advanced degrees in Computer Science, the university offers assistantship positions, which typically include a stipend and tuition remission in exchange for research or teaching duties. These assistantships are highly competitive and aim to attract talented students from around the world. The university also provides fellowships and grants designed to support research activities, including those focused on innovative technological developments and interdisciplinary projects. International students are encouraged to explore various scholarship opportunities tailored to their needs, along with streams of financial aid that comply with visa regulations.
Rutgers University’s Office of Financial Aid plays a crucial role in guiding students through the application process for all types of financing, ensuring transparency and accessibility of funds. Additionally, the university’s financial counseling services assist students in understanding their repayment options and managing their educational expenses effectively. The department frequently updates its students about new funding opportunities and deadlines, helping them to plan their finances accordingly.
Overall, Rutgers University is dedicated to making Computer Science education accessible and affordable, emphasizing a holistic approach to student financial support that combines internal awards, government assistance, and external funding sources. This multi-faceted approach helps students focus on their academic and research pursuits without undue financial hardship, fostering an inclusive and innovative learning environment.
The Rutgers University Bachelor of Science in Computer Science program offers students a comprehensive education designed to prepare them for careers in computing, software development, research, and further graduate study. The curriculum focuses on fundamental concepts such as programming languages, algorithms, data structures, computer architecture, and operating systems, ensuring students develop strong analytical and problem-solving skills. Advanced coursework includes topics like artificial intelligence, machine learning, cybersecurity, software engineering, and databases, enabling students to specialize in areas of interest. The program emphasizes experiential learning through project-based assignments, internships, and collaborative research opportunities, often in partnership with industry leaders and research institutions. Rutgers also provides access to state-of-the-art laboratories and resources, fostering an environment conducive to innovation and practical application of knowledge. Students are encouraged to participate in competitions, hackathons, and academic clubs to enhance their technical skills and professional network. The faculty comprises experienced researchers and industry experts dedicated to mentoring students and advancing the field of computer science. Graduates of the program are equipped for employment in technology firms, finance, healthcare, government agencies, and academia, or to pursue advanced degrees such as master's or doctoral programs. The program adheres to the latest standards and incorporates emerging technologies to stay current with rapid industry developments. Overall, Rutgers University’s Computer Science program aims to produce versatile, innovative, and skilled computing professionals capable of addressing complex challenges in various sectors.