6 minute read

So you already know how to program: can you skip CIS 1100formerly CIS 110 and go straight to CIS 1200formerly CIS 120? If you have the appropriate AP exam scores then of course the answer is yes. For others, this is far from a straightforward question!

Before we get to the answer, let’s start with a bit of background. The CIS curriculum is designed to start with CIS 1100formerly CIS 110, an introductory programming class. We welcome students who have no programming experience - you will learn everything you need to know in CIS 1100formerly CIS 110. However, sometimes incoming students indeed have sufficient programming experience from classes or projects that CIS 1100formerly CIS 110 isn’t the right use of their time. So we do have an officially-sanctioned way for students to skip CIS 1100formerly CIS 110 and to start directly with CIS 1200formerly CIS 120.

However, skipping CIS 1100formerly CIS 110 is a bigger decision than it may appear at first. CIS 1100formerly CIS 110 lays the foundations that most of the following courses depend upon. If you skip CIS 1100formerly CIS 110 but later realize that your programming skills were not as good as you thought, you may find yourself in a tricky situation. If you fail CIS 1200formerly CIS 120, you have to repeat it and cannot move on to the next courses in the intro sequence; this forces you into a kind of “holding pattern” where the only courses you can take are non-CIS courses. You might also get a bad grade in CIS 1200formerly CIS 120, which will likely compound into a hard time in many of the following courses (CIS 1210formerly CIS 121, CIS 2400formerly CIS 240, …) unless you work very hard to catch up on your own. Keep in mind that you cannot repeat courses in which you have received a passing grade. Thus:

We strongly recommend against skipping CIS 1100formerly CIS 110, unless you are very confident that you already know ALL of the material it covers

How should I decide whether I can safely skip CIS 1100?

You have probably heard many of your peers, and perhaps even your OPA, recommend that you skip CIS 1100formerly CIS 110. However, please keep in mind that everyone’s situation is different. The OPAs tend to be among our strongest students, so it is entirely possible that they skipped CIS 1100formerly CIS 110 and did very well, or that they found it easy or “boring” if they did take it. You should make your decision based on your own circumstances.

Start by looking at the CIS 1100formerly CIS 110 syllabus, and try doing some of the homework problems from the second half of the class. Do these problems seem trivial to you? Do you find yourself smiling at how “easy” the topics on the syllabus are? If so, you may be able to start with CIS 1200formerly CIS 120. But if there are homework problems that seem tricky to you, or if you see some topics on the syllabus that you are not as comfortable with, it may be better to start with CIS 1100formerly CIS 110.

Even if you have some prior programming experience, keep in mind that CIS 1100formerly CIS 110 is taught in Java, and that Java is the programming language that many higher-level courses will expect. Strong programmers are often able to transfer their skills from one language to another, similar language (say, from C++ or C# to Java), but if your programming experience is in a language very different from Java you may be better off taking CIS 1100formerly CIS 110.

If you are not sure what the best decision is, you should start with CIS 1100formerly CIS 110!

This is the “safe” decision: if you knew the material better than you initially thought, CIS 1100formerly CIS 110 will be an easy class for you; you can ace it and give your GPA a little boost. Also, if this is your first semester/year at Penn, it may make the transition to Penn a little bit easier, since your course load won’t be as difficult and it can help you balance your time with your other classes and extracurricular activities. But if it turns out you were not as comfortable with the CIS 1100formerly CIS 110 material as you thought you would be, then CIS 1100formerly CIS 110 will bring you up to speed and make sure that you have a strong foundation that the higher-level classes can build on.

You can also discuss your plans with your academic advisor, or, if you have specific questions, the CIS 1100formerly CIS 110 or CIS 1200formerly CIS 120 instructors.

Skipping CIS 1100

If you have read the rest of this article carefully and have come to the conclusion that starting with CIS 1200formerly CIS 120 is right for you, all you need to do is enroll in CIS 1200formerly CIS 120. There is no need to get a waiver or permission from the department. However, you will at some point need to take another CIS or NETS Engineering class later and count it in place of CIS 1100formerly CIS 110.

No retroactive credit

Taking CIS 1200formerly CIS 120 will not grant retroactive credit for CIS 1100formerly CIS 110.

Some departments (like Math) offer retroactive credit for skipping an introductory course and taking a more advanced one instead. If you do well enough in the advanced course, you get a BOGO deal and get a CU for the introductory course as well as the CU for the advanced course. Unfortunately, CIS does not have this policy.

Cannot take CIS 1100 later

Once you have taken CIS 1200formerly CIS 120, you cannot go back and take CIS 1100formerly CIS 110 in a later semester. You must take a CIS or NETS Engineering class in its place, as described above.

I am, like, really good at programming. Can I skip CIS 1200?

We get this question a lot, and we almost always recommend against it. While CIS 1100formerly CIS 110 truly is an intro programming class, CIS 1200formerly CIS 120 also contains many other aspects, such as functional programming and design patterns. These are just as important for the higher-level classes as the programming skills. Just because you are an excellent programmer does not necessarily mean that you also know about these other aspects.

If you are absolutely positive that you already know all of the material, you can contact the CIS 1200formerly CIS 120 instructor. If you can convince them, you can submit a Core Requirement Substitution Form and substitute another related class for CIS 1200formerly CIS 120. Keep in mind that the instructor must sign off on this form, so please do not submit it unless you have already obtained approval from the instructor! These requests are approved only very rarely (in most semesters, we see zero approvals), simply because it is so unusual that someone would have mastered all of this material entirely on their own. If you know the material from another class (e.g., if you have transferred to Penn from another school), you should file an XCAT request instead to transfer the credit to Penn.

1styear advice