Undergraduate program
The undergraduate computer science program is designed to provide students with the educational background required for a professional career in the computing industry and for further study at the graduate level. The program includes a core of required courses and an elective program of courses over a wide range of topics. Seniors work in teams to carry out community-based projects during the two-term capstone course in software engineering.
The undergraduate Computer Science program is accredited by the Computing Accreditation Commission of ABET, https://www.abet.org, under the General Criteria and the Computer Science and Similarly Named Computing Program Criteria.
Computer Science B.S.
Majors in computer science must complete the following University and departmental degree requirements.
-
All computer science courses used to satisfy the departmental major must be graded C or better. Phl 314U, if used to satisfy the departmental major, must be graded C or better. Courses taken outside the department as part of departmental requirements must be graded C- or better. If a course is offered only on a Pass/No Pass (P/NP) grading scale, it must be graded as a Pass.
-
All courses specifically required by the department must be taken for a letter grade unless a required course is only offered with a Pass/No Pass option.
-
After admission to the computer science program, students are required to complete a minimum of 44 upper-division computer science credits in residence at PSU.
-
Freshmen entering with 29 or fewer prior university/college credits must complete all University Studies requirements, including first year and sophomore inquiry sequences and upper-division cluster courses.
-
Transfer students must have a minimum of 39 credits of University Studies courses and/or arts and letters/social science courses prior to graduation; 12 of these credits are upper-division cluster courses that must be taken at PSU. Transfer students should consult with the CS departmental adviser for more information.
-
Junior standing (90 credits) is required for registration in upper-division computer science courses.
The following is a sample curriculum. Students choosing to make modifications to this schedule are urged to consult with an adviser.
Requirements
Freshman year
CS 161 | Introduction to Programming and Problem-Solving | 4 |
CS 162 | Introduction to Computer Science | 4 |
Mth 251Z | Differential Calculus | 4 |
Mth 252Z | Integral Calculus | 4 |
| | |
| Approved Laboratory Science | 15 |
| First Year Inquiry | 15 |
Total Credit Hours: | 46 |
Sophomore year
CS 163 | Data Structures | 4 |
CS 205 | System Programming and Architecture | 4 |
CS 250 | Discrete Structures I | 4 |
CS 251 | Discrete Structures II | 4 |
| | |
Mth 253Z | Calculus: Sequences and Series | 4 |
| or | |
Mth 261 | Introduction to Linear Algebra | 4 |
| | |
| Sophomore Inquiry | 8 |
| Free electives | 16 |
Total Credit Hours: | 44 |
Junior year
CS 302 | Programming Methodologies and Software Implementation | 4 |
CS 314 | Elements of Software Engineering | 4 |
CS 333 | Introduction to Operating Systems | 4 |
CS 350 | Algorithms and Complexity | 4 |
CS 486 | Introduction to Database Management Systems | 4 |
| Approved Computer Science security elective | 4 |
| | |
CS 305 | Social, Ethical, and Legal Implications of Computing | 4 |
| or | |
Phl 314U | Computer Ethics | 4 |
| | |
Wr 227Z | Technical Writing | 4 |
| Upper-division cluster | 12 |
Total Credit Hours: | 44 |
Senior year
CS 358 | Principles of Programming Languages | 4 |
CS 469 | Software Engineering Capstone I | 4 |
CS 470 | Software Engineering Capstone II | 4 |
| Approved upper-division computer science electives | 20 |
| CS 311 and/or approved Math and Statistics electives | 7 |
| Free electives | 7 |
Total Credit Hours: | 46 |
Upper Division Credits
Approved Computer Science security elective
Students must complete one course related to the principles and practices for secure computing. The current list of approved courses includes:
CS 489 | Introduction to Privacy-aware Computing | 4 |
CS 491 | Introduction to Computer Security | 4 |
CS 492 | Malware Reverse Engineering | 4 |
CS 495 | Web and Cloud Security | 4 |
CS 496 | Network Security | 4 |
Approved upper-division Computer Science electives
The total may include any regular 300- and 400-level computer science course, and any of the courses:
ECE 341 | Introduction to Computer Hardware | 4 |
ECE 485 | Microprocessor System Design | 4 |
ECE 486 | Computer Architecture | 4 |
except that no more than a total of 4 credits may be taken from:
If CS 311 is used as an approved upper-division Computer Science elective, then it cannot also be used to satisfy the approved Math and Statistics elective.
Additionally, CS 404, University Studies courses, and courses specifically described as not being applicable to the CS degree may not be used.
Approved Laboratory Science
Students must select 3 courses from the following, including their associated laboratories:
Biology:
Bi 221Z | Principles of Biology: Cells | 5 |
Bi 222Z | Principles of Biology: Organisms | 5 |
Bi 223Z | Principles of Biology: Ecology and Evolution | 5 |
Chemistry:
Ch 221Z | General Chemistry I | 4 |
Ch 222Z | General Chemistry II | 4 |
Ch 223Z | General Chemistry III | 4 |
| With | |
Ch 227Z | General Chemistry I Laboratory | 1 |
Ch 228Z | General Chemistry II Laboratory | 1 |
Ch 229Z | General Chemistry III Laboratory | 1 |
Geology:
G 201 | Dynamic Earth: Interior | 3 |
G 202 | Dynamic Earth: Surface | 3 |
| With | |
G 203 | Historical Geology | 3 |
G 204 | Geology Laboratory | 1 |
G 205 | Geology Laboratory | 1 |
G 206 | Historical Geology Lab | 1 |
Physics:
Ph 201 | General Physics | 4 |
Ph 202 | General Physics | 4 |
Ph 203 | General Physics | 4 |
Ph 211 | General Physics (with Calculus) I | 4 |
Ph 212 | General Physics (with Calculus) II | 4 |
Ph 213 | General Physics (with Calculus) III | 4 |
Ph 231 | General Physics I with Life Science and Medical Applications | 4 |
Ph 232 | General Physics II with Life Science and Medical Applications | 4 |
Ph 233 | General Physics III with Life Science and Medical Applications | 4 |
| With | |
Ph 214 | Lab for Ph 201 or Ph 211 or Ph 221 or Ph 231 | 1 |
Ph 215 | Lab for Ph 202 or Ph 212 or Ph 222 or Ph 232 | 1 |
Ph 216 | Lab for Ph 203 or Ph 213 or Ph 223 or Ph 233 | 1 |
Approved Mathematics and Statistics electives
Students must complete 7 or more credits of CS 311 and/or approved mathematics and statistics electives. The current list of approved courses includes:
Mth 261 | Introduction to Linear Algebra | 4 |
Mth 311 | Introduction to Mathematical Analysis I | 4 |
Mth 343 | Applied Linear Algebra | 4 |
Mth 344 | Introduction to Group Theory and Applications | 4 |
Mth 346 | Number Theory | 4 |
Mth 356 | Discrete Mathematics | 4 |
Mth 371 | Large-Scale Data Algorithms | 4 |
Mth 457 | The Mathematical Theory of Games I | 3 |
Mth 458 | The Mathematical Theory of Games II | 3 |
Mth 461 | Graph Theory I | 3 |
Mth 462 | Graph Theory II | 3 |
Stat 361 | Introduction to Statistical Methods | 4 |
Stat 363 | Statistical Computing and Data Visualization in R | 4 |
Stat 364 | Modern Regression Analysis | 4 |
Stat 366 | Introduction to Experimental Design | 4 |
Stat 387 | Introduction to Statistical Learning | 4 |
Stat 451 | Applied Statistics for Engineers and Scientists I | 4 |
Stat 452 | Applied Statistics for Engineers and Scientists II | 3 |
Stat 464 | Applied Regression Analysis | 3 |
Stat 467 | Applied Probability I | 3 |
Stat 468 | Applied Probability II | 3 |
These courses are listed in numerical order with no implied priority. Students are encouraged to consult with an advisor to select courses that best align with their interests and preparation. Other upper-division mathematics or statistics courses may be used to satisfy the requirement with prior written approval from the Computer Science Undergraduate Adviser.