Computer Science (BS)
Program Description
The BS in Computer Science is the traditional degree in computer science, and prepares you for a professional career or graduate studies in the discipline. The major emphasizes scientific, quantitative, and engineering problem-solving.
Entering and Completing the Major
In order to earn a degree, you must complete at least one academic major. SPU encourages students to explore various academic paths, so if you change your mind about a major, or want to include an additional program, you are able to do so, as outlined below.
Note that the University encourages you to enter your chosen major(s) as soon as you have determined it and are eligible to join it, especially by the start of your junior year. Students who transfer as juniors and seniors should enter a major within their first two quarters at SPU.
- If this is your first quarter at SPU and you identified a major in this department as your first choice on your application for admission to the University, you have gained entry to the major. To change or add a major, follow these instructions.
- If you are an SPU student with an SPU cumulative GPA of 2.0 or better, follow these instructions to enter a major in this department.
- The University requires a grade of C- or better in all classes that apply to a major; however, programs may require higher minimum grades in specific courses. You may repeat an SPU course only once for a higher grade.
- To advance in this program, meet with your faculty advisor regularly to discuss your grades, course progression, and other indicators of satisfactory academic progress. If your grades or other factors indicate that you may not be able to successfully complete the major or minor, your faculty advisor can work with you to explore options, which may include choosing a different major.
- You must complete the major requirements that are in effect in the SPU Undergraduate Catalog for the year you enter the major.
Computer Science (BS)
103 Credits Minimum, Including 58 Upper Division (UD)
| Code | Title | Credits |
|---|---|---|
| General Core | ||
| CSC 1250 | Introductory Problem Solving and Programming | 5 |
| CSC 1260 | Structured Programming | 5 |
| CSC 2430 | Object Oriented Programming | 5 |
| CSC 2431 | Data Structures and Algorithms | 5 |
| CSC 3011 | Living in a Digital World | 3 |
| CSC 3150 | Systems Design | 5 |
| CSC 3220 | Applications Programming | 5 |
| CSC 3221 | Netcentric Computing | 5 |
| CSC 3310 | Concepts in Programming Languages | 4 |
| CSC 3350 | Operating Systems Programming | 3 |
| CSC 3430 | Algorithm Design and Analysis | 4 |
| CSC 4410 | Database Systems | 5 |
| MAT 1234 | Calculus I | 5 |
| MAT 1235 | Calculus II | 5 |
| MAT 2360 | Introduction to Statistics for the Sciences | 5 |
| MAT 2401 | Linear Algebra | 3 |
| Section Credits Required | 72 | |
| Science Requirement | 5 | |
| Select one of the following: | ||
| Survey of General Chemistry | ||
| Physics for Science and Engineering | ||
| Section Credits Required | 5 | |
| Discrete Math and Computer Hardware | ||
| Select one of the two sequences | 10 | |
| Mathematics for Computer Science and Computer Architecture and Organization | ||
| Mathematics for Computer Science and Introduction to Logic System Design and Computer Organization and Assembly Language | ||
| Section Credits Required | 10 | |
| Interview Preparation | ||
| CSC 2099 | Technical Interview Preparation I | 1 |
| CSC 3099 | Technical Interview Preparation II | 1 |
| Section Credits Required | 2 | |
| Project & Internship | ||
| CSC 3000 | Principles of Professional Practice | 1 |
| or GS 3001 | Internship and Job Search Strategies | |
| CSC 4941 | Computer Science Professional Experience 1 | 1 |
| CSC 4896 | Software Engineering Capstone I | 3 |
| CSC 4897 | Software Engineering Capstone II | 3 |
| CSC 4898 | Software Engineering Capstone III | 3 |
| Section Credits Required | 11 | |
| Technical Electives | ||
| Select 3 credits of the following: | 3 | |
| Theory of Computation and Algorithm | ||
| Information Security Fundamentals | ||
| Introduction to Artificial Intelligence | ||
| Compiler Design | ||
| Advanced Operating Systems | ||
| Advanced Programming | ||
| Computer Networks | ||
| Advanced Computer Architecture | ||
| Advanced Issues in Computer Science | ||
| Introduction to Data Science | ||
| Introduction to Machine Learning | ||
| Data and Society | ||
| Fundamentals of Advanced Embedded Systems | ||
| Science, Technology and Society | ||
| Minds and Machines | ||
| Section Credits Required | 3 | |
| Total Credits | 103 | |
- 1
A technical internship, professional experience or approved certification must be completed before passing CSC 4941.
Suggested Course Sequences
Four Year Plan
Check the quarter, day and time in the current time schedule as course offerings may change.
| Freshman | ||
|---|---|---|
| Variable | Credits | |
| TCOR 1000 | The Christian Faith | 5 |
| WRI 1000 | Academic Inquiry and Writing Seminar | 5 |
| Exploratory Curriculum | 0-10 | |
| Credits | 10-20 | |
| Autumn | ||
| CSC 1250 | Introductory Problem Solving and Programming | 5 |
| FYS 1000 | First Year Seminar | 3 |
| MAT 1234 | Calculus I | 5 |
| Credits | 13 | |
| Winter | ||
| CSC 1260 | Structured Programming 1 | 5 |
| MAT 1235 | Calculus II | 5 |
| Credits | 10 | |
| Spring | ||
| CSC 2430 | Object Oriented Programming 1 | 5 |
| MAT 2401 | Linear Algebra | 3 |
| Credits | 8 | |
| Sophomore | ||
| Variable | ||
| MAT 2360 | Introduction to Statistics for the Sciences | 5 |
| Common Curriculum and Exploratory Curriculum as needed | ||
| Science course 3 | 5 | |
| Credits | 10 | |
| Autumn | ||
| Common Curriculum and Exploratory Curriculum | 15 | |
| Credits | 15 | |
| Winter | ||
| CSC 2431 | Data Structures and Algorithms 1 | 5 |
| MAT 1720 | Mathematics for Computer Science | 5 |
| Credits | 10 | |
| Spring | ||
| CSC 2099 | Technical Interview Preparation I | 1 |
| Credits | 1 | |
| Junior | ||
| Variable | ||
| Technical Elective Courses 5 | ||
| Common Curriculum and Exploratory Curriculum as needed | ||
| Credits | 0 | |
| Autumn | ||
| CSC 3310 | Concepts in Programming Languages | 4 |
| GS 3001 | Internship and Job Search Strategies 2 | 1 |
| Credits | 5 | |
| Winter | ||
| CSC 3011 | Living in a Digital World (pre-requisite: UFDN 2000 or 3001) | 3 |
| CSC 3220 | Applications Programming | 5 |
| CSC 3430 | Algorithm Design and Analysis | 4 |
| Credits | 12 | |
| Spring | ||
| CSC 3099 | Technical Interview Preparation II | 1 |
| CSC 3150 | Systems Design | 5 |
| CSC 3221 | Netcentric Computing | 5 |
| Credits | 11 | |
| Senior | ||
| Variable | ||
| Technical Elective Courses 4 | ||
| Credits | 0 | |
| Autumn | ||
| CSC 3750 | Computer Architecture and Organization | 5 |
| CSC 4410 | Database Systems | 5 |
| CSC 4896 | Software Engineering Capstone I | 3 |
| CSC 4941 | Computer Science Professional Experience 5 | 1 |
| Credits | 14 | |
| Winter | ||
| CSC 4897 | Software Engineering Capstone II | 3 |
| Credits | 3 | |
| Spring | ||
| CSC 3350 | Operating Systems Programming | 3 |
| CSC 4898 | Software Engineering Capstone III | 3 |
| Credits | 6 | |
| Total Credits | 128-138 | |
| Code | Title | Credits |
|---|---|---|
| Technical Elective Courses | 3-5 | |
| CSC 4210 | Theory of Computation and Algorithm | 3 |
| CSC 4220 | Information Security Fundamentals | 3 |
| CSC 4250 | Introduction to Artificial Intelligence | 3 |
| CSC 4310 | Compiler Design | 3 |
| CSC 4350 | Advanced Operating Systems | 3 |
| CSC 4430 | Advanced Programming | 3-5 |
| CSC 4750 | Computer Networks | 5 |
| CSC 4760 | Advanced Computer Architecture | 5 |
| CSC 4800 | Advanced Issues in Computer Science | 3-5 |
| DAT 3380 | Introduction to Data Science | 5 |
| DAT 4500 | Data and Society | 5 |
| EE 3280 | Microcontroller System Design | 5 |
| EE 4770 | Fundamentals of Advanced Embedded Systems | 3-5 |
| Common Curriculum | ||
| TCOR 2000 | Christian Scripture | 5 |
| TCOR 3100 | Christian Theology | 5 |
| UCOR 2100 | World History, Faith, and Reconciliation | 5 |
| UCOR 3000 | Faith, Philosophy, and Science | 5 |
| Exploratory Curriculum | ||
| WK | 35 | |
| CUE | 3 | |
- 1
Requires at least a C+ in the pre-requisite programming class.
- 2
Is offered in multiple quarters. Should be taken no later than Fall of junior year.
- 3
See the Requirements tab for a listed of approved options.
- 4
See the Requirements tab for a complete list of technical electives.
- 5
Must be taken after completing or while pursuing an approved internship or an approved certification.
Two Year Plan for a Transfer Student with or without a DTA
| First Year | ||
|---|---|---|
| Variable | Credits | |
| Technical Elective Courses 1 | 3-8 | |
| Common Curriculum and Exploratory Curriculum as needed 2 | ||
| Credits | 3-8 | |
| Autumn | ||
| CSC 2330 | Data Structures & Programming | 5 |
| GS 3001 | Internship and Job Search Strategies | 1 |
| TCOR 3001 | Christian Scripture for Transfer Students | 5 |
| Credits | 11 | |
| Winter | ||
| CSC 2431 | Data Structures and Algorithms 3 | 5 |
| CSC 3011 | Living in a Digital World | 3 |
| CSC 3220 | Applications Programming | 5 |
| MAT 1720 | Mathematics for Computer Science | 5 |
| Credits | 18 | |
| Spring | ||
| CSC 2099 | Technical Interview Preparation I | 1 |
| CSC 3150 | Systems Design | 5 |
| CSC 3221 | Netcentric Computing | 5 |
| MAT 2401 | Linear Algebra | 3 |
| Credits | 14 | |
| Second Year | ||
| Variable | ||
| Technical Elective Courses 1 | 3-5 | |
| Common Curriculum and Exploratory Curriculum as needed | ||
| TCOR 3100 | Christian Theology | 5 |
| Credits | 8-10 | |
| Autumn | ||
| CSC 3310 | Concepts in Programming Languages | 4 |
| CSC 3750 | Computer Architecture and Organization | 5 |
| CSC 4410 | Database Systems | 5 |
| CSC 4896 | Software Engineering Capstone I | 3 |
| CSC 4941 | Computer Science Professional Experience 4 | 1 |
| Credits | 18 | |
| Winter | ||
| CSC 3430 | Algorithm Design and Analysis | 4 |
| CSC 4897 | Software Engineering Capstone II | 3 |
| Credits | 7 | |
| Spring | ||
| CSC 3099 | Technical Interview Preparation II 4 | 1 |
| CSC 3350 | Operating Systems Programming | 3 |
| CSC 4898 | Software Engineering Capstone III | 3 |
| Credits | 7 | |
| Total Credits | 86-93 | |
- 1
See the Requirements tab for a complete list of technical electives.
- 2
These General Education requirements can be spread over both years.
- 3
At least a C+ must be earned in CSC 2330 or CSC 2430 in order to take this class.
- 4
Must be taken AFTER completing or WHILE pursuing an approved internship or an approved certification.
Prerequisites for the Two Year Plan
The following courses must be completed before coming to SPU in order to finish at SPU in two years.
| Code | Title | Credits |
|---|---|---|
| Two Quarters of Object Oriented Programming in the Same Language 1 | 10 | |
Object oriented progamming 1 | ||
Object oriented programming 2 with Data Structures | ||
| Math Courses Equivalent to SPU's | 20 | |
| Calculus I | ||
| Calculus II | ||
| Introduction to Statistics for the Sciences | ||
| A Science Course Equivalent to one of the following SPU courses: | 5 | |
| General Biology II | ||
| General Chemistry I | ||
| Survey of General Chemistry | ||
| Physics for Science and Engineering | ||
- 1
The second must include data structures concepts.
Technical Electives List
See the Requirements tab for a complete list of technical electives.