Computer Science Resources

Advising Resources

Undergraduate students with surnames beginning with the letters:
A – Cha advised by Shelby Trudeau (sstiao@rit.edu)
Che – HL advised by Gabriela Diaz (gxdiao@rit.edu)
Ho-Me advised by Karen Hirst (kphics@rit.edu)
Mi – P advised by Don Denz (dpdiao@rit.edu)
Q-Se advised by Shelby Trudeau (sstiao@rit.edu)
Sh – Z advised by Christina Rohr (crtvcs@rit.edu)


CS Minors: Karen Hirst (kphics@rit.edu)
BS/MS Program: Please refer to the above assigned advisors based on surname


Graduate students with surnames beginning with the letters:
A - F advised by Don Denz (dpdiao@rit.edu)
G – Z advised by Cindy Wolfer (cawvcs@rit.edu)
 

 

The Department of Computer Science evaluates transfer credit for prospective and current Computer Science students. Current students thinking about taking courses at another college or university should speak with their academic advisor. It may be necessary to fill out the Transfer Credit Articulation Request located on the Registrar's website to ensure the course transfers in as expected. A link to the form can be found on the Registrar's website.

The Department of Computer Science evaluates and awards Advanced Placement (AP®) credit as well.  Please refer to the following link for our most up to date AP Awards Chart.

RIT AP Awards

You may have some questions about RIT policies, the Computer Science curriculum, and other academic topics. We have put together information for students to help clarify these questions. If you can’t find the information you are looking for, feel free to contact us at cs-advising@rit.edu and we’ll be happy to help.

What do I do if I am having trouble with classes?

There are many resources available for you to help you succeed. The GCCIS student/tutoring center is located in Golisano Hall, room 2410 and offers free tutoring services for students taking introductory CS classes or who may need help with some of our theory courses.  In addition, there are many other types of tutoring offered to students (many free of charge!) across campus.  You can find more information about these services at Tutoring @ RIT . You can also meet with your CS assigned academic advisor to talk about your academics.

What is FERPA and how does it affect me?

FERPA stands for “The Family Educational Rights and Privacy Act”. FERPA protects the privacy of students above the age of 18. Under FERPA, any school that receives federal aid (RIT does receive aid) must keep personal information including grades private. The CS Department cannot disclose any student's personal information without their consent.

What can be done if I failed a course?

An undergraduate student may repeat a course to raise a grade. If you repeat a course, the last grade will stand as final. Courses taken at other institutions may not be considered as repeats. Credit earned by examination/experience may not be used to repeat previous course work. It is important to note that both grades will appear on your transcript, but only the last grade will be used to calculate your GPA. You should consult with your assigned academic advisor to come up with a recovery plan.

What happens if I dropped or withdrew from a class?

During the first 7 days of the term (excluding Sundays and holidays), you can Add or Drop a class without penalty. After this time, you can no longer drop the class but must withdraw. A grade of “W” will be assigned to your record if you withdraw. A grade of “W” does not affect your GPA. Students considering withdrawing from a course should consult with their assigned academic advisor.

Who can I speak to if I am thinking of changing majors?

You first need to speak to your assigned academic advisor in the CS department. Then your advisor can give you further instructions at that time.

What can be done if I want to dispute a grade?

You should first speak with your instructor in order to gain an understanding of the grade. If no resolution is made during that time you can set up a time to meet with the CS Department Associate Chairperson. To set up a meeting, call 585-475-2995 or stop by the CS Student Services office (GOL-3005). If no resolution is made you can refer to Policy D17.0 Final Course Grade Disputes.

What can I do with a degree in Computer Science?

Students who earn a degree in Computer Science develop many valuable skills and depending on their interests and experiences, can market themselves to work in many different types of industry. Remember that Computer Science is all about inventing and problem solving. A good way to think about computer scientists is that they develop the brains that actually run the computer programs people use. For example, when you search for a book online and you find the book you want and the website also tells you about similar books you might enjoy, computer scientists were the people who developed the brains for that website that give you those other recommendations based on your interests. This is just one example of the countless inventions that computer scientists develop every day.

What companies have previous students worked for during a Co-op?

Some examples are Google, Facebook, Amazon, Apple, Citigroup, Harris Corp., BAE Systems, Excellus Blue Cross Blue Shield, Computer Associates, IBM, Intel, Intuit, Mozilla, MOOG Inc., Oracle, Microsoft, Infimed Inc, National Security Agency, Paetec Communications Inc, Paychex, RightNow Technologies Inc, Thomson Reuters, Veramark Technologies Inc, Vicor Corp, and Xerox.  There are also many others.

What types of activities can I partake in at RIT?

RIT has over 150 clubs and organizations available for students to join. We also have a variety of intramural sports happening throughout the year. One of the most interesting things that students enjoy is the Special Interest Housing. The Computer Science House is a community made up of CS and non-CS students who are interested in computer science. They live together on the 3rd floor of Nathanial Rochester Hall and learn about computing firsthand. They have their own network, student modified vending machine, lounge, conference room, software center, and work on a variety of projects throughout the year. More information can be found here: Computer Science House.

What is done by RIT to ensure that I succeed?

It is ultimately up to you to succeed. The CS department is happy to meet with any student to go over their academics. Faculty are encouraged to take part in the “Academic Alert” program which lets the academic advisors know when students are having trouble in class.

Why am I on academic probation and what are the policies?

All students must maintain a C (2.0 GPA) average in order to stay in good academic standing.  Please refer to Policy D05.1 Academic Actions and Recognitions for more information.

Undergraduate Resources

The BS degree in Computer Science is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org, under the General Criteria and the Computer Science Program Criteria. The program provides students with both a broad and deep foundation in theory and modern software and hardware concepts as well as introduces students to numerous programming languages and paradigms. Students have an opportunity to engage in significant programming and software development work (it’s not unreasonable to think of Computer Scientists as technology inventors), but we also offer students more and more opportunities to engage in both traditional and applied research. In addition to required Computer Science courses, students have an opportunity to take Computer Science electives in areas such as: architecture and operating systems; computer graphics and visualization; data management; distributed systems; artificial intelligence; languages and tools; security; and theory.

Employers not only look for students who have strong technical skills, but who also understand mathematics, science, and the importance of effective communication. The BS program provides students with a solid foundation in mathematics, science, liberal arts and an opportunity to take outside electives, complimenting the strong technical core that the program offers.

The demands of industry and government require college graduates to master both the fundamentals, and the applied aspects of their profession. To meet this requirement, two applied educational experiences are woven into the program. Students are required to complete a cooperative educational experience as well as an extensive set of laboratory experiences, many as members of a team. These experiences not only strengthen a student's technical skills, but give them the ability to communicate clearly and work effectively as part of a team.

The career outlook for computer science graduates is strong. The combination of our strong technical preparation and co-op experiences, give our graduates a leg up in industry, allowing them to join virtually any career field as a computing professional. Not only do our graduates enter the profession with more extensive skills and background than typical entry-level hires, but they can often leverage this to more rapidly advance their careers.

Outcomes and Objectives

The BS degree in Computer Science is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org, under the General Criteria and the Computer Science Program Criteria.

Program Educational Objectives
Our program educational objectives are broad statements that describe what graduates are expected to attain within a few years of graduation. They will be able to:

  • Pursue advanced study in computing or participate in modern software development.
  • Collaborate successfully with colleagues and clients.
  • Work as ethical and responsible members of the computing profession and society.

Student Outcomes
To allow our BS graduates to meet our long-term program educational objectives, the department has developed seven student outcomes, which are narrower statements used to describe what our students are expected to know and be able to do by graduation. Students graduating from our BS program are able to:

1. Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions 

2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline 

3. Communicate effectively in a variety of professional contexts

4. Recognize professional responsibilities and make informed judgements in computing practice based on legal and ethical principles 

5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline 

6. Apply computer science theory and software development fundamentals to produce computing-based solutions 

7. Demonstrate advanced knowledge of a selected area within the computer science discipline 


Enrollment and Certifications

BS Program Enrollment (Fall enrollments - total headcount)

  • Fall 2012– 703
  • Fall 2013 – 712
  • Fall 2014  – 757
  • Fall 2015  –  822
  • Fall 2016  – 846
  • Fall 2017  – 883
  • Fall 2018 - 947
  • Fall 2019 - 984
  • Fall 2020 - 1044
  • Fall 2021 - 1132
  • Fall 2022 - 1140
  • Fall 2023 - 1196

BS Degree Certification

  • 2012-2013  – 135
  • 2013-2014  –  116
  • 2014-2015  –  101
  • 2015-2016  – 104
  • 2016-2017  – 124
  • 2017-2018 - 128
  • 2018-2019 - 135
  • 2019-2020 - 188
  • 2020-2021 - 189
  • 2021-2022 - 186
  • 2022-2023 - 195

GOALS AND BASIC REQUIREMENTS

Students have an opportunity to complete a minor in Computer Science that provides a secondary area of expertise in support of their major.  The minor may be tailored to go deeply into programming or sample selected theoretical or applied areas within Computer Science.  At least two of the four electives chosen must have course numbers of 300 or higher.  Students may choose electives from undergraduate or graduate level Computer Science courses for which they have the appropriate prerequisites.  The minor in Computer Science consists of at least 15 semester hours; all courses counting toward this minor must be taken from Computer Science at RIT.  At least 9 semester hours must be from CS courses not required by a student’s home department.  To earn this minor, students must obtain a minimum GPA of 2.00 in the minor courses.  Credits earned from other sources (e.g., AP or courses taken elsewhere) do not apply to this minor, but may serve to satisfy prerequisites.

PREREQUISITES

The minor advisor evaluates other courses to determine if prerequisites have been satisfied.

CSCI 141 (Computer Science I) and CSCI 142 (Computer Science II) or other equivalent two-course introductory programming sequences

MATH 181 (Project-Based Calculus I) and MATH 182 (Project-Based Calculus II) or other equivalent two-course Calculus sequences

MATH 190 (Discrete Mathematics for Computing) or other equivalent Discrete Mathematics courses

  1. The following course sequences are automatically accepted in place of CSCI 141/142: (a) ISTE 120/121, (b) IGME 105/106, (c) CPET 121/321 (d) GCIS 123/124
  2. The following course sequences are automatically accepted in place of MATH 181/182: (a) MATH 171/172/173, (b) MATH 181A/182A.
  3. The following courses are automatically accepted in place of MATH 190: (a) MATH 200, (b) MATH 131.

WARNING

Although we accept alternative programming sequences as acceptable prerequisites, they may not provide background equivalent to CSCI 141 and CSCI 142.  Students who might be interested in more theoretical Computer Science courses or who might consider a double major involving Computer Science should only take MATH 190 or MATH 200 for discrete mathematics and should only take CSCI 141 and CSCI 142 for their introductory programming sequence.

REQUIRED COURSE

CSCI 243 (The Mechanics of Programming)

ELECTIVES/EXCLUSIONS

Choose four undergraduate or graduate level Computer Science courses (in some cases, a graduate level course should not be selected if you have had a similar undergraduate course). 

PLEASE NOTE: Students pursuing a minor in Computer Science are not guaranteed seats in Computer Science courses.  Most courses are initially restricted to Computer Science majors only and then are opened to other majors.  We do our best to accommodate students into our courses.  Given the demand for introductory Computer Science courses, we do not officially declare students for the minor until they have completed all prerequisites.

Computer Science Electives to Complete a CS Minor: 

For ideas on courses you could take depending on your area of interest within Computer Science, please see a list of possible courses here.

The following courses may not be used for the minor:

CMPR 271 Computational Problem Solving for Engineers

CSCI 101 Principles of Computing

CSCI 471 Professional Communications

CSCI 472 Historical and Current Perspectives in Computer Science

CSCI 488 CS Undergraduate Summer Co-op

CSCI 499 CS Undergraduate Semester Co-op

CSCI 571 Honors Capstone Research

CSCI 589 Undergraduate Thesis Proposal and Preparation

CSCI 590 Undergraduate Thesis

CSCI 603 Computational Problem Solving

CSCI 605 Advanced Object-Oriented Programming Concepts

CSCI 686 Graduate Professional Seminar

CSCI 687 Graduate Research Seminar

CSCI 699 CS Graduate Semester Co-op

CSCI 788 Computer Science MS Project

CSCI 790 Computer Science MS Thesis

CSCI 888 CS Graduate Summer Co-op

Minor Advisor/Point of Contact – Karen Hirst, Academic Advisor (kphics@rit.edu)  

Minor Faculty Advisor – Aaron Deever, Undergraduate Program Coordinator (adeever@rit.edu)

Computer Science Student Services Office - GOL 3005; general phone number 585-475-2995

RIT permits students to combine "the requirements of two distinct majors in a single Bachelors degree" (taken from RIT policy D01.2 (Undergraduate Double Major Policy)). Double majors are subject to numerous stipulations, constraints, and considerations and hence not all combinations of majors at RIT are either feasible or practical. Nonetheless, the Department of Computer Science does support double majors and will explore this option with interested students.  Since RIT switched to semesters, some of the more popular programs from which students have completed or are in the process of completing a double major involving Computer Science have included:

For more information on double majors involving Computer Science, consult one of the following two documents:

Applying for an Undergraduate Double Major when Computer Science is used as the Primary Major

Applying for Undergraduate Double Major when Computer Science is used as the Secondary Major

Preface

We have tried our best in this “handbook” to provide accurate, complete, and helpful information.  It is important for students to realize, however, that there is much more beyond what we have stated.  In particular, RIT, the college (GCCIS), and the department (Computer Science) follow or implement numerous institute policies and procedures.  A great deal of information is available to students through various sources, many of which are online, but it is also unrealistic to expect that all students will be aware of all the policies that pertain to them.  Different issues will come up at different times and not all issues will apply to every student.  We urge you to frequently consult or contact your academic advisor as well as the staff in the department’s Student Services Office to confirm or clarify your understanding when such issues do arise.  If individuals from Computer Science do contact you or communicate with you, please make sure you understand the message, acknowledge receipt of the message when asked to do so, or raise questions when something is not clear.

Documents

Advising - Getting Advice

Your advisor should be your first point of contact for assistance and advising. An academic advisor has been assigned to you based on the first letter of your last name. Please be sure to view your current advisor assignment via the RIT Student Information System (SIS).

To schedule an appointment, please use Starfish. We do not do same day appointments, so please plan accordingly. Appointments are typically held between 9am-4pm.

Advising appointments may be necessary to discuss the following:

Schedule Changes and Planning
Curriculum Flowchart Questions
Change of Program Out of CS
Course Withdrawal
Concerns with a Course
Co-op
CS Minor
Non-CS Minor Declaration
Double Majors
Full-time Equivalency
I-20 Extension
Reduced Course Load
Scholarship
Project/Thesis
Non-majors Interested in CS

Advisors are also available via email to answer questions. Advisors use your RIT email account as the primary means of contacting students. If you use another email, you should forward all your RIT mail to the account you check regularly.

Faculty Advisors

While faculty advisors can discuss both academic and personal issues and address many of the same issues as the professional advisors, the real strength of faculty advisors lies in their professional expertise. Talk to faculty about career options, choices to make in selecting Computer Science or outside electives, or perhaps to get their opinion on several co-op opportunities that you have.

Faculty Research Interests

Program Coordinators/Directors

The Department of Computer Science has an Undergraduate Program Coordinator, an Associate Undergraduate Program Coordinator, a Graduate Program Director, and an Associate Graduate Program Coordinator.   All of these individuals have ongoing responsibilities to help manage the undergraduate and graduate programs.   The specific roles and responsibilities for each of these individuals is determined by the department chair, influenced by the nature of and size of each program, and can change over time.  In general, these individuals handle unusual situations with respect to degree requirements, approve or reject requests for exceptions, review co-op reports and assign co-op grades, verify that students can be certified for their degrees, and determine probation and suspension status. Coordinators are frequently called upon to sign off on most requests, from simple grade changes to changes in program status.  Such requests are typically submitted through academic advisors or department staff. The Undergraduate Program Coordinator makes decisions and assigns credit for transfer courses as well as Advanced Placement, CLEP, and IB situations while the Associate Undergraduate Program Coordinator currently handles all matters related to co-op.  The Graduate Program Director determines which students who apply (or request to change into the graduate program) are accepted and also recommends and monitors scholarships.  The Associate Graduate Coordinator currently handles all matters related to the accelerated BS/MS dual degree program in Computer Science or other accelerated BS/MS dual degree programs that include an MS in Computer Science.

Graduate Resources

The MS program in Computer Science consists of a core curriculum, a diverse set of clusters, and many additional electives. The core provides students with a solid background in the theoretical principles underlying computer science, which ensures that graduates acquire the intellectual tools necessary to keep up-to-date in this rapidly evolving discipline. The clusters provide students with the opportunity to obtain depth in a computer science discipline. The electives add the necessary breadth of knowledge required by industry. This combination prepares our graduates to engineer modern computing systems, and contribute in all aspects of systems life cycles.

Clusters are offered in a variety of areas, including computer graphics and visualization, data science, distributed systems, artificial intelligence, programming languages and tools, security, and theory. Check the list of research areas for more information. Certain pre-approved courses from other departments also may be counted toward the degree.

The program helps students prepare for academic and research careers in computer science or a related discipline. The program is designed for students who have an undergraduate major or minor in computer science as well as those who have a strong background in a field in which computers are applied.

Faculty members in the department are actively engaged in research in artificial intelligence, wireless networks, pattern recognition, computer vision, visualization, data science, combinatorics, and distributed computing systems. There are many opportunities for graduate students to participate in these activities toward thesis or project work and independent study.

Applicants should have a baccalaureate or equivalent degree from an accredited institution and a minimum grade point average of 3.0 (B). RIT undergraduate students in computer science, computational math, biomedical computing, or computer engineering technology may study for both their BS and MS degrees through accelerated programs. Applicants from foreign universities must submit the Test of English as a Foreign Language (a score of at least 213) and Graduate Record Exam scores. GRE scores also can be considered for applicants whose undergraduate grade point average is lower than 3.0.

MS Program Outcomes: 

Outcome 1: Demonstrate a breadth of knowledge across the discipline

Outcome 2: Demonstrate a depth of knowledge in a selected area in the discipline 

Outcome 3: Communicate effectively in a professional environment 

Outcome 4: Pursue professional positions or further graduate studies 

Outcome 5: Comprehend and analyze ethical issues related to the use of computing in society

https://www.rit.edu/study/computer-science-ms

The Curriculum

The graduate program of study consists of 30 semester credits. Students will select one of two tracks to the degree, the thesis track or the project track:

The Core Course:

• CSCI 665 Foundations of Algorithms (3 credits)

The Thesis Track:

• Three courses from a cluster (9 credits)
• Four electives (12 credits)
• Master’s Thesis (6 credits)

The Project Track:

• Three courses from a cluster (9 credits)
• Five electives (15 credits)
• Master’s Project/Colloquium (3 credits)

Clusters

Computer Science graduate students are required to identify a cluster of courses to complete their graduate work. To satisfy the cluster requirement a student must take three courses in a single cluster. 

In the Courses Section, the courses are listed by each cluster. Each cluster contains options for independent study or special topics courses.

Computer Science Independent Study

Students have a limited opportunity to obtain credit for independent study and to use that credit to meet degree requirements. Generally, independent study projects represent work that is different from, or an extension of, existing course offerings. In order to take an independent study, students must have a faculty sponsor. The faculty sponsor has to be a member of the CS faculty or GCCIS Ph.D. core faculty. Students and that faculty sponsor will fill out the Independent Study form to decide what they will do and how students will be graded. Students and the faculty sponsor must also sign the Independent Study form and the Graduate Program Director must approve it before the student is allowed to register for an Independent Study course. After the student’s work is complete, they are required to submit a report of their work to the sponsor of their independent study. The expected amount of time spent for a 3 credit hour independent study is equivalent to a 3 credit hour lecture course. A detailed report describing the completed work has to be handed in to the faculty sponsor. A typical report has about 30 pages. Students can apply at most six (6) semester hours of Independent Study toward the MS degree in Computer Science.

Please note that the courses listed below may not be offered every term, or even every year.
 

Artificial Intelligence

Artificial intelligence encompasses the study of algorithms and architectures that enable effective decision making in complex environments. Researchers in this area include faculty, undergraduate and graduate students working on projects in computer vision, robotics, virtual theatre, sensor networks, data mining, document recognition, and the theoretical foundations of decision-making (e.g. Markov chains and the properties of voting protocols).

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 630 Foundations of Artificial Intelligence (required)
CSCI 631 Foundations of Computer Vision
CSCI 632 Mobile Robot Computing
CSCI 633 Biologically Inspired Intelligent Systems
CSCI 635 Introduction to Machine Learning
CSCI 636 Information Retrieval 
CSCI 731 Advanced Computer Vision
CSCI 732 Image Understanding
CSCI 735 Foundations of Intelligent Security Systems
CSCI 736 Neural Networks and Machine Learning
CSCI 737 Pattern Recognition 
CSCI 739 Topics in Intelligent Systems

 

Computer Graphics and Visualization

This area provides the technical foundations for studies in Computer Graphics. Areas for advanced study include Advanced Graphics Programming, Image Synthesis, Computer Animation, Virtual Reality, and Data Visualization. 

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 610 Foundations of Computer Graphics (required)
CSCI 631 Foundations of Computer Vision
CSCI 711 Global Illumination
CSCI 712 Computer Animation: Algorithms and Techniques
CSCI 713 Applied Perception in Graphics and Visualization
CSCI 714 Scientific Visualization
CSCI 715 Applications in Virtual Reality
CSCI 716 Computational Geometry

CSCI 719

Topics in Computer Graphics

 

Data Science

Studies foundational data management and knowledge discovery challenges prevalent in design, analysis and organization of data. This area can be applied in a variety of domains including data management in resource constrained environments, enterprise and multimedia databases, active and secure databases and knowledge discovery algorithms.

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 620 Intro to Big Data (required)
CSCI 621 Database System Implementation
CSCI 622 Data Security and Privacy
CSCI 636 Information Retrieval
CSCI 720 Big Data Analytics
CSCI 721 Data Cleaning and Preparation
CSCI 722 Data Analytics with Cognitive Computing
CSCI 723 Advanced Database Skills: Graph Databases
CSCI 724 Web Services and Service Oriented Computing
CSCI 725 Advanced Database Skills: NoSQL and NewSQL Data Systems
CSCI 729 Topics in Data Science (different seminars offered under this number)

 

Distributed Systems

This area studies systems formed from multiple cooperating computers. This includes the analysis, design, and implementation of distributed systems, distributed middleware, and computer networking protocols, including security.

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 651 Foundations of Computer Networks (required)
CSCI 652 Distributed Systems
CSCI 654 Foundations of Parallel Computing
CSCI 662 Foundations of Cryptography
CSCI 724 Web Services and Service Oriented Computing
CSCI 729 Topics in Data Science 
CSCI 750 Fundamentals of Cloud Computing
CSCI 759 Topics in Systems
CSCI 762 Advanced Cryptography

 

Language and Tools

The Languages and Tools area studies language design and implementation together with architecture and use of software development tools.

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 641 Advanced Programming Skills: Functional Programming and Haskell  
CSCI 641 Advanced Programming Skills: Safe Systems Programming in Rust
CSCI 641 Advanced Programming Skills: Efficient Design in Modern C++
CSCI 641 Advanced Programming Skills: Design Patterns and C#/.Net
CSCI 740 Programming Language Theory
CSCI 742 Compiler Construction (required)
CSCI 746 Software Development Tools
CSCI 749 Topics in Language and Tools

 

Security

The Security area spans topics from networking to cryptography to secure databases. By choosing different domains in which to study security students can gain a broad understanding of both theoretical and applied knowledge.

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 622 Data Security and Privacy
CSCI 642 Secure Coding
CSCI 651 Foundations of Computer Networks (required)
CSCI 655 Foundations of Cybersecurity
CSCI 662 Foundations of Cryptography
CSCI 729 Topics in Data Science (different seminars offered under this number)
CSCI 734 Foundations of Security Measurement and Evaluation
CSCI 735 Foundations of Intelligent Security Systems
CSCI 739 Topics in Intelligent Systems
CSCI 759 Topics in Systems
CSCI 762 Advanced Cryptography
CSCI 764 Quantum-Resistant Cryptography 
CSCI 769 Topics in Theory

 

Theory

The Theory area studies the fundamentals of computation. These fundamentals include complexity theory to determine the inherent limits of computation and communication and cryptography and the design and analysis of algorithms to obtain optimal solutions within those limits.

The following list is a subset of the courses offered in this cluster:

Course Number Course Title
CSCI 662 Foundations of Cryptography  
CSCI 664 Computational Complexity
CSCI 716 Computational Geometry
CSCI 740 Programming Language Theory
CSCI 749 Topics in Languages and Tools (generic)
CSCI 761 Topics in Advanced Algorithms (different seminars offered under this number)
CSCI 762 Advanced Cryptography
CSCI 764 Quantum-Resistant Cryptography 
CSCI 769 Topics in Theory (different seminars offered under this number)

To see a list of Computer Science faculty associated with each cluster (research area), check out our research page. Students are allowed to design their own cluster, with the consent of a faculty advisor and the graduate director.

Theses on the ProQuest database can be found here.

Previous Projects (by semester) can be found here.

Project submissions can be made here. (CS login required)

Current semester project submissions can be verified here. (CS login required)

Project descriptions can be found here. (myCourses login required)

All CS MS Capstone projects must use this template.

CS Logos can be obtained here.

 

Documents:

Faculty Advisors

While faculty advisors can discuss both academic and personal issues and address many of the same issues as the professional advisors, the real strength of faculty advisors lies in their professional expertise. Talk to your faculty advisor about career options, choices to make in selecting Computer Science or outside electives, or perhaps to get their opinion on several co-op opportunities that you have.

Faculty Research Interests

Program Directors

The Department of Computer Science has an Undergraduate Program Coordinator, an Associate Undergraduate Program Coordinator, a Graduate Program Director, and an Associate Graduate Program Director. All of these individuals have ongoing responsibilities to help manage the undergraduate and graduate programs. The specific roles and responsibilities for each of these individuals is determined by the department chair, influenced by the nature of and size of each program, and can change over time. In general, these individuals handle unusual situations with respect to degree requirements, approve or reject requests for exceptions, review co-op reports and assign co-op grades, verify that students can be certified for their degrees, and determine probation and suspension status. Coordinators are frequently called upon to sign off on most requests, from simple grade changes to changes in program status. Such requests are typically submitted through academic advisors or department staff. The Undergraduate Program Coordinator makes decisions and assigns credit for transfer courses as well as Advanced Placement, CLEP, and IB situations while the Associate Undergraduate Program Coordinator currently handles all matters related to co-op. The Graduate Program Director determines which students who apply (or request to change into the graduate program) are accepted and also recommends and monitors scholarships. The Associate Graduate Director currently handles all matters related to the accelerated BS/MS dual degree program in Computer Science or other accelerated BS/MS dual degree programs that include an MS in Computer Science.

 

Big data is noted for its volume, varieties of data types, and rapid accumulation. Big data has become a catchphrase to describe data collections that are so large they are not amenable to processing or analysis using traditional database and software techniques. The advanced certificate in big data analytics is a multidisciplinary program intended for professionals with BS degrees in computing or other diverse fields such as finance, retail, science, engineering, or manufacturing—areas where knowledge of how to analyze big data is necessary. The advanced certificate is also meant for students who would like a formal qualification in this area. The program allows professionals with a bachelor's degree to enhance their career opportunities and professional knowledge with targeted graduate course work in a focused area without making a commitment to an MS program.

Advanced Certificate in Big Data Analytics Curriculum
Advanced Certificate in Big Data Analytics - New Student Information

 

The advanced certificate in artificial intelligence for computer science is intended for traditional graduate students as well as professionals who want to advance their understanding of artificial intelligence. You will learn how to apply deep learning, natural language processing, and knowledge representation to solve problems which have been considered unsolvable until recently. This artificial intelligence graduate certificate will enable you to develop the skills needed to work in the many industries currently dealing with problems in the field of artificial intelligence.

Advanced Certificate in Artificial Intelligence Curriculum

Advanced Certificate in Artificial Intelligence - New Student Information

The RIT Graduate School acts as a central hub, enhancing the academic journey for graduate students:

https://www.rit.edu/academicaffairs/graduateeducation/

Participation in the cooperative education (co-op) program is optional as it is not a requirement of the MS degree.

Our program students have access to a designated liaison in the Office of Career Services and Co-op: https://www.rit.edu/careerservices/contacts/coordinators-by-college

BS/MS Student Resources

The accelerated BS/MS dual degree program is for outstanding undergraduate students who wish to spend approximately one additional year to complete their MS degree immediately after their BS degree. A student who is accepted into the accelerated BS/MS dual degree program will be able to take up to three graduate courses (9 semester units) in Computer Science and apply them to both the BS and MS degree requirements. There can be significant financial benefits to students who enroll in this program, although these are best discussed with your financial aid counselor.

To apply, you need to have third year academic standing with a 3.25 or better CGPA, at least 1 completed co-op, no excessive D/F/W's on your transcript, and have attended a BS/MS orientation session. You will need to meet with the CS BS/MS academic advisor to apply for this program. Please see the individual program descriptions listed below for further details.

A student will not receive their Bachelor's degree until the requirements for both Bachelor's and Master's degrees have been completed.  The Department of Computer Science permits students to work toward their Master's degree as soon as feasible, but the department strongly encourages students to make completion of all degree requirements for their Bachelor's degree their first priority.

Students must complete all BS requirements, including co-op requirements, before being permitted to register for either the MS thesis or project. 

Summary of current BS/MS requirements

Restrictions Regarding Similar Computer Science Courses 

CS Electives

Bridge Expectations when BS is non-CS 

  • Computer Science BS + Computer Science MS
  • Computational Mathematics BS + Computer Science MS
  • Computer Engineering Technology BS + Computer Science MS
  • Computer Science BS + Computer Security MS
  • Computer Science BS + Software Engineering MS
  • Software Engineering BS + Computer Science MS
  • Computer Science + Software Engineering BS/MS

To review the curricular requirements for the dual degree program, please review the information here.

Study Abroad Information

The CS department has created multiple opportunities for students to continue their studies while experiencing the world from a different perspective. Although there are many study abroad options available to students at RIT, the Computer Science department programs are unique in that all participating students take computer science based coursework while abroad. We encourage you to explore both options that the department offers, and encourage all students to check out additional study abroad opportunities offered by RIT.

The Location

Dubrovnik is the southern most city in Croatia and is a prominent tourist destination on the Adriatic Sea along the Dalmatian Coast. Dubrovnik has an international airport of its own, and a local bus system connecting all Dubrovnik neighborhoods. Croatia borders Slovenia, Hungary, Serbia, Bosnia-Herzegovina, and Montenegro and is across the sea from Italy.

The Curriculum

The Department of Computer Science at RIT will offer two to three CS courses each spring semester at RIT Croatia. A selection of Liberal Arts, Science, and Free Electives courses are also available. Traditionally, the CS courses offered include Introduction to Artificial Intelligence and an elective (Mobile Robot Programming). All classes at RIT Croatia are taught in English and all staff personnel at the college speak both English and Croatian.

Students will be accompanied by a CS faculty member who will teach the CS courses. The Liberal Arts, Science and Free Elective courses will be taught by RIT Croatia faculty. Students are registered with RIT as full-time students while on study abroad.

All RIT students in Dubrovnik will have a student mentor from RIT Croatia. The mentor will work with the students on basic language, customs, culture, and will be the point person for all questions.

Housing

Students will share apartments in Dubrovnik which will most likely be arranged by the staff at RIT Croatia. Many apartments are within walking distance of the college. The local bus service is very reliable and students can purchase a monthly bus pass for approximately $10 USD.

Program Costs

Students pay the full-time day college tuition rate to RIT. Students will also be charged a non-refundable program fee to help cover housing, events, and trips while in Croatia. Meals, airfare, local transportation, and other miscellaneous expenses are the responsibility of the student.

Financial Aid

Students currently receiving financial aid may be able to use their aid for overseas study and may, in some cases, have their awards increased. Students not currently receiving financial aid should also consult with a financial aid advisor to discuss financing options. Regardless of your situation, students should consult with the Office of Financial Aid at RIT to discuss the program costs before committing to the program.

Insurance

Students are required to be covered by a health plan while in Dubrovnik, either through their family plan or by purchasing RIT student health insurance.

Orientation

RIT Croatia requires all international students to attend a mandatory orientation the week before classes start. Students are free to travel through Europe before the orientation, but are expected to arrive in Dubrovnik by the designated orientation date.

Flights

Students are responsible for making their own flight arrangements for this program. Check out the useful links page for more information on flights.


Visas

Students are required to obtain a Croatian Visa prior to departing for Dubrovnik in order to study and live in Croatia for the entire semester.

 

The Location

Osnabrück is the third largest city in Lower Saxony with an approximate population of 170,000 people. Osnabrück lies on the main railroad line north from Frankfurt to Hamburg, which makes travel to other parts of Germany, as well as the rest of Western Europe, easy and inexpensive. Germany borders the Netherlands, Belgium, Luxembourg, France, Switzerland, Austria, Czech Republic, Poland, and Denmark.

Nearby German cities include Münster, Dortmund, Düsseldorf, Köln, and Hanover. The airport is the Münster Osnabrück International Airport and the main railway station is the Osnabrück Hauptbahnhof.

The Curriculum

Students typically take about four courses while in Germany, which equates to about 18 semester credits. Students are registered with RIT as a full-time student while on study abroad.

This is a direct enrollment study abroad program which means that participants normally take courses in German alongside German students, but many choose to take courses in English from the Cognitive Science Program. This program includes participants from around the world, and is a complete immersion program.

German lectures are not run the same way as they are in America. Some lectures are taught as seminar classes, where each student's grade is based on a presentation they make for the lecture as well as a final paper. Others are taught as traditional lectures, but each student's grade may be determined solely by the final exam for the course. Still others are taught as practice sections, where students go simply to try exercises and ask questions about the associated lecture. You would likely take a mixture of these types of courses while in Germany.

Artificial Intelligence
Introduction to basic concepts, methods, and algorithms of artificial intelligence with relations to topics of cognitive science. Problem solving and planning, constraint satisfaction, theorem proving and non-monotonic reasoning, approaches to knowledge representation, machine learning, declarative programming languages. Discussion of current/special topics:Multi-agent systems, cognitive robotics, computer vision, natural language processing.

Functional Programming
Introduction to concepts of functional programming based on the programming language ML. Functions, recursion, currying, higher order functions (functionals), binding, evaluation, lambda calculus, type inference and type checking, optimization and program transformation, fixed point semantics, theorem proving and verification. Special aspects of AI programming with Common Lisp.

Housing

Students typically live in University of Osnabrück designated apartments. These apartments usually consist of a single-person bedroom along with shared living space, kitchen, and bathroom. Students will most likely live with other university students from Germany and other European countries. There are university cafeterias and many inexpensive restaurants in the area. Students may also live off-campus with placement assistance provided by the University of Osnabrück.

Program Costs

Students will actually pay tuition and college fees to program affiliate SUNY Oswego. The estimated cost for one semester of study is dependent on airfare, individual spending habits, and housing selection. This total cost includes SUNY Oswego tuition and college fees, housing and meals, round-trip airfare, program differential, repatriation insurance, passport, and local transportation. An up-to-date program cost sheet can be obtained from the CS Student Services Office.

Financial Aid

Students currently receiving financial aid may be able to use their aid for overseas study and may, in some cases, have their awards increased. Students not currently receiving financial aid should also consult with a financial aid advisor to discuss financing options. Regardless of your situation, students should consult with the Office of Financial Aid at RIT to discuss the program costs before committing to the program.

Insurance

The University of Osnabrück recommends German health insurance for all international students. Students who can show that they are covered by comparable personal or family insurance will be permitted to waive the German insurance. SUNY regulations also require medical evacuation and repatriation insurance for all overseas programs. This special insurance will be added to the total costs of this program.

Orientation

The International Student Office at the University of Osnabrück requires all international students to attend a mandatory orientation the week before classes start in April. Students are free to travel through Europe before the orientation, but are expected to arrive at their residence in Germany by 4pm on the designated orientation date.

Flights

Students are responsible for making their own flight arrangements for this program. Check out the useful links page for more information on flights.

Croatia

Students must be at least second year status, be in good academic standing with the institute (3.0 cumulative GPA), be able to take a minimum of one CS course offered, and demonstrate the ability to articulate how this study abroad experience will fit with his/her academic goals.

Students must complete an application for the RIT Study Abroad Office. Please see the information located here.

Germany

Students must have completed at least one year of formal German language at RIT or have sufficient previous knowledge of the language. A cumulative GPA of at least 2.5 is required, and acceptance is based on the student's academic standing, recommendations, and personal study statement.

You should first speak with either Dr. Hans-Peter Bischof or Don Denz about your interest in and qualifications for the program. The CS department will host a kick-off Germany Study Abroad meeting every fall semester. If interested in applying to this program, please attend the first meeting to receive details on other application procedures. An application for SUNY Oswego, the RIT Study Abroad Office, and the CS Department is required.

Studying abroad is a fun and safe experience but it is important to realize that you are representing your country and RIT while you are studying abroad. Also bear in mind that you are subject to the laws and customs of another country.

Although most trips abroad are trouble free, being prepared will go a long way to avoiding the possibility of serious trouble. Become familiar with the basic laws and customs of the country you plan to visit before you travel. Remember: Reckless behavior while in another country can do more than ruin your study abroad experience; it can land you in a foreign jail or worse! To have a safe trip, avoid risky behavior and plan ahead.

Apply early for your passport and, if necessary, any visas: Passports are required to enter and/or depart most countries around the world. Apply for a passport as soon as possible. Some countries also require U.S. citizens to obtain visas before entering. Most countries require visitors who are planning to study or work abroad to obtain visas before entering. Check with the embassy of the foreign country that you are planning to visit for up-to-date visa and other entry requirements.

Learn about the countries that you plan to visit. Before departing, take the time to do some research about the people and their culture, and any problems that the country is experiencing that may affect your travel plans.

Check for Travel Warnings and Travel Alerts. Travel Warnings recommend U.S. citizens defer travel to a country because of dangerous conditions. Travel Alerts provide fast-breaking information about relatively short-term conditions that may pose risks to the security of travelers.

Register with the nearest U.S. embassy or consulate. Register with the nearest U.S. embassy or consulate through the State Department's travel registration website. Registration will make your presence and whereabouts known in case it is necessary to contact you in an emergency. Remember to leave a detailed itinerary and the numbers or copies of your passport or other citizenship documents with a friend or relative in the United States.

For more specific information for your program of study, visit one of the following pages:

Travel advice for Croatia

Students learn more about Croatia through the balance between academic studies and cultural activities, while advancing in their professional career. While immersed in Croatian culture, students can taste different foods, enjoy the breathtaking scenery, vibrant nightlife, and travel to many historic destinations throughout Croatia, and Central and Southeastern Europe.

Culture

Day-to-day life in Croatia isn't all that different from life in the United States, except for a few minor differences. For one thing, Croats are able to enjoy the luxuries of being from a coastal region. Outdoor seating and leisurely walks can be enjoyed virtually year round. "Going for coffee" is an important pastime that takes more than the standard American "drive-thru" to enjoy. Croats also enjoy a public transportation system, so owning a car isn't really necessary. Students walk or use buses to get them around town, pretty much anywhere; getting from city to city is almost always done by train. Croats do not typically eat the way Americans tend to; they put a lot of importance on everything being fresh and healthy, which means things like TV dinners and junk food are difficult to find. Stores in Croatia tend to hold short hours, which means things will close early. In general, however, you'll find that Croatia isn't as different as you might think.

Clothing

Because our program runs in the spring semester, many different types of clothing will be needed. Although it is not as cold as it is here in Rochester, you will want a coat and a few sweaters to get through until April. After that you will likely want a Spring/Summer wardrobe to choose from for the rest of your stay. Rain gear is also important to bring along. The general dress code tends to be a little more formal/stylish than college students are used to in the US.

Computers

Bringing a laptop computer is of course the best solution, but if this is not possible, you could use the computer labs provided by ACMT. Even if you or your apartment mates don't have access to the Internet in your apartment while in Croatia, having a computer to work on programming assignments will make your life much easier. Also, if you're going to bring a computer with you, make sure you've got a plug adapter for European outlets. If your computer works on 120V and 240V power, then you'll only need a plug adapter, and if not,you'll need to get a voltage converter as well.

Documents

It's a good idea to make photocopies of your plane tickets, passport, etc. before you leave and carry them with you. While traveling, you should also be sure to give copies of these items to a friend or relative in case yours are misplaced. You may want to scan these items and burn them to a CD, but this is entirely up to you. Having copies of these items on you at all times will not only make replacement easier, but will also help to identify you, since the only universally accepted form of ID in Croatia is your passport.

Money

The official currency of Croatia is the Kuna although the Euro is also widely accepted. You can view current currency exchange rates at www.xe.com. Most stores in Croatia accept credit cards; it is important to remember that traveler's checks are not accepted in many stores, but you will be able to cash them at banks. One way to get money overseas is to have someone transfer money to your American bank account so you can withdraw it at an ATM in Croatia. This is not the only solution, but it seems to be the one which incurs the fewest fees. We recommend you notify your bank and credit card companies of expected use of your cards in Croatia so they do not put a hold on your account.

Banks

You probably won't need to open a bank account while you're in Croatia. ATM's are plentiful and you should have no trouble accessing your funds.

Phone Service

Cell phones can be purchased for a flat fee, with talk and SMS time being purchased on calling cards in variable increments. It is our recommendation that students purchase cell phones while in Croatia, as this has proven to be more economical than converting phones purchased and used here in the US.

Limits on Visitation

Because you will be in Croatia on a Visa, your stay cannot exceed 90 days. If you leave Croatia to travel, be sure to let your student mentor know so that he/she can arrange for proper calculation on your Visa. The days that you travel outside of Croatia do not count toward your 90 day limit.

Accommodations While Traveling

Youth hostels are one of the most economical places to stay. They can be researched and booked from any number of sites on the Internet. Some hostels are much nicer and more accessible than others, so research carefully.

Destinations in Europe

The possibilities are very open here. You can find student-priced airline tickets for much less than you'd pay elsewhere. You can get tickets from the Dubrovnik airport round-trip to many locations for 70 - 100 euro, sometimes even less. Ferries to Bari, Italy are also available during the Spring/Summer months. If you're staying in Croatia once classes conclude, travel to one of these places is definitely worth it.

Travel advice for Germany

Students learn more about Germany through the balance between academic studies and cultural activities, while advancing in their professional career. While immersed in German culture, students can visit festivals, taste different foods, enjoy the nightlife, and travel to many different destinations in Germany and throughout Europe.

Culture

Day-to-day life in Germany actually is not all that different from life in the United States, but there are some difference. For example, Germans are very big on recycling and conservation in general, which isn't typical for Americans. Germany (and most of Europe) also has a terrific public transportation system, so owning a car isn't really necessary. Many people use bicycles to get around town, and those who do not own a bike will ride a bus (or streetcars in certain German cities). Getting from city to city is almost always done by train. Germans don't really eat the same way as Americans; they put a lot of importance on everything being fresh and healthy, which means things like TV dinners and junk food are pretty difficult to find. Stores in Germany tend to hold short hours, which means things will close at about 7pm during the week, at 4pm on Saturday and be closed on Sunday. In general, however, you'll find that Germany isn't as different as you might think.

Clothing

Rain gear is essential in Osnabrück, since it tends to rain consistently; aside from that, you can expect weather a lot like Rochester(with the notable exception of much less snowfall). Bring enough regular clothing for about two weeks, plus some extra warm clothing. A nice outfit or two in case may also be needed, if you visit formal restaurants.

Computers

Bringing a laptop computer is of course the best solution, but if this is not possible, you could use the computer labs provided by the university. Even if you or your apartment mates don't purchase Internet access while in Germany, having a computer to work on programming assignments will make your life much easier. Also, if you're going to bring a computer with you, make sure you've got a plug adapter for European outlets. If your computer works on 120V and 240V power, then you'll only need a plug adapter, and if not,you'll need to get a voltage converter as well.

Documents

It's a good idea to make photocopies of your plane tickets, passport, etc. before you leave and carry them with you. You could also choose to scan these items and burn them to a CD, but this is entirely up to you. Having copies of these items on you at all times will not only make replacement easier but will also help to identify you, since the only universally accepted form of ID in Germany is your passport.

Money

The official currency of Germany is the Euro. You can view current currency exchange rates at www.xe.com. Contrary to what you may believe, most stores in Germany DO NOT accept credit cards. Also, traveler's checks are not accepted in stores, but you will be able to cash them at banks. One way to get money overseas is to have someone transfer money to your American bank account so you can withdraw it at an ATM in Germany, and deposit it into your German bank account. This is not the only solution, but it seems to be the one which incurs the fewest fees. We recommend you notify your bank of expected use of your card in Germany so they do not put a hold on your account.

Banks

You will probably want to open a bank account while you're in Germany, and there are plenty of banks to choose from. As a reference point, banks are traditionally only open during the week. Among the available banks, Sparkasse seems to be the most ubiquitous around the country, but you can also go with Deutsche Bank or something similar. If you're living in any of the student housing such as Salzmarkt or Jahnplatz, the rent money can be taken from your account automatically each month, as well as the money required for health insurance.

Phone Service

Cell phones can be purchased for a flat fee, with talk and SMS time being purchased on calling cards in 15 euro increments.

Student I.D.

Your student I.D. may be the single most important document you receive while in Germany. It will get you free bus travel around the city, free train travel to a number of destinations, and it will let you eat at the student Mensa. You'll want to get this laminated, which can be done a copy shop (like the Unikat behind the music store in Neumarkt) for a nominal fee.

The Mensa

The Mensa is the student cafeteria located both downtown and at the Westerberg campus. You can get lunch there for around 3 euro and the quality is very good. The Mensa in Osnabrück has been voted best in Germany on more than one occasion, so you can expect that the food will always be good and inexpensive. With this in mind, don't be surprised when you have to wait twenty minutes in line to get food. Getting lunch at the Mensa is serious business around Osnabrü:ck.

Westerberg

Westerberg is the scientific/technical campus for the university, located in the northern part of the city, your cognitive science classes will be there. You may encounter the situation where you have to get from one campus to the other in between classes, which is why all classes unofficially start at quarter past and end at quarter before the hour. You can get to Westerberg by taking buses 11, 12, 13 and 21 towards the northern part of the city and getting off at Sedanplatz.

The Auslandsamt

The Auslandsamt is a university office where you can go if you have any concerns about housing, your adjustment to the country or with any other questions you may have. Lots of trips and activities are planned for the international students through the Auslandsamt, so keep yourself updated on what they're offering. The Auslandamt produces a very helpful guide to life in Osnabrück.

BahnCard

Before you start traveling around Germany, we recommend that you sign up for a BahnCard. This card will get you 25% or 50% off the price of train travel anywhere in Germany, plus if you sign up for the Rail Plus option, you can get 25% off in other countries as well. They vary in price (between 100 and 200 euors, approximately), depending on whether you want the 25% discount card or the 50%, but either one is worth the price.

Accommodations While Traveling

Youth hostels are always the most economical way to go. They can be researched and booked from any number of sites on the Internet. Some hostels (A&O Backpackers in Berlin) are much nicer and more accessible than others (A&O Backpackers in East Berlin), so research carefully.

Destinations in Germany

Your student I.D. will get you free train travel to Hanover, Bremen, and Münster, all of which are worth a look. A bit further away are Köln, Frankfurt, Hamburg and Berlin, all of which you could spend a few days in and have plenty to do. All the way to the south are München and Stuttgart, which could be a little expensive to get to, but definitely worth visiting, especially if you want to see them on your way to Austria, Switzerland, Italy, etc.

Destinations in Europe

The possibilities are very open here. You can find student-priced airline tickets for much less than you'd pay elsewhere. You can get tickets from the Münster-Osnabrück airport round-trip to Rome and London for €70 - €100,sometimes even less. Night trains to Paris are around €140, and since your student I.D. gets you to Bad Bentheim (the station at the border with the Netherlands) for free, you can get to Amsterdam round-trip for about €40. If you're staying in Germany over the winter break, planning a longer trip to one of these places is definitely worth it.

Getting Help in Courses

If you are struggling in a course, we recommend that you speak or email with your professor as soon as possible.  You may also reach out to your academic advisor who can give you information about additional resources to assist you.

GCCIS offers tutoring for all introductory courses. Please visit the tutoring center website information page here.

If you believe you need additional accommodations, you are advised to contact your instructor. You may also contact Jennifer Burt at jnbvcs@rit.edu with any questions about our mentoring services.

In addition to all of the usual support services RIT and the CS department offer, the CS theory faculty are offering their own tutoring service, featuring very qualified CS students. The tutoring takes place in the CS student center (70-3660).  More info and tutoring schedule can be found here.

In lab you can get help from the lab assistants on duty. They will be found in 3650 (Graduate Lab) or 3560 (Capstone Lab).  Help for common issues can be found in the FAQs on the Technical and Online Resources page.

You may ask/email your academic advisor for information about co-op requirements and related matters or find additional information here.

Scholarships and Annual Awards

The Computer Science Department awards scholarships once per year in the spring semester.  Students will be notified early in the spring semester dates for application submission, specific awards and deadlines for applications.

To apply for a scholarship, please fill out the Qualtrics survey by using the link located here.

Scholarships will open on February 12, 2024. Deadlines for the 2024 scholarships are March 1, 2024. Incomplete applications will not be considered.

Patrick P. Lee Computer Science Scholars at RIT (Up to four $12500 awards)

Established as a pilot program in 2024, Patrick P. Lee Foundation Scholarships support Computer Science students who are close to graduation but are experiencing financial barriers to completing their degree.  Applicants must be U.S. citizens majoring in Computer Science, and must be within four academic semesters of graduation.  Other requirements include a cumulative GPA of at least 2.8, demonstrated financial need, and demonstrated community, civic or philanthropic engagement. Preference is given to residents of specific western New York counties. Students who are eligible will be invited to apply.

Richard T. Cheng Endowed Scholarship (Four $3000 awards)

Established in November of 1997 by Dr. Richard T. Cheng, current President of ECI Systems & Engineering, and former Chair of Computer Science at RIT from 1973-1976. Applicants must be majoring in Computer Science, be in at least their second year of study, demonstrate academic achievement (at least a 3.0 overall GPA and a 3.2 GPA in Computer Science Courses), and financial need. Undergraduate students only.

Kenneth and Margaret Reek Scholarship (One $800 award)

Established in 1999 by Ken and Margaret Reek, both alumni of RIT's Computer Science Program and former faculty members in the Computer Science Department. The scholarship was established to assist students who might not otherwise be able to attend RIT. Applicants must be majoring in Computer Science, demonstrate academic achievement (at least a 3.0 overall GPA and 3.2 GPA in Computer Science courses), and financial need. Undergraduate students only.

Carl Reynolds Computer Science Scholarship (Two $2000 awards)

Established in 2008 in memory of Carl Reynolds who was a member of the faculty of RIT's Computer Science Department from the fall of 2004 until his death in the spring of 2008. Applicants must be majoring in Computer Science and in their first year of study. The award recognizes students who demonstrates academic achievement (at least a 3.0 GPA overall and a 3.2 GPA in Computer Science courses) and who combines academic accomplishments with a willingness to help and mentor fellow students. Undergraduate students only.

Outstanding First Year Student Scholarship (One $2000 award)

The outstanding first year student scholarship recognizes a first year Computer Science major who maintains high academic standards while also contributing positively to the culture within the Department. The award is given annually to an undergraduate student majoring in Computer Science in their first year who has earned an overall GPA 3.5 or better.

Outstanding Graduate Student Award (One $2000 award)

The outstanding graduate student award recognizes a Computer Science graduate student for maintaining high academic standards (at least a 3.5 overall GPA) and for making significant contributions to the Department and the Computer Science Graduate Program.

Outstanding Fifth Year Student Award (One $2000 award)

The outstanding fifth year student award recognizes a fifth year Computer Science student for maintaining high academic standards during his or her studies at RIT and has made significant contributions to the department. The award is given annually to a student who has maintained a 3.0 GPA or better average during his or her five years of study.

Alumni Scholarship (One $1000 undergraduate award; one $1000 graduate award)

The Alumni Scholarship recognizes one undergraduate and one graduate Computer Science student for maintaining high academic standards (at least a 3.5 overall GPA) during their studies at RIT and who have made significant contributions to the Computer Science Department. The award is made possible by generous donations from Computer Science alumni.

David and Melissa Egts Scholarship (One $2600 award)

Established in 2018 to provide scholarship support to RIT students enrolled in Golisano Collage of Computing & Information Sciences. Selection for this scholarship will be based on: full-time undergraduate enrollment in The GCCIS, matriculation in Computer Science degree program, preference for female students, GPA 3.0 or higher, demonstrated financial need.

Eligibility - Applicants must be registered for at least one non-FTE course during the Spring term to be considered for any scholarship.

Technical and Online Resources

Many of your CS questions can be answered using the links below.  If you have additional concerns or questions, please contact GCCISIT via email at gccisit@rit.edu or for in-person requirements, you may visit the GCCISIT main office at GOL-2120.

Account Issues
  1. I do not remember my Computer Science password! Students can go to https://knockknock.cs.rit.edu and authenticate with your RIT password. From there you can change your Computer Science password. 

  2. What is my quota limit? 5 GB is the default quota limit.

  3. How can I tell how much disk space I am using?  You can use the `myspace` command which reports your disk utilization and your quota allocation.

  4. My class requires more space than I have available. How can I get my quota increased?  Talk to your Professor about your quota needs. They will request a quota increase from the System Administrators

  5. Okay, I am in my account, and it is over quota. What do I do?  You can run ncdu to see what the largest files and directories in your home directory are. There is also a script called rm-junk that goes through your home directory and looks for caches and core files and asks you if you want to remove them. Just type "y" at the prompt and it will delete them for you.

  6. I have changed some of my dot files, and now I have problems with my accountYou can get a copy of the default dot files (.bash_profile, .cshrc, .login, etc.) from /usr/local/pub/X/

  7. Can I change my shell? Currently you can not change your own shell, but if you want your default shell changed from bash you can contact the System Administrators (gccisit@rit.edu) and they can change it for you.

  8. How do I change my password? You can change your password with the command passwd. This is available on any DCS linux machine.  A reference document about good password practice is found in the HOWTOs section below.

  9. Help! I deleted some important files in my account! How do I get them back? If the files existed overnight, they can be backed up from that point in time. Send mail to gccisit@rit.edu with the file name(s), the last time it was modified, and where the files existed in your directory.

  10. I have a project that will take several hours of compute time, but I don't want to sit around and wait for it -- what can I do?  The best way to do this is to no-hup the process (see the nohup man page) so it continues to run after you log out, and nice the process (see the nice man page) up to 20.

  11. Can I connect to the CS machines remotely?  You can use ssh to connect to any of the linux machines in the lab. Available tools for remote connection to the lab machines.  See the HOWTOs section below for instructions on using these tools.

  12. Can I remotely run programs that require a GUI interface? Yes you can. Please see the series of HOWTOs for various client operating systems.

  13. How do I copy files from my own machine to my CS account? You can use a USB flash drive. You can also use various tools to securely connect to the CS lab machines. See the HOWTOs section below for instructions on using these tools.

  14. Does the CS Department provide FTP access?  ftp-like access is available through sftp on any of the lab machines.


Software and Configuration
  1. Firefox won't start.  First make sure you're not already logged into another CS computer. You can only run Firefox on a single machine at a time.If that's not the issue, then you will need to manually remove the lock file for the browser. We have a script called fixfox that you can run. It will remove the lock files for you. When Firefox or Chromium crash, they will leave these files in your account which will keep you from opening them on any CS computer. The files you need to remove are:

  • Firefox

~/.mozilla/firefox/????????.default/.parentlock
~/.mozilla/firefox/????????.default/lock
where ???????? are random numbers and letters unique to your account (i.e. wed4pa82)


Mail

As of July 2022, the Department of Computer Science no longer provides mail. Your RIT mail account is where information will be sent to.


Window Managers
  1. What is the default window manager on the CS systems? The default window manager is Gnome .

  2. What other window managers are available?  MWM, vtwm, fluxbox

  3. How do I set up my window manager to be something other than Gnome? There is a series of HowTos for using window managers in the HOWTOs section below.


 

 

Account

Password Policy Documentation

You can find RIT's offical password policy here.

Changing your DCS password

You can go to https://knockknock.cs.rit.edu/ to change or reset your DCS password. You can authenticate with your DCS password to change it with the first green button.

If you do not remember your DCS password, a student can authenticate with their RIT username/password with the second green button.

The page you are directed to will allow you to change your DCS password to one that fulfills all of the password requirements. When the "update password" button turns green you have fulfilled the required difficulty and you may set your DCS password.

Any problems or questions you have can be sent to gccisit@rit.edu

Password Strength

At this time the Department of Computer Science requires you password to be:

  • At least 8 characters long, 12 or more is recommended.
  • Passwords must be made up of 3 of 4 character types (first and last characters do not count towards the total):
    1. uppercase letters
    2. lowercase letters
    3. numbers
    4. punctuation characters
  • not containing any dictionary words if it is less than 12 characters long.

Remote Connections

Using PuTTY

Getting PuTTY

PuTTY is a free SSH client available from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html From that page you can download either just the putty.exe program or a full set of SSH utilities including file transfer and key generation. Note that PuTTYtel will not work to connect to the CS department, as we do not support telnet connections.

Quick Connection

When you launch the PuTTY.exe program, it shows a configuration screen with many options. However, most of them can be left at their defaults. To connect to a CS department computer, enter the fully qualified domain name (example: newyork.cs.rit.edu) in the text box labeled "Host Name (or IP address)". You can then click the "Open" button to connect. The first time you connect to a host, it will display a security alert. You can usually click "Yes" and it will remember the host key and not prompt the next time you connect (see below for more details). After it connects, it will prompt for your username and password.

When connecting to a host for the first time or for the first time after a host's SSH keys (these are not your personal keys, but the keypair that identifies a particular computer system) have been rebuilt, you will be prompted with a message similar to:

The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's rsa2 key fingerprint is: ssh-rsa 1024 03:90:56:97:64:e4:e3:24:12:ed:f8:a8:7e:04:1f:46 If you trust this host, hit Yes to add the key to PuTTY's cache and carry on connecting. If you want to carry on connecting just once, without adding the key to the cache, hit No. If you do not trust this host, hit Cancel to abandon the connection.

In general it is perfectly safe to hit Yes at this prompt. If you know the SSH keys on a host have not changed (this is most applicable to users running Unix at home) but you are being prompted with a message similar to the above, please contact the Admins immediately.

Saving a Session

To avoid having to type in a host and your user name every time, you can save the settings as a session. To do so, enter in a host name and set any additional settings (such as username under the "Connection/Data" category), then enter a name under "Saved Sessions" (in the main "Session" category) and press "Save". From then on, you can simply double-click the session name in the list to connect to that machine. You can use the "Load" button to bring up the settings in order to change them and then save them again under the same name or a new one.

Generating SSH Keys

PuTTY also comes with a program named PuTTYgen to generate SSH public and private keys. You can use these keys to authenticate instead of using your password.

Using SSH/SCP/SFTP

General Disclaimer

This is not a guide on how to use SSH/SCP/SFTP or any mail or news programs. There are far too many programs to write a comprehensive guide on each. Instead, this will serve as a general usage and configuration primer for the programs most readily available in the Department of Computer Science at R.I.T. All systems in the Computer Science Department are configured to use SSH2 only. There are a number of well-documented security vulnerabilities of SSH1 that SSH2 is immune to, so fallback to SSH1 has also been disabled.

Valid machines for general use are all student labs (ICLs 1-4) and the general access SMPs. When you are in a lab you will see name tags on each system; simply append '.cs.rit.edu' to the name for the fully-qualified DNS name. For example, the host idaho is really idaho.cs.rit.edu.

One machine not in labs that is a valid connection point is glados. This is a larger system available for general computing use, living in the Computer Science machine room.

When connecting to a host for the first time or for the first time after a host's SSH keys (these are not your personal keys, but the keypair that identifies a particular computer system) have been rebuilt, you will be prompted with a message similar to:


The authenticity of host '{hostname} ({host IP address})' can't be established.
RSA key fingerprint is 03:90:56:97:64:e4:e3:24:12:ed:f8:a8:7e:04:1f:46.
Are you sure you want to continue connecting (yes/no)?


In general it is perfectly safe to accept this prompt. If you know the SSH keys on a host have not changed (this is most applicable to users running Unix at home) but you are being prompted with a message similar to the above, please contact the Admins immediately.

Authentication with SSH

SSH supports multiple user authentication techniques. The two employed by the CS department are password-based and public/private key-based.

Using Password Authentication

This is the default technique; simply follow the directions for connecting to a CS host below. When connecting, you will be prompted for your password.

Using Public/Private Keys for Authentication

This technique requires the building and distribution of SSH keys.

Note that this method is generally not available for Windows systems. The password authentication technique is sufficient.

The command ssh-keygen should already be in your path.

The default behavior of the SSH key generator is to build 1024-bit RSA keys for SSH verison 2.

Building & Using SSH Keys

  1. At the Unix shell, enter the following command:

    $> ssh-keygen -b [1024 | 2048] -t rsa {enter}

    where you choose either 1024- or 2048-bit key length (longer keys = greater security at cost of greater computation time and effort).

    When prompted for a passphrase, it is important that you not leave this blank. It is also best to not make this passphrase the same as your password. Using your password as the key passphrase is essentially identical to using password authentication.

    This will create a file pair ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub. The id_rsa.pub file is your public key, the file without the extention is your private key.

  2. At the Unix shell, enter the following command:

    $> ssh-keygen -b [1024 | 2048] -t dsa {enter}

    where you choose either 1024- or 2048-bit key length (again, longer keys = greater security at cost of greater computation time and effort). Also, note the algorithm difference (the first invocation generated RSA keys, this builds DSA keys).

    When prompted for a passphrase, it is important that you not leave this blank. It is also best to not make this passphrase the same as your password. Using your password as the key passphrase is essentially identical to using password authentication. For simplicities sake, this can be the same as your RSA keypair, but additional security is gained (in the sense that for full compromise of your keypairs it would require crack two passphrases, not just one) by making the two passphrases different.

    This will create a file pair ~/.ssh/id_dsa and ~/.ssh/id_dsa.pub. The id_dsa.pub file is your public key, the file without the extention is your private key.

When you distribute keypairs keep these points in mind:

  • In the CS department, all systems have a common filesystem. This means that in effect, for every two CS systems you move between, your SSH keys are already distributed.
  • File system permissions on both the public and private keys should be 0600 (readable and writable by you only).
  • If you want to connect to the CS systems from home, generate keys at home the same way as above, and simply copy your public key file to the CS systems. This is not a simple copy; it is important to follow these directions:
    • Say on the CS systems you have your public/private keypairs. When importing a new public key, save the new public key as a separate file.
    • Enter the following command to import a new public key:

      $> cat {new public key file name} >> ~/.ssh/authorized_keys {enter}

    • You should now be able to hop between hosts and authenticate using your SSH passphrase.

Now when using SSH you will not be prompted for your password but rather the passphrase you entered when generating the keys. This can be further simplified by using SSH agents. Depending on the authentication method chosen by the SSH handshake process, this is using either RSA or DSA keys; if your passphrase is different for each keypair, this will matter. SSH will default to RSA keys first, and then moving to DSA keys.  For more on this, see the Resources section.

So, Instead of My Password I Have a Passphrase -- Why Bother?

This point could be argued either way, but perhaps the most appropriate point is separation of authority. If one password is used everywhere, this is a single point of failure. If you use a password or second passphrase to log onto the CS systems, and then a different passphrase to move between the department (this scenario as follows: connecting to the CS department from home with SSH keypair A or via password authentication, and using SSH keypair B within the department), this is two levels of security.


General Notes on Authentication

Keys are the prefered method of authentication. As mentioned above, RSA keys are first tried, then DSA keys. If keys are non-existant or fail authentication (incorrect passphrase, etc), password-based authentication is used.

 

Connecting to a Machine Via SSH from OS X/Unix

Provided you have a CS account, from a Unix shell enter either of the following commands at a shell prompt:


$> ssh {username}@{machine name} {enter}

or

$> ssh -l {username} {machine name} {enter}
 

where {machine name} is either a fully qualified DNS name (eg. tin.cs.rit.edu) if you're connecting from outside the department, or just the hostname (eg. tin) if you're connecting from within.

If you're connecting two systems on which you have the same username, (ie, between two CS systems) you may ommit the {username} field; it defaults to the username you are currently using.

Use the default SSH port (TCP port 22) when connecting.

This technique works equally well for any other Solaris, Linux, or other Unix variant Operating System.

 

Connecting to a Machine Via SSH from Windows

Prerequisites:

  1. CS account
  2. SSH client for your version of Windows; suggested clients are:


Configure your client to connect using your CS username to a valid CS Department host. As with the Unix variants, your host specification is either a fully qualified DNS name (eg newyork.cs.rit.edu) if you're connecting from outside the department, or just the hostname (eg newyork) if you're connecting from within.

Use the default SSH port (TCP port 22) when connecting (there may be an option to change this value; leave it as is).

Getting a Windowing Environment -- When a Shell Isn't Enough

The above products will provide a secure shell, which does not permit multiple windows (eg, you won't be able to start emacs and maintain your shell window). If this is a desirable feature you will need to have an X Server running on your local machine. 

  • Use xming for GUI connections on Windows.
  • Use X11 for GUI connections on OSX.

Also note:

  • linux machines recommend you use 'ssh -X username@hostname' to connect.
  • OS OX machines need to use 'ssh -Y username@hostname' instead.

Using SCP and SFTP

These programs operate as a subset of the SSH package, and therefore are restricted to the hosts and protocols as mentioned above.

One Important Caveat About SCP and SFTP:

If excessive information is echoed to the terminal during login (from the .login or .bashrc/.cshrc files), these two programs will not work. RationalRose, as used in CS4 and CS for Transfer classes, also causes these programs to fail as they echo information to the terminal window.

Simply commenting out the appropriate lines in these files will allow SCP and SFTP to operate cleanly.

In your .cshrc or .bash_profile file, a line similar to:

source /usr/local/RationalRose/rs_setup.csh


exists; inserting a pound sign (#) before this line will comment it out and prevent its execution.

SCP

scp works like the unix 'cp' command, except it copies from between hosts.
A simple syntax (man scp for more options):

scp [ [user@]host1:]file1 []... [ [user@]host2:]file2

If user or host is omitted, it assumes your userid and local host.
example:

scp file1 username@holly.cs.rit.edu:/full-path-to-home/file2

This will copy file1 from your current machine and directory to /full-path-to-home/file2 through the machine holly. You will be required to authenticate as username for the process to succeed.

SFTP

SFTP works the same as traditional ftp, except over a secure connection. To use it, just connect to any of the lab machines.
Example:

sftp newyork.cs.rit.edu

After authenticating, you will be connected to your home directory. See the man page for sftp for more details.

Advanced: Using ssh-agent from OSX/Unix

Using ssh-agent can greatly increase automation when working on a distributed project while continuing to be secure. It allows you to use a passphrase protected ssh generated key without having to type in the password each time. This is done by starting a process that will act as a password proxy for your current shell session. This process is separate from the shell you invoke it from: it will be important that you kill that process before you close the shell. Otherwise, you will leave orphaned ssh-agent processes behind
To get ssh-agent to work for you, you must already have ssh keys generated.

  1. Open up a shell window on your Unix machine.
  2. Depending on what your default shell is, you will need to start ssh-agent
    • If using bash, dash, or sh, eval 'ssh-agent -s'. (the ' is important here)
    • If you use csh, tcsh, eval 'ssh-agent -c'
    This will take the output of the ssh-agent command as commands to be run. In this case, they will be values set in your shell. This will give your current shell session the information it needs to use the ssh-agent as a proxy.
  3. You will be able to now add an ssh key to the agent for proxy. ssh-add ~/.ssh/id_rsa (or id_dsa, or whatever name you gave your ssh keys). It will ask you for the passphrase. Type this in to unlock the key and add it to the agent.
  4. You can now use ssh to reach other machines with that key, and not require you to type in that passphrase each time.
  5. NOTE: When you are done with the current shell and logging off, please kill the process of the agent. It can be found typing echo $SSH_AGENT_PID
  6. NOTE: Only the shell that has the SSH_AUTH_SOCK and SSH_AGENT_PID variables set will have access to the agent. Unless you chose to add them by hand to other shell sessions, only the shell session you ran eval 'ssh-agent -s' will have a connection to the agent.

Using X11 with O S X

Installing X11

How to intall X11 depends on what version of OS X you have installed:

10.2 and earlier
No official versions of X11 exist for these versions.
10.3 (Panther)
X11 is available from Apple's website
10.4 (Tiger)
X11 is an optional installation from the Tiger DVD.
10.5 (Leopard) and later
X11 is installed by default.

Running X11

Recent versions of OS X will automatically launch X11 when a program attempts to connect to the X server. Open Terminal.app and try running xterm. If that doesn't work, you'll need to start X11 manually. It can be found in /Applications/Utilities.

Using X programs from the CS machines

Using the Terminal or an xterm, use ssh -Y username@hostname to connect to a CS machine. Once logged in, you may use programs as normal. For example running emacs should open the emacs window on your computer.

Before going any further, you should have downloaded Putty already. 

Using/Getting Xming

  • Go to straightrunning.com/XmingNotes to download Xming.
  • Scroll down to Releases and under Public Domain Releases, click on Xming to download.
  • Run the .exe setup file
  • If you run into firewall problems, click “Allow access” to continue
  • Continue through the installer until “Finish”

Configure Xming for the first time

  • First, type and click XLaunch from the start menu to launch Xming
  • Choose display setting and display number and click Next
  • Click “Start a program” and Next
  • Chose “Run Remote” “Using Putty (plink.exe)”
  • Enter the IP address of the machine to which you want to connect. For Glados, for example, enter 129.21.30.38 or glados.cs.rit.edu
  • Enter your RIT username in “login as user” box
  • Enter your CS password in “Password” box
  • Click Next and Next
  • Under “Configuration Complete” Click on “Save configuration” so you don't have to launch xming each time you want to connect to the same machine
  • Click Finish

Configure Putty with Xming

  • Now, run Putty
  • Under Putty configuration window, select “Connection” on the left panel
  • Under SSH click on X11 on the left hand side menu
  • check “Enable X11 Forwarding”
  • Now, click “Session” at the very top of the left hand side menu. Scroll to the top if necessary
  • Fill in “Host name” box: IP address of machine
  • Makes sure the “Port” number is 22
  • Enter a name for this session under “Saved Session” box
  • Click on “Save” to save session 
  • Then click Open to connect
  • You will be then prompted to enter your computer science username and password
  • Enter the name of Linux app you want to use, for example, libreoffice

Student Groups

Computer Science House, founded in 1976 is one of the oldest and most popular Special Interest Houses at the Rochester Institute of Technology in Rochester, NY. Located on the third floor of Nathaniel Rochester Hall, CSH provides a revolutionary living environment for over fifty students and a gathering place for many more members who live off-floor.

The purpose of the Computer Science Community (CSC) is to serve as a community for learning, support, friendship, social activity, and mentorship for Computer Science students. To receive information about upcoming CSC events, students are encouraged to join the mailing list by adding their email address here.

Women in Computing at RIT is a group of students, faculty, staff, and alumni who are committed to the success and advancement of women and all gender minorities in computing.  WiC provides a forum for issues pertaining to women in computing, networking and mentoring opportunities, professional development, leadership opportunities, technical skill advancement, and community Outreach

For graduate Students there is Gradlife Student Council

Student Employment

Job descriptions, forms and requirements of the positions that the Computer Science Department typically has available are shown here.

Teaching Assistants (TA) instruct and grade labs, hold office hours, and teach help sessions, and special recitation sessions to help to prepare CS students for upcoming exams. Graduate Assistants (GA) provide support to the Systems Administrators, troubleshooting systems and printer problems, assisting faculty and students with issues related to systems, servers and accounts and other related duties as assigned. The Lab Manager will encompass many things in the areas of lab operation and the interviewing, selection, and scheduling for lab assistants, all related to hiring and time card paperwork and other related duties as assigned. For an application for these positions click here.

Student Lab Instructors (SLI) assist faculty in the delivery and grading of a programming based laboratory. The job requires you to work an average of 10 hours a week for 15 weeks. For a complete job description, including requirements for the position, click here.

To apply, please fill out an
SLI Job Application. Completed applications can be emailed to csstudentemployment@rit.edu.

Graders assist professors by grading homework assignments and/or projects (NOTE graders do not grade exams). The amount of time that you will spend grading varies but it will typically not exceed 10 hours per week.

If you are interested in working as a grader, take a look at the schedule of courses for the term in which you want to grade. Find those courses you are qualified to grade for and make appointments to see the professors teaching those courses. Tell them you are interested in grading for them and what course you would like to grade. Different professors have different requirements for graders. Minimally they will expect that you are a student in good standing and that you have taken the course you want to be a grader for. Most professors start looking for graders at the beginning of the term or towards the end of the previous term.

When a professor agrees to hire you as a grader, they will help you to fill out a student grader contract. Once you have completed this form and it has been signed by the professor, email it to csstudentemployment@rit.edu and the CS Office Staff will help you complete the necessary paperwork so that you may be hired.

We hire students to work in the CS main office. Students working in the office help out with various clerical tasks such as answering the phones, making copies, helping staff setup events, and so on. The number of hours that you will work varies but your hours will be sometime during the normal workday (Monday through Friday 8am to 4:30pm). Note that we do not typically hire students enrolled in any of the CS programs to work in the office.

If you are interested in working in the office, come to the main CS office (GOL 70-3005) and the office staff can help you out with the application process.

Students in the following majors may not apply for the clerical positions: Computer Science, Software Engineering, Computer Security, Computational Math and Computer Engineering.