Welcome to PSU Computer Science! Unabridged Advice and Answers for Postbac Students Interested In Computer Science Warren Harrison, Chair Barbara Sabath, UG Advisor Sara Smith, Graduate Coordinator What Are My Choices If I Already Have a B.S. Degree??? • A Bachelor’s Degree in Computer Science – may be quicker for some students – allows for modest performance – broader topical coverage by design • A Master’s Degree in Computer Science – may be quicker for some students – requires superior performance – more focused study (but can follow a broad curriculum if you want) • Not really a significant difference in starting salary – time at the keyboard is the differentiator Speaking of Salaries and Jobs … • We see our graduates starting at between $55K and $85K. • Hiring in 2014 is performance based. As a new graduate, you’ll need to demonstrate your programming and problem solving ability during the interview. – See: courses.csail.mit.edu/iap/interview/materials.php • We want you to be very, very successful What Are My Choices If I Already Have a B.S. Degree??? • A Bachelor’s Degree in Computer Science – must complete all undergraduate major UG requirements besides just CS courses – Comm 220 (Public Speaking); Wr 227 (Technical Writing); Mth 251, 252, 253 (Calculus I, II, III); Approved Lab Science; ECE 341 (Computer Hardware); Stat 451 (Applied Statistics for Engineers and Scientists); Approved mathematics electives; Approved science electives Plus (72 credits) • • • • • • • • • • • • • • CS 162 Introduction to Computer Science CS 163 Data Structures CS 201 Computer Systems Programming CS 202 Programming Systems CS 250, 251 Discrete Structures I & II CS 300 Elements of Software Engineering (4 credits) CS 305 Social, Ethical, and Legal Issues (2 credits) CS 311 Computational Structures (4 credits) CS 321, 322 Languages and Compiler Design I & II CS 333 Introduction to Operating Systems CS 350 Algorithms and Complexity CS 486 Introduction to Database Systems CS 469, 470 Software Engineering Capstone I, II Approved upper-division computer science electives (12 credits) What Are My Choices If I Already Have a B.S. Degree??? • A Master’s Degree in Computer Science – must complete (or demonstrate mastery) most undergraduate computer science coursework before applying to the graduate program: • • • • • • • • • • CS 162 Introduction to Computer Science CS 163 Data Structures CS 201 Computer Systems Programming CS 202 Programming Systems CS 250, 251 Discrete Structures I & II CS 300 Elements of Software Engineering CS 311 Computational Structures CS 321 Languages and Compiler Design I CS 333 Introduction to Operating Systems CS 350 Algorithms and Complexity Very Important • You’ll need to get As and Bs (mostly As) in all the preparatory CS coursework you take. • Anything below a B- at the graduate level is considered failing, so if you’re getting C’s or even too many Bs, you won’t be a candidate for the graduate program. • And yes, if you repeat a class, the Admissions Committee considers all your attempts. Plus • • • • (45 credits) CS 581 Theory of Computation CS 558 Programming Languages CS 533 Concepts of Operating Systems Three classes from a Track: – – – – – – – Databases Intelligent & Adaptive Systems Languages Security Software Engineering Systems Theory • Nine additional graduate level CS courses Using Credits From Your First Degree Program • Chances are you have taken some (perhaps many) of our required undergraduate courses, especially Math and Science. • See transferology.com to determine if your old courses will match one of our required courses: – https://transferology.com/school/pdx – If your school is not in transferology, you’ll need to contact the course’s home department here at PSU and see if your course is equivalent to the one taught here. – Make sure you have your syllabus, samples of your exams/homework and the course appears on your DARS Report. I Have Lots of Experience • There are some courses you can waive on the basis of documented professional experience. • WR227 (Technical Writing) and/or COM220 (Public Speaking) can be waived if you can provide us with materials documenting your experience writing and/or giving presentations at work. We will evaluate these materials based on our expectations of what we expect of our students from these classes. We won’t waive these courses for writing reports or giving talks at school. I’ve Taken Other CS Courses Elsewhere - What About Those? • If the course is in transferology, you can transfer it to replace the corresponding PSU CS course. • If the course isn’t in transferology, you’ll need to take a Credit By Exam (CBE) to demonstrate that you have gained (and retain) the knowledge and skills that go with that course. • CBE is available for all of our 100- and 200level CS major courses. A Couple of Things to Keep in Mind • Advanced courses in Computer Science build on earlier courses. • It isn’t just about checking off courses – a weak preparation in one class may mean problems throughout the rest of your program. • We enforce prerequisites! If you haven’t had the class, or done a CBE, you’ll be barred from registering for advanced courses. I Took My CS Classes a Long Time Ago • Once again, it isn’t just about checking off courses – a weak preparation in one class may mean problems throughout the rest of your program. • If you can’t recall what you covered in a course, or do the problems without peeking, you probably need to retake it. • What about self-study? It works for some people, but not most, or even many. If it’s been a long time, and you decide to “brush up” – cap it off with a CBE to evaluate if you really did. I’m Sure I can Learn All This Stuff On My Own • Maybe. Most people can’t. • We’ll give you the syllabus, but you truly will be on your own. • You’ll need to do Credit By Exam when you’re done to establish that you have actually mastered the material. • We discourage people from trying to teach themselves Computer Science because it usually doesn’t work and they waste a term studying only to find they’ll have to take the class anyway. Scheduling • Once again, we enforce prerequisites. Make sure you take them into account when planning out your program. • Our admissions (to the upper division CS program) is in the Fall (July 1 deadline) and Spring (February 1 deadline). Students begin with CS300 and CS311 which are only offered in the Fall and Spring. • All your lower division CS should be complete by the time you are admitted and take CS300 and CS311. What’s This Admission Stuff? • Once students have mastered all the lower division course work, as documented by course grades or CBE, they can apply to the CS major (or in the case of postbacs, the grad prep program). • This allows us to assume a certain minimum level of skill and knowledge among students in the upper division courses. • You will not be allowed to register for upper division courses unless you have been admitted to the program What Do I Need In Order to be Admitted to the Undergrad Program? • CS Courses: CS162, CS163, CS201, CS202, CS250, CS251 with grades of C PLUS a 2.0 GPA over all attempts at these courses. • Mth251, Mth252 (Calculus I and II) • An approved Lab Science sequence • COMM 220 • If you did not take CS202 at PSU, you’ll also need to demonstrate that you have gained an acceptable level of proficiency in programming in one of our scheduled Proficiency Demonstrations. What Do I Need In Order to be Admitted to the Grad Prep Program? • CS Courses: CS162, CS163, CS201, CS202, CS250, CS251 with a 3.0 GPA over all attempts at these courses. • To have a chance of getting admitted to the graduate program, you really need to complete all these courses with a minimum of a B, and have NO retakes within the past few years. • If you did not take CS202 at PSU, you’ll also need to demonstrate that you have gained an acceptable level of proficiency in programming in one of our scheduled Proficiency Demonstrations. How Long Will It Take Me to Complete My Degree? • It depends – How many classes will you take a term? – Will you pass all of them on the first try? – Have you already taken all the non-CS requirements? – Don’t forget the prerequisite structure Entry Points to the Program • No prior programming experience – Start with CS161 • Programming experience – Start with CS162 • Self-placement into CS162: • Write a function that receives two parameters: an array (or list) of integers and an integer value indicating the number of elements in the array. Each element in the array will be either a 0 (zero) or a 1 (one). The function should count the number of zeros and the number of ones in the array and return the larger of the two counts. Typical Grad Prep Schedule Year 1 • Fall: CS162 • Winter: CS163 • Spring: CS202 Year 2 • Fall: CS201, CS250 • Winter: CS251 • Spring: CS300, CS311 Year 3 • Fall: CS321, CS333 • Winter: CS558, CS350 • Spring: CS533, CS581 • Summer: GE Year 4 • • • • Fall: GE, GE, GE Winter: GE, GE, GE Spring: GE, GE, GE Summer: GE, GE QUESTIONS?