Bachelor of Science Program
The Bachelor of Science in Computer Science is the first university degree in the field and usually takes at least four years of full-time work to complete. Students may enter the program directly from high school, after preliminary coursework in a two-year community college program, or after they have work experience in the field without a college degree. The department makes every effort to place students in courses appropriate to their actual level of knowledge. Those who have a bachelor's degree in another field can complete the degree more quickly under the post-bac 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 projects for industry during the two-term capstone course in software engineering. Details about the program are given below.
- Program Objectives
- Admission to the Computer Science Program
- Continuation Criteria
- Departmental Requirements
- Required Computer Science Courses
- Required Non-CS Courses
- Approved Lab Science
- Approved Science Electives
- Approved Upper-Division Computer Science Electives
- Approved Math Electives
- General Education Requirements
- Sample 4-year Schedule
- Post-Baccalaureate Requirements
- PCC CS Articulation Agreement
- Application Forms
- Graduation Procedure
The objective of the undergraduate program in computer science is to produce graduates with:
- A thorough understanding of and ability to apply the core principles and practices of computing;
- The professional skills to meet the immediate needs of regional and other employers, while being able to adapt to rapidly changing technology;
- A foundation in the supporting areas of communication, science, and mathematics;
- An understanding of ethical responsibilities in the social context in which their contributions occur;
- The motivation and preparation to engage in life-long learning, including entering advanced degree programs in computer science.
To achieve these objectives students should master the following expected competencies (learning-based outcomes).
Students should acquire knowledge of:
- Computing at all levels of abstraction, including: (a) Circuits and computer architecture; (b) Operating systems; (c) Programming languages, and (d) Algorithms.
- The management and sharing of persistent data.
- The interdependence of hardware and software.
- Engineering principles used to meet the challenge of large-scale software production.
- Mathematical foundations of computer science.
- The impact of computing on society.
- The ethical and legal responsibilities of computing professionals.
Students should acquire the ability to:
- Develop program specifications from a variety of informal descriptions.
- Develop program designs from specifications under a variety of software paradigms/architectures.
- Use analytical techniques to evaluate and compare different designs that meet specifications.
- Adapt algorithms and data structures drawn from a large standard repertoire to new problems.
- Implement selected designs as programs in a variety of programming languages.
- Debug and test programs.
- Perform quantitative evaluation of program behavior by experiment.
- Assess new developments in computer science.
- Present the results of their work orally.
- Present the results of their work as written technical documents.
- Communicate with other members of development teams and with customers.
The Portland State undergraduate CS program is fully accredited by the Computing Accreditation Commission (CAC) of the Accreditation Board for Engineering and Technology (ABET), 111 Market Place, Suite 1050,Baltimore, MD 21202-4012, phone 410-347-7700.
Accreditation has two advantages for students. First, accreditation is a form of quality control. CAC sets minimum standards for every aspect of a degree program. They periodically send an evaluation team to examine everything from the degree requirements (which are stiffer than average, at their insistence) to the way classes are conducted and graded. They interview students, staff, and faculty. They examine facilities. A program is accredited only if everything is up to par. The second advantage of accreditation is that it increases the real market value of the B.S. in CS. Some companies (particularly those accustomed to hiring engineers) pay better starting salaries if the employee comes from an accredited degree program. They may give better job titles as well.
Upon achieving junior standing at PSU (90 credits or more) and completing all lower-division CS requirements, students should file an Application for Admission to the CS program at the Computer Science Office. Admitted CS students are assigned an adviser and may register for upper-division CS courses. No more than eight credits of upper-division CS courses may be taken before admission to major status. Students who are not admitted to the department must obtain permission before registering for upper division courses. Questions about Undergraduate and Post-Baccalaureate admissions and course registration (capstone courses included) should be addressed to the undergraduate advisor: firstname.lastname@example.org
Eligibility for Admission
Beginning Fall 2012, in order to be eligible for initial undergraduate admission, each student should meet the following requirements:
1. Have completed each of the following core Computer Science courses: CS162, CS163, CS201, CS202, CS250, and CS251 with a grade of C or better;
2. Have an overall average grade point of 2.0 or better in all required CS courses, computed over all graded attempts to take these courses. For example, if a student receives a D in CS250, retakes it and receives a C, the student average grade point over these two attempts would be 1.5. However, a B in another required CS course, such as CS202, would raise the average grade point to 2.0 over these three graded attempts. X’s and W’s are not counted as graded attempts.
3. Have completed these required courses from outside the Computer Science Department with a grade of C- or better: Mth251; Mth252; an approved laboratory science sequence; Wr227; Comm220; and Freshman Inquiry or Wr121.
4. Have completed a minimum of 90 credits.
Students not meeting these requirements may petition the CS Appeals Committee for special admission.
Admitted CS undergraduate students who are not making acceptable progress towards their degree requirements will be dropped from the program and required to reapply for admission. Acceptable progress is defined as completion of at least 8 credits of coursework with acceptable grades (C or better for required CS courses, C- or better for required non-CS courses) satisfying departmental requirements, over the preceding 12 months. Readmission will be determined by the CS Appeals Committee.
Freshmen through seniors as well as prospective transfer students and Post-Bacs seeking advising should contact the undergraduate adviser, Barbara Sabath, at 503-725-4220 or email@example.com.
Juniors, seniors, and post-bac students who are accepted for admission to the CS program will be assigned a faculty adviser the fourth week of their first term. Students who will be inactive (i.e., not taking any classes at PSU) for a term must file a leave request with the CS Office in order to retain their adviser. Students may file a maximum of one leave request per year. As a CS major, you should feel free to consult your faculty adviser about your overall program of study, your career plans, or any problems you encounter in CS at PSU. You should make a point of seeing your adviser your first term as an admitted CS major for an initial consultation.
Your CS adviser is particularly useful in helping you interpret the CS requirements for your degree. However, if you are depending on this interpretation, make sure that you get it in writing (usually in the form of a "Substitution/Waiver of CS Requirements") and that it is added to your file in the Computer Science Office. It is also important to know when not to consult your faculty adviser because someone else is more appropriate.
- For information about a specific course, see the course's instructor.
- For information about University degree requirements, rules, exceptions to rules, forms, etc., consult the PSU Bulletin. If the Bulletin is not clear, you may check with the Information and Academic Support Center (IASC) at 503-725-4005.
The PSU Bulletin is the absolute authority for all regulations.
Students are responsible for knowing the rules, regulations, and requirements in the PSU Bulletin. Ultimately, the responsibility of ensuring that you have completed all requirements for your degree is yours. Your CS adviser and the advisers at the Information and Academic Support Center will help you interpret the requirements that are in the PSU Bulletin. Their role is not to "approve" or otherwise construct a program of study for you. An approved program of study can be found in the PSU Bulletin under the section on CS.
Department requirements are interpreted by the Department of Computer Science. Variances from these requirements are permitted only when a "Substitution/Waiver of CS Requirements" form (copies are in the CS office) is on file with the department.
All computer science courses 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. Transfer students majoring in computer science are required to complete a minimum of 40 credits of upper-division computer science courses in residence at PSU.
These reflect the requirements for the most recent catalog. For earlier catalogs, consult the department.
- CS 162 Introduction to Computer Science (4 credits)
- CS 163 Data Structures (4 credits)
- CS 201 Computer Systems Programming (4 credits)
- CS 202 Programming Systems (4 credits)
- CS 250 Discrete Structures I (4 credits)
- CS 251 Discrete Structures II (4 credits)
- 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 (8 credits)
- CS 333 Introduction to Operating Systems (4 credits)
- CS 350 Algorithms and Complexity (4 credits)
- CS 386 Introduction to Database Systems (4 credidts)
- CS 487, 488 Software Engineering Capstone I, II (6 credits)
- Approved upper-division computer science electives (12 credits)
You can see a graph showing the prerequisite structure of the required CS courses by clicking here.
- Comm 220 Public Speaking* (4 credits)
- Wr 227 Technical Writing (4 credits)
- Mth 251, 252, 253 Calculus I, II, III (12 credits)
- Approved Lab Science (15 Credits)
- ECE 341 Computer Hardware (4 credits)
- Stat 451 Applied Statistics for Engineers and Scientists (4 credits)
- Approved mathematics electives (8 credits)
- Approved science elective (4 credits)
*Comm 220 is waived for students who take Freshman Inquiry.
One of the following 15 credit sequences, including their associated laboratories: PH 211, 212, 213, with 214, 215, 216 (General Physics with Calculus and Lab); CH 221, 222, 223 with CH 227, 228, 229 (General Chemistry and Lab); or BI 251, 252, 253 (Principles of Biology with Integrated Lab).
Four credits chosen from Biology, Chemistry, Physics, Geology, or Environmental Science. At least 19 Lab Science + Approved Science credits must be taken.
Students must complete 12 credits of upper-division computer science electives. The total may include any regular upper-division computer science course (including, but not limited to, 410 classes) and any of the courses ECE 455, 456, 485, 486, except that no more than 4 credits may be taken from CS 399, 401, 405, 406, 407, 409. CS 404 may not be used.
Mth 261, Mth 311, Mth 343, Mth 344, Mth 346, Mth 356, Mth 457, Mth 458, Mth 461, Mth 462, Stat 366, Stat 452, Stat 464, Stat 467, Stat 468. Other upper-division mathematics courses may be used to satisfy the requirement with written approval.
The General Education requirements for computer science students can be met in one of the following ways:
- Students who complete their entire program at Portland State University meet the requirement by taking 39 credits of University Studies. (15 credits Freshmen Inquiry, 12 credits Sophomore Inquiry and 12 credits Upper Division Cluster), plus the computer science capstone.
- Transfer students meet the requirement by having WR 121, SP 111 and 33 credits as a combination of University Studies courses and Liberal Arts/Social Science transfer credits. (At a minimum the 12 credit junior/senior cluster must be taken at PSU).
- Students transferring from community colleges having co-admission agreements with PSU (currently Clackamas Community College, Mount Hood Community College, and Portland Community College) may be able to complete Freshman and Sophomore Inquiry at their community college before transferring to PSU. If so, they may follow No. 1.
NOTE: Additional information regarding General University Requirements may be obtained from the PSU Bulletin.
The sample schedule is called the "blue sheet" because it is customarily printed on blue paper. Click the link to see a pdf version.
Post-bac students working toward a second bachelor's degree must satisfy all the departmental requirements, including calculus, physics, ECE, math electives, science electives, CS upper-division electives and CS Capstone, but are not required to take free electives or to satisfy the general University requirements. Courses taken for the first undergraduate degree may be used to satisfy these requirements, provided the student takes at least 45 credits at PSU. So, for example, a student with an undergraduate degree in physics or electrical engineering will have probably satisfied most or all of the science and math requirements while one with a major in literature or fine arts will probably need to take more courses to earn the CS degree.
Click Here to be re-directed to PCC's website for the PCC CS Articulation Agreement.
Undergraduate Application Forms
- The University Admissions Form for freshman and transfer students, and information on co-admission with cooperating commmunity colleges, is on the Admissions Forms website.
- The University Measles Requirement Form.
- Additional Forms are required for international students
- The Computer Science Admission Form is NOT required for admission to the University. It is for students starting their 300 level CS classes.
Post-Baccalaureate Application Forms
- The Post-Baccalaureate application is on the Admissions Forms website
- The University Measles Requirement Form
- Additional Forms are required for international students
File a Degree Application with the Degree Requirements section of the Office of Admissions, Records, and Financial Aid. Applications are due two terms prior to graduation. Specific deadlines for degree applications are published in the Schedule of Classes each term.