This is an archived version of the University Catalog and is no longer being maintained. References to people, offices, policies, and web links may be outdated. View the current catalog or email catalog@csuchico.edu for updated information. Students who have catalog rights to this version of the catalog should check with an advisor for graduation requirements.

Skip to Side Navigation Skip to Content Skip to Accessibility Settings

The Bachelor of Science in Computer Science

Total Course Requirements for the Bachelor's Degree: 120 units

See Bachelor's Degree Requirements in the University Catalog for complete details on general degree requirements. A minimum of 39 units, including those required for the major, must be upper division.

A suggested Major Academic Plan (MAP) has been prepared to help students meet all graduation requirements within four years. You can view MAPs on the Major Academic Plans page or you can request a plan from your major advisor.

Courses in this program may complete more than one graduation requirement.

General Education Pathway Requirements: 48 units

See General Education in the University Catalog and the Class Schedule for the most current information on General Education Pathway Requirements and course offerings.

This major has approved GE modification(s). See below for information on how to apply these modification(s).

  • MATH 217 is an approved major course substitution for Critical Thinking (A3).
  • CSCI 551 is an approved major course substitution for Upper-Division Natural Sciences.
  • CSCI 301W is an approved major course substitution for Upper Division Arts/Humanities.

Diversity Course Requirements: 6 units

See Diversity Requirements in the University Catalog. Most courses taken to satisfy these requirements may also apply to General Education .

Upper-Division Writing Requirement:

Writing Across the Curriculum (Executive Memorandum 17-009) is a graduation requirement and may be demonstrated through satisfactory completion of four Writing (W) courses, two of which are designated by the major department. See Mathematics/Quantitative Reasoning and Writing Requirements in the University Catalog for more details on the four courses.  The first of the major designated Writing (W) courses is listed below.

  • Any upper-division Writing (W) course.

The second major-designated Writing course is the Graduation Writing Assessment Requirement (GW) (Executive Order 665). Students must earn a C- or higher to receive GW credit. The GE Written Communication (A2) requirement must be completed before a student is permitted to register for a GW course.

Grading Requirement:

All courses taken to fulfill major course requirements must be taken for a letter grade except those courses specified by the department as Credit/No Credit grading only.

A grade of C or higher is required in all Computer Science (CSCI), Computer Information Systems (CINS), Electrical/Electronic (EECE), Business Information Systems (BSIS), or Management Information Systems (MINS) courses used for the major.

Course Requirements for the Major: 87 units

Completion of the following courses, or their approved transfer equivalents, is required of all candidates for this degree.

Enrollment in any mathematics course requires a grade of C- or higher in all prerequisite courses or their transfer equivalents.

Requirements for enrollment in Upper Division CSCI or CINS courses:

Complete CSCI 111, CSCI 211, MATH 120, and CSCI/MATH 217 all with a grade of C or higher.

Enrollment in any upper division course that is required for the BS in Computer Science is restricted to students who have a declared major or minor that names the course as a requirement or elective.

Lower-Division Requirements: 30 units

4 courses required:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisite: MATH 109, MATH 119 (or high school equivalent), or MATH 120; or a passing score on the Math department administered calculus readiness exam.
A first-semester programming course, providing an overview of computer systems and an introduction to problem solving and software design using procedural object-oriented programming languages. Coverage includes the software life cycle, as well as algorithms and their role in software design. Students are expected to design, implement, and test a number of programs. 3 hours lecture, 2 hours activity. (002281)
Prerequisite: CSCI 111 with a grade of C or higher.
A second semester object-oriented programming course in computer science that emphasizes problem solving. This course continues the study of software specification, design, implementation, and debugging techniques while introducing abstract data types, fundamental data structures and associated algorithms. Coverage includes dynamic memory, file I/O, linked lists, stacks, queues, trees, recursion, and an introduction to the complexity of algorithms. Students are expected to design, implement, test, and analyze a number of programs. 3 hours lecture, 2 hours activity. (002282)
Prerequisites: GE Mathematics/Quantitative Reasoning Ready; both MATH 118 and MATH 119 (or college equivalent); first-year freshmen who successfully completed trigonometry and precalculus in high school can meet this prerequisite by achieving a score that meets department guidelines on a department administered calculus readiness exam.
Limits and continuity. The derivative and applications to related rates, maxma and minima, and curve sketching. Transcendental functions. An introduction to the definite integral and area. 4 hours discussion. This is an approved General Education course. (005506)
Prerequisite: MATH 120.
The definite integral and applications to area, volume, work, differential equations, etc. Sequences and series, vectors and analytic geometry in 2 and 3-space, polar coordinates, and parametric equations. 4 hours discussion. (005507)

1 course selected from:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisites: CSCI 211 with a grade of C or higher. CSCI 217 or MATH 217 recommended.
Topics include number systems and their rules for arithmetic; basic central processing unit (CPU) organization concepts such as registers, data paths, the arithmetic and logic unit (ALU) and the interface to random access memory (RAM); instruction formats, addressing modes and their uses with a variety of data structures; and parameter passing techniques including the use of a stack frame. The use of good programming methodologies to develop and document algorithms at the assembly language level is emphasized. 2 hours lecture, 2 hours activity. (002290)
Prerequisite: CSCI 111.
This course presents the concepts and techniques associated with developing low level Embedded Systems Applications, using both Assembly Language and C. Topics include microprocessor architecture concepts, instruction set architectures, Assembly Language programming, data representations, interrupt handling and execution modes, low level C programming, and the use of on-chip and external peripherals. 3 hours lecture. (021437)

1 course selected from:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisites: GE Mathematics/Quantitative Reasoning Ready, CSCI 111 with a grade of C or higher (may be taken concurrently), MATH 119 (or equivalent).
This course is also offered as MATH 217.
Offers an intensive introduction to discrete mathematics as used in computer science. Topics include sets, relations, propositional and predicate logic, basic proof methods including mathematical induction, digital logic circuits, complexity of algorithms, elementary combinatorics, and solving linear recurrence relations. 3 hours discussion. (005550)
Prerequisites: GE Mathematics/Quantitative Reasoning Ready, CSCI 111 with a grade of C or higher (may be taken concurrently), MATH 119 (or equivalent).
This course is also offered as CSCI 217.
Offers an intensive introduction to discrete mathematics as used in computer science. Topics include sets, relations, propositional and predicate logic, basic proof methods including mathematical induction, digital logic circuits, complexity of algorithms, elementary combinatorics, and solving linear recurrence relations. 3 hours discussion. (005550)

2 courses selected from:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisites: GE Mathematics/Quantitative Reasoning Ready, Intermediate Algebra.
A survey of the principles of chemistry, primarily for students in agriculture, industry and technology, and pre-nursing. 3 hours lecture, 3 hours laboratory. This is an approved General Education course. (001826)

OR (the following course may be substituted for the above)

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisites: GE Mathematics/Quantitative Reasoning Ready; second-year high school algebra; one year high school chemistry. (One year of high school physics and one year of high school mathematics past Algebra II are recommended.)
Principles of chemistry for students in science and engineering programs. Topics include atoms, molecules and ions, reactions, stoichiometry, the periodic table, bonding, chemical energy, gases, and solution chemistry. The laboratory sequence supports the above topics including both qualitative and quantitative experiments, analysis of data, and error propagation. 3 hours lecture, 3 hours laboratory. This is an approved General Education course. (001816)
Prerequisites: CHEM 107 or CHEM 111 or equivalent.
A survey of organic chemistry emphasizing the structure, properties, and reactions of all major functional groups of organic molecules. Not applicable towards a degree in chemistry or biochemistry. 3 hours lecture, 3 hours laboratory. This is an approved General Education course. (001828)
Prerequisites: CHEM 111 with a grade of C- or better.
A continuation of CHEM 111. Topics include kinetics, equilibrium, acid-base chemistry, electrochemistry, chemical thermodynamics, coordination chemistry, and nuclear chemistry. The laboratory sequence supports the above topics including both qualitative and quantitative experiments, analysis of data, and error propagation. 3 hours lecture, 3 hours laboratory. (001817)
Prerequisites: High school physics or faculty permission. Concurrent enrollment in or prior completion of MATH 121 (second semester of calculus) or equivalent.
Vectors, kinematics, particle dynamics, friction, work, energy, power, momentum, dynamics and statics of rigid bodies, oscillations, gravitation, fluids. Calculus used. A grade of C- or higher is required before progressing to either PHYS 204B or PHYS 204C. 3 hours discussion, 3 hours laboratory. This is an approved General Education course. (007401)
Prerequisites: MATH 121, PHYS 204A with a grade of C- or higher.
Charge and matter, electric field, Gauss' law, electric potential, capacitors and dielectrics, current and resistance, magnetic field, Ampere's law, Faraday's law of induction, magnetic properties of matter, electromagnetic oscillations and waves. Calculus used. 3 hours discussion, 3 hours laboratory. (007402)

Upper-Division Requirements: 57 units

Requirements for enrollment in Upper Division CSCI or CINS courses:

Complete CSCI 111, CSCI 211, MATH 120, and CSCI/MATH 217 all with a grade of C or higher.

Enrollment in any upper division course that is required for the BS in Computer Science is restricted to students who have a declared major or minor that names the course as a requirement or elective.

14 courses required:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisite: CSCI 211 with a grade of C or higher.
This course provides an introduction to the theory and methodology for database design and implementation. Topics may include a survey/lecture component as well as a project component. The survey component covers entity- relationship modeling, relational algebra and calculus theories, data definition and data manipulation languages such as SQL, file structures, transactions, concurrency control, recovery, tuning and optimization, and object-oriented databases. The project entails requirements definition, design, and implementation of a database application. 2 hours discussion, 2 hours activity. (002338)
Prerequisites: CSCI 446 with a grade of C or higher.
This course provides a broad overview of some of the more technical aspects of Information Systems Security. The content is designed to prepare students for the Certified Information Systems Security Professional/Associate (CISSP/A) examination from the International Information Systems Security Certification Consortium (ISP2), including a discussion of each of the following topics: security management practices; access control systems; telecommunications and network security; cryptography; security architecture and models; operations security; applications and systems development; business continuity planning and disaster recovery planning; law, investigation, and ethics; and physical security. 3 hours lecture. (020232)
Prerequisite: CINS 370 with a grade of C or higher.
A hands-on project course that examines languages, tools, protocols, and techniques for developing interactive and dynamic web applications. Topics include the model-view-controller pattern, document object model, server side and client side scripting, using a server side database, and web applications security. The course includes several web projects using a web programming framework. 3 hours discussion. (002368)
Prerequisites: Completion of GE Written Communication (A2) requirement; Junior standing.
Impact of computers and high-tech systems on people, institutions, organizations, and environment. Examines the following: law, medicine, education, government, data banks, privacy, computer security, changing work, automation, robots, expert systems, AI, social responsibility, ethics, war, conflict resolution. Includes weekly reading, midterm, and final writing projects. Weekly lectures, discussions, films, and writing. No programming. 3 hours discussion. This is an approved Graduation Writing Assessment Requirement course; a grade of C- or higher certifies writing proficiency for majors. This is an approved Writing Course. (002309)
Prerequisites: CSCI 211; CSCI 217 or MATH 217, all with a grade of C or higher.
This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms. Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms. Data structure and algorithm combinations will be studied and analyzed along with their relative merits using both mathematical and empirical measurements. The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development. Students will be required to design, implement, test, and analyze their programs in at least one object-oriented language. 3 hours lecture, 2 hours activity. (002325)
Prerequisites: CSCI 311 and CSCI 221 or EECE 237 all with a grade of C or higher.
Operating system fundamentals, including history, process and thread management, concurrency with semaphores and monitors, deadlocks, storage management, file systems, I/O, and distributed systems. 3 hours discussion, 2 hours activity. (002328)
Prerequisites: CSCI 217 or MATH 217, CSCI 311, all with a grade of C or higher.
Students design, implement, and analyze algorithms for solving problems. Topics include dynamic programming, graphs (topological sort, strongly connected components), shortest paths (Bellman-Ford, Floyd-Warshall), minimum spanning tree (Kruskal's), flow network (max flow, min cut, maximum bipartite matching), string search (suffix tree, suffix array, Burrows-Wheeler's Transform, longest common prefix array). In addition, basic automata computability and complexity are covered, including finite automata, regular expressions, context free grammars, Turing machines, P and NP classes, and NP complete classes and problems. This course integrates knowledge of data structures, algorithms, and programming. 4 hours discussion. Formerly CSCI 550. (002371)
Prerequisite: CSCI 311 with a grade of C or higher.
An overview of software engineering principles, practice, and tools. Topics include: agile software engineering methodologies, requirements engineering, test-driven development, software design patterns, MVC architecture, version control, software metrics, and static analysis. Students work in groups to design and implement a semester-long open source software project. 2 hours discussion, 2 hours activity. (002310)
Prerequisites: CSCI 211; CINS 220, CSCI 221, or EECE 237 all with a C or higher.
This course is also offered as EECE 446.
This course is an introduction to basic networking technologies and network management concepts, including major network operating systems, communication architecture focusing on ISO and Internet models with discussion of current standards and protocols. Significant laboratory work using current networking equipment reinforces lectures and provides fundamental experience with router and switch management. 2 hours lecture, 3 hours laboratory. (002340)
Prerequisite: CSCI 311 with a grade of C or higher, Senior standing.
This capstone course provides a culminating activity in computer science. Students will work independently to specify, design, develop, test, and document a complete software application under faculty supervision. Students present status reports at weekly meetings, and present their finished project at the end of the semester. 9 hours supervision. (002343)
Prerequisite: CSCI 311 with a grade of C or higher.
The elements of lexical, syntactical, and semantic analysis including finite and push-down automata, top-down and bottom-up parsing, error detection and recovery, semantic actions and code generation. 3 hours discussion. (002369)
Prerequisites: CSCI 311 with a grade of C or higher, MATH 109 or MATH 121.
Surveys numerical methods and parallel programming. Parallel architectures and algorithms for scientific programming applications, solution of simultaneous linear and non-linear equations, iterative techniques, matrix methods, and error analysis. Development of parallel algorithms, with a focus on efficient implementation and performance. 3 hours discussion. (002332)
Prerequisite: CSCI 311 with a grade of C or higher.
An introduction to the basic principles, techniques, and applications of Artificial Intelligence. Coverage includes knowledge representation, logic, inference, problem solving, search algorithms, game theory, perception, learning, planning, and agent design. Students will program with AI language tools. Additional areas may include expert systems, machine learning, natural language processing, and computer vision. 3 hours discussion. (002360)
Prerequisite: MATH 121; and one of the following: CINS 110, CSCI 111, MATH 130 (may be taken concurrently), or MATH 230.
Basic concepts of probability and statistics with emphasis on models used in science and technology. Probability models for statistical estimation and hypothesis testing. Confidence limits. One- and two-sample inference, simple regression, one- and two-way analysis of variance. Credit cannot be received for both MATH 314 and MATH 315. 4 hours discussion. (005533)

11 units selected from:

Select upper-division Computer Science (CSCI) or Computer Information Systems (CINS) courses, or EECE 555, and/or upper-division Math courses that meet a requirement for the Minor in Mathematics. A maximum of 3 units may be taken for credit/no credit grading.

Additional Computer Science Graduation Requirement:

Graduating seniors must complete an exit exam as a requirement for graduation. Passing the exam is not required for the degree; the scores will be used for program assessment. Consult the department office for examination details.

Advising Requirement:

Advising is mandatory for all majors in this degree program. Consult your undergraduate advisor for specific information.

Honors in the Major:

Honors in the Major is a program of independent work in your major. It requires 6 units of honors course work completed over two semesters.

The Honors in the Major program allows you to work closely with a faculty mentor in your area of interest on an original performance or research project. This year-long collaboration allows you to work in your field at a professional level and culminates in a public presentation of your work. Students sometimes take their projects beyond the University for submission in professional journals, presentation at conferences, or academic competition. Such experience is valuable for graduate school and professional life. Your honors work will be recognized at your graduation, on your permanent transcripts, and on your diploma. It is often accompanied by letters of commendation from your mentor in the department or the department chair.

Some common features of Honors in the Major program are:

  • You must take 6 units of Honors in the Major course work. All 6 units are honors classes (marked by a suffix of H), and at least 3 of these units are independent study (399H, 499H, 599H) as specified by your department. You must complete each class with a minimum grade of B.
  • You must have completed 9 units of upper-division course work or 21 overall units in your major before you can be admitted to Honors in the Major. Check the requirements for your major carefully, as there may be specific courses that must be included in these units.
  • Your cumulative GPA should be at least 3.5 or within the top 5% of majors in your department.
  • Your GPA in your major should be at least 3.5 or within the top 5% of majors in your department.
  • Most students apply for or are invited to participate in Honors in the Major during the second semester of their junior year. Then they complete the 6 units of course work over the two semesters of their senior year.
  • Your honors work culminates with a public presentation of your honors project.

While Honors in the Major is part of the Honors Program, each department administers its own program. Please contact your major department or major advisor to apply.

Honors in Computer Science

In addition to the common requirements for the Honors in the Major program given above, the Honors in Computer Science program includes the following:

  1. You must be recommended by a faculty member.
  2. Students who are admitted to the department's Honors in the Major program must complete 3 units of CSCI 511H, CSCI 515H, or CSCI 580H, with a minimum grade of B. Unless other arrangements are made, the professor instructing the course you take becomes your faculty mentor. It is during this time that you must define a research problem or performance area and develop an Honors Research Project/Thesis proposal in preparation for work in CSCI 499H. You must also maintain a minimum GPA of 3.0 in your senior year.
  3. Each Honors in the Major class requires completion of the course plus an additional Honors project and culminates with a public presentation of your Honors project.

Blended BS + MS (BMS) in Computer Science

Qualified students majoring in Computer Science may apply for the Blended BS + MS (BMS) program in Computer Science, allowing them to earn credit towards the MS at the same time they are completing the BS.  See the catalog section on the BMS in Computer Science following the description of the MS in Computer Science.

Catalog Cycle:20