Students who have a bachelor's degree in another discipline and wish to get a computer science degree have two options. Which one is best for you depends on your goals and your experience. You may enter the post-bac program and get a second bachelor's degree. Or, you may make up necessary background and enter the graduate program.
In making up background to enter the graduate program, you do not necessarily need to earn formal credits in the background subjects. You must just convince the graduate admissions committee that you have the needed knowledge.
You must demonstrate knowledge of the core curriculum of an undergraduate CS degree in order to be admitted to the graduate program. The core curriculum includes basic background in high-level language programming, algorithms, and data structures, computer hardware organization and architecture, operating systems, discrete mathematics, logic, and computability, plus a year of calculus. The purpose of this requirement is to ensure that you can succeed in graduate coursework. You may already know some of this material from previous coursework or from work experience. You might find that the best way to remedy deficiencies is to take formal courses. Or, you might want to study from textbooks on your own. The core curriculum corresponds approximately to these PSU courses:
- Programming and data structures: CS 161, 162, 163
- Machine organization and architecture: CS 201
- Programming systems: CS 202
- Discrete mathematics, logic, and computability: CS 250, 251, 311
- Calculus: Mth 251, 252, 253
In addition, several 300-level courses are usually required, including the following courses. Before taking these courses, all necessary prerequisites must be satisfied, either through coursework or as described in the previous section. Before attempting to register for 300-level CS courses, you must apply to the grad-prep program using the departmental undergraduate application form. Be sure to mark "Grad Prep only" and document how you have satisfied the necessary admission prerequisites.
- CS 300 Elements of Software Engineering
- CS 321 Programming Languages and Compiler Design I
- CS 333 Operating Systems
- CS 350 Algorithms and Complexity
Department faculty can advise you on the best level at which to begin preparatory coursework. You can demonstrate adequate knowledge of an area of the core curriculum by passing the relevant 100- and 200- level course(s) with a grade of B or better. It will also establish your background if you take and do well in an advanced course, for which the core course is prerequisite. For example, a grade of A in CS 202 would establish that you probably do not need to take CS 161, 162.
An application for admission to the graduate program will normally not be approved without formal coursework on the record to establish adequate knowledge of upper-division courses in programming languages, operating systems, and algorithms. This normally means passing CS 321, 333, 350, or equivalent courses at other institutions, with a grade of B or better. Students having exceptional ability or background may demonstrate their readiness to enter the graduate program by passing several 500-level courses, including at least one of the required graduate courses (CS 533, 558, and 581) with a grade of B or better.
CS courses may be taken at PSU either on a non-admitted basis or on a post-bac basis while you prepare for admission to the graduate program. These mechanisms are described above. You can also take core background courses at other schools such as Portland Community College (PCC). Courses at community colleges may be numbered differently from those at PSU, but there are equivalent courses for most of the first two years of undergraduate study.