The Computer Science Capstone


The Capstone Experience is a mandatory part of every CS student's graduation requirements at Pitt. In this article, we'll go over the possible options you have for completing this requirement, and more importantly how to complete the capstone you want.

You'll see that the steps to completing your capstone are pretty tricky/unclear to navigate, so that's why we made this guide.

What is a Capstone?

Great question. The Capstone experience is a required part of the undergraduate CS degree here at Pitt designed to make you leave with at least one major 'real world' CS experience. These can vary, from interning/co-op'ing at a company, to doing research with a professor, to completing a hefty team project with other students akin to real-world coding.

Co-Op vs Internship?

From Virginia Tech's career website

"Co-op" usually refers to a multi-work term agreement with one employer; traditionally with [several] work terms alternated with school terms. Co-ops are traditionally full-time, paid positions.

"Internship" usually refers to a one-term work assignment, most often in the summer, but not always. Internships can be full- or part-time, paid or unpaid, depending on the employer and the career field.

Note - We almost always suggest avoiding unpaid internships in CS, but that's for a different article.

Capstone Options

  1. CS 1900 - Internship
  2. CS 1906 (Formerly ENGR 1093) - Co-Op
  3. CS 1950 - Directed Research
  4. CS 1980 - Capstone Project

CS 1900 - Internship

First things first, let's go over the most commonly used Capstone course.

*Minor note - this assumes you're trying to get a SUMMER internship approved. If you're trying to get a mid-semester internship approved, the steps will be similar except for when you enroll in the CS 1900 course - talk to your advisor for any clarification you need*.

In order to qualify as eligible to enroll in the CS 1900 Capstone Course, you must be a declared CS major - this requires you to have a C or better in all 0400-level classes - CS 0401, CS 0441, CS 0445, CS 0447, and CS 0449. Additionally, you'll need to have Junior academic standing (at least 60 credits completed).

Here's the description of what kind of position qualifies as eligible for CS 1900.

Obtain a relevant technical job / internship from a legitimate employer. The job may be full-time or part-time (minimum 10 hours / week; 12 or more weeks) and it may or may not be for pay. The work should directly involve skills / abilities that were either learned in CS courses or that otherwise relate directly to the CS degree. Examples include software development, software testing, database administration, network administration and other jobs. If you are unsure whether a potential job will qualify for a CS academic internship or not, see John Ramirez to discuss the job prior to accepting it. For assistance in finding a job you may consult with Career Services.

So you've got a position like this locked up. Congratulations! What now?

Fill out the Undergrad Internship Application Form.


Once you've finished that form, you'll get 2 more forms automatically emailed to you (contact Alka Singh if you don't get them). If you love forms and bureaucracy, you're going to love the capstone.

Now, you need to do two things:

  1. Get someone from your company to fill out the employer form
  2. Secure a faculty sponsor

Employer Representative

Ask your employer representative (this can be your manager, for me it was my company's tech internship program lead who contacted my manager for a job description) to fill out the employer internship form. In that form, they'll provide a description of what you'll be doing, and you'll get a copy of what they entered automatically emailed to you. You'll need this description for your...

Faculty Sponsor

This can be any full-time professor in the CS department. You don't need to know them exceptionally well to ask them to be your faculty sponsor - they've been asked many times and are aware of how little (if any) work it takes to be your faculty sponsor. They need a description on what you'll do at the internship, so use that description that the company gave you if/when they ask for it. It's in your best interest to make the process easy for them too, so come prepped with an introduction about yourself, where you'll work, how long, what you'll be doing, etc.

The entire faculty sponsor part of this process is a pretty outdated rule that is rarely followed up on once they sign off on that form, so don't stress about it - just be proactive and get it done. According to the CS Department rules (not us) you should be super proactive and "meet/communicate with your faculty sponsor regularly to fulfill the requirements as stated in the CS 1900 Faculty Sponsor Form".

Great, I did all that. Now what?

You said you loved forms and bureaucracy earlier, right? Awesome!

Once you get everything there done, then Alka Singh, the Director of Experiential Learning at the SCI, will send you an email with the go-ahead to apply for a permission number for CS 1900.

Screenshot this email, convert that screenshot to PDF (there are sites online that do this for you), and attach it to a permission number request form that you can create here. Log in with the same credentials you use to sign into MyPitt.

When filling out the form, make sure to fill out all the information requested (make sure to select the semester you need), and when you get to the section that says "Why are you unable to register for the course above?", select 'Department or Instructor permission is required'.

It'll automatically create a "Choose File" button that you can attach your email screenshot PDF to. Hit submit, and wait for an email with a permission number to be sent to you. Once you get that email, use that permission number when enrolling for that course in PeopleSoft. You're finally done.

What's the class like?

It's going to be one of the hardest classes you take in undergrad. Just kidding, you have to create a presentation on what you did in your internship and that's it. All that just to take a class that you barely do anything in? Yes. Welcome to the real world.

CS 1906 - Co-Operative Program (Co-Op)

This one is less complex than CS 1900 but still pretty confusing. For this one, at first, you do not need to be a declared CS major with 60+ credits, but you should be a rising sophomore.

When you eventually submit the application to get this approved as your capstone, you DO need to be a declared CS major with Junior standing (60+ credits completed).

Fill out the steps listed by the engineering school here. It's important to note that co-ops are not guaranteed - you can sign up for the program and still not find a job, but it's quite unlikely.

Once accepted, you can do your 2 rotations (you'll enroll in a class that designates you as a student who is doing a co-op, and upon successful completion of the rotation you'll get an S grade.) Once you do that, you need to write a summary paper on your experience.

Check out the CS department's page on the Co-Op HERE where the requirements are clearly listed out. It's pretty rare for something to be so easy to understand on the CS department website (60% joking).

This capstone can seem a bit confusing to manage since it's between two schools, but it's really not that bad. It's a great opportunity to stack up your resume before you graduate with multiple work experiences in real-world settings.

Important note - for the CS major (SCI), you're expected to do 2 rotations of the co-op. For the engineering school, they are required to do 3 rotations, so you might hear the number 3 being tossed around a lot - ignore this, you need 2. The engineers need a little more time (80% joking).

CS 1950 - Directed Research

This one's certainly more reasonable. You do research with a CS faculty member, and all you need to fill out the CS 1950 Learning Agreement form.

Where's that form? Good question, it's not online, and as of the time of this article, the SCI office where you can get the form is closed due to COVID-19.

Thanks to a helpful Pitt CSC member, Avi Glozman, we have a digital + fillable version of the form available for you HERE.

This embodies what we're trying to do with this wiki, help out and give back to the next generation of students, so thank you again.

You and your faculty directing the research need to fill out that form together. Get an email screenshot of your faculty approving that the form was filled out properly and convert it to PDF.

Finally, attach that screenshot PDF + the filled out CS 1950 Learning Agreement Form to a permission number request form that you can create here. Log in with the same credentials you use to sign into MyPitt.

You'll get a permission number via email, and you can then register for the CS 1950 course - spoiler alert, it meets in the same room and time as CS 1900, so you don't do anything besides make presentations about your research experience while hanging out with other researchers/interns.

CS 1980 - Capstone Project

This is by far the easiest process to sign up for a Capstone.

  1. Be a declared CS major (CS 0401, CS 0441, CS 0445, CS 0447, and CS 0449 completed with a C or better + academic declaration of major made (talk to your advisor for this one)).
  2. Have a Junior+ standing (60+ credits completed)
  3. Complete CS 1501 and CS 1550 with a C or better.
  4. Enroll in the class the same way you'd enroll in any other class, and don't skip.

That's it!


There you go, a rundown on what the capstone is, the different types of capstones, and how to finish each of them. We hope this helped!

As with all things, the process becomes significantly easier if you're proactive, so we can't stress this enough.

Last updated: Jul 14th 2020