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 40 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 Degree MAPs page in the University Catalog or you can request a plan from your major advisor.

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).

  • CSCI 217 is an approved major course substitution for Critical Thinking (A3).
  • MATH 217 is an approved major course substitution for Critical Thinking (A3).
  • MATH 120 is an approved advanced course substitution for Quantitative Reasoning (A4).
  • PHYS 204A is an approved advanced course substitution for Physical Sciences (B1).
  • CSCI 551 is an approved major course substitution for Upper-Division Natural Sciences
  • CSCI 301 is an approved major course substitution for Upper Division Social Sciences.
  • CSCI 301 is also an approved GE Capstone substitution.

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 .

Literacy Requirement:

See Mathematics and Writing Requirements in the University Catalog. Writing proficiency in the major is a graduation requirement and may be demonstrated through satisfactory completion of a course in your major which has been designated as the Writing Proficiency (WP) course for the semester in which you take the course. Students who earn below a C- are required to repeat the course and earn a C- or higher to receive WP credit. See the Class Schedule for the designated WP courses for each semester. You must complete the GE Written Communication (A2) requirement before you may register for a WP course.

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.

Lower-Division Requirements: 33 units

8 courses required:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
This course introduces students to programming in the context of dynamic web page development. The operation of the web browser and its interaction with web servers is explored. Structure and style of web page content using HTML and CSS is introduced. The main focus of the course is programming in JavaScript to add dynamic content to a web page. Topics include all language constructs, interaction with the DOM, event-driven programming, debugging using an integrated debugger in the browser, and the use of existing APIs. 2 hours discussion, 2 hours activity. (002298)
Prerequisites: At least one year of high school algebra and strong computer skills or CSCI 101.
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)
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)
Prerequisites: Completion of ELM requirement; both MATH 118 and MATH 119 (or high school equivalent); a score that meets department guidelines on a department administered calculus readiness exam must be achieved by those who claim high school equivalence.
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)
Prerequisites: 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)
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)

1 course selected from:

SUBJ NUM Title Sustainable Units Semester Offered Course Flags
Prerequisites: CSCI 111 with a grade of C or higher, MATH 119 (or equivalent).
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. (002331)
Prerequisites: Completion of ELM, MATH 119 (or equivalent), CSCI 111.
A rigorous introduction to discrete mathematical structures for computer science majors (fulfills a requirement for the minor in math). Topics include propositional and predicate calculus; basic proof methods; sets, functions, and operations with them; algorithms and their complexity; applications of number theory to computer science and computer security; matrices and matrix arithmetic; mathematical induction, recursive definitions and algorithms; combinatorics and counting techniques; relations and their representation by matrices and digraphs, applications to databases; equivalence relations and partitions of sets; partially ordered sets, lattices, and Boolean algebras; Boolean functions and circuits; graphs, trees, and their applications; formal languages and grammars; finite-state automata and language recognition, regular languages. 3 hours discussion. (005550)

Upper-Division Requirements: 54 units

15 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. 3 hours discussion. (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)
Prerequisites: CINS 110, CINS 370 both 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, server side and client side scripting, using a server side database, web applications security, and dynamic page styling, design, and layout. 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. (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, EECE 320, both 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)
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 111 and either CINS 220 or CSCI 221 or EECE 237 (all with a C or higher for CSCI/CINS majors).
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 217 or MATH 217, CSCI 311, all with a grade of C or better.
An introduction to formal languages, grammars, and automata theory with unsolvable problems. 3 hours discussion. (002371)
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. 4 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)
Prerequisites: CSCI 217 or MATH 217 or EECE 144, CSCI 221 or EECE 237.
Study of computing architecture and how the structure of various hardware and software modules affects the ultimate performance of the total system. Topics include qualitative and quantitative analysis of bandwidths, response times, error detection and recovery, interrupts, and system throughput; distributed systems and coprocessors; vector and parallel architectures. 3 hours discussion. (002104)
Prerequisites: MATH 121.
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 350 and MATH 314. 4 hours discussion. (005533)

5 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.

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.

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:

  1. 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.
  2. 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.
  3. Your cumulative GPA should be at least 3.5 or within the top 5% of majors in your department.
  4. Your GPA in your major should be at least 3.5 or within the top 5% of majors in your department.
  5. 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.
  6. 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 CINS 465H, CINS 548H, CSCI 511H, CSCI 515H, CSCI 540H, CSCI 550H, CSCI 551H, CSCI 566H, CSCI 567H, CSCI 568H, 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:16