Skip to Main Content

Curriculum

  • Computer Science Major
  • 60 Units
  • CSC 104: Fundamentals of Programming
  • 4

This course covers the basic principles of computer programming and algorithm design using a high level programming language. The class addresses basic language syntax, branching, looping, exceptions, file I/O, string processing, while teaching industry standard best practices for writing quality computer programs. Students in the class will learn to write, test, and debug simple programs that run on a variety of operating systems.

  • CSC 105: Web Design
  • 3

This course introduces contemporary web design. Students will learn basic HTML and CSS for building static web pages. The course will include JavaScript, jQuery, Bootstrap, and JSON to build an interactive website. Students will also learn about responsive web design and user experience concepts.

  • CSC 210: Introduction to Operating Systems
  • 3

This course examines the functional components of computer systems, including their hardware implementation and management at different levels, and their interaction, characteristics, and performance. The course will include process management, I/O devices, interrupt structures, resource and memory management, and file systems. Prerequisite: C- or better in CSC 104.

  • CSC 212: Data Structures
  • 3

This course examines the basic concepts of data structures and their related algorithms. Topics include arrays, structures, stacks, queues, linked lists, trees, graphs, and hash tables. Students will implement the data algorithms and also write complete programs that make use of these data structures. Students will study the computational and memory complexity of each data structure and evaluate the design tradeoffs of each algorithm. Other topics to be discussed will be recursion, searching, and sorting. Prerequisite: C- or better in CSC 104.

  • CSC 314: Programming Languages
  • 3

This course examines disciplined programming with specific emphasis on program design, style, efficiency, and documentation. Students will compare the syntax and semantics of multiple high-level languages, analyzing the types of problems that are suited for each one. Prerequisite: C- or better in CSC 104.

  • CSC 316: Introduction to Networking
  • 3

This course serves as an introduction to the structure and components of computer networks, functions and services. In addition, this course discusses current protocols, technologies, and performance issues. Topics include computer network application layers, data communication basics. network layer and routing, network security and other selected topics. Offered alternate years. Prerequisite: C- or better in CSC 104.

  • CSC 318: Object-Oriented Programming
  • 3

This course examines student problem solving with object oriented programming techniques using several high-level programming languages. The topics include encapsulation, data access, interfaces, inheritance, polymorphism, exception handling, design patterns, and data structures. Prerequisite: C- or better in CSC 212.

  • CSC 320: Server-Side Development
  • 3

This course provides an overview of programming and database techniques used in server-side programming. Topics include handling web form data, SQL, database design, security considerations, stored procedures, n-tier architecture, transportation and data encoding techniques. Offered alternate years. Prerequisite: C- or better in CSC 104.

  • CSC 322: Software Engineering
  • 3

The course teaches the software design lifecycle and the principles applied for each development stage. Incremental design and careful testing are emphasized using Agile processes. Students will learn the processes of creating, developing, testing, and deploying software. They will use industry standard tools for version control, collaboration, and software management. Prerequisite: C- or better in CSC 318.

  • CSC 324: Computer Architecture and Assembly
  • 3

This course examines the major components of computer systems, focusing on microprocessors and the hardware/software interface. Lab topics include transistors, electronics, and digital logic. They will design and trace instructions through a single cycle CPU. Students will learn concepts of data transfer, control methods, program sequencing, instruction sets, memory organization theories, and pipelining. Prerequisite: Junior or Senior standing; C- or better in CSC 104.

  • CSC 428: Information Security
  • 3

This course examines the fundamentals of information and cyber security. Topics will include modern cryptography and computer system security. Students will evaluate security threats along with the cost and benefit of potential defenses. They will program and test low-level algorithms and analyze artifacts of computer intrusions. Offered alternate years. Prerequisites: C- or better in CSC 314 and CSC 316.

  • CSC 432: Machine Learning
  • 3

This course introduces students to the mathematical theory and practical application of modern machine learning. Topics include clustering, regression, classification, neural networks, reinforcement learning, and other AI topics. Students will complete a significant machine learning project that requires them to process data, minimize bias, analyze trade-offs, evaluate their model, and communicate their conclusions. They will also consider how fundamental beliefs influence perspectives on the limits and ethics of this technology. Prerequisites: Junior or Senior standing; C- or better in CSC 212, CSC 314, and MTH 265.

  • CSC 491: Special Topics: Computer Science
  • 3

This course will examine a special topic in computer science, which will vary with each offering. Prerequisites: C- or better in CSC 212 and CSC 314.

  • MTH 265: Introduction to Statistics
  • 3

As a basic statistics course applicable to education, business, and the hard sciences, this course will include topics such as descriptive statistics, the normal, binomial, F-, and Chi-squared distributions, and hypothesis testing. Optional topics might include additional non-parametric tests and ANOVA. A TI-83 graphing calculator or Microsoft Excel is required. Prerequisite: C- or better in AMTH 101 or CMTH 101 or MTH 201 or MTH 252 or MTH 271 or equivalent.

  • MTH 271: Calculus I
  • 4

This course will study differential and integral calculus in one variable through graphical, numerical and symbolic methods. Limits, continuity, derivatives, and integrals will be studied with algebraic, trigonometric, exponential and logarithmic functions, including applications using calculus to solve problems. Prerequisite: A passing score on the Calculus Placement Exam, or consent of the department chair.

  • MTH 272: Calculus II
  • 4

A continuation of MTH 271, this course will include a study of methods of integration, applied to algebraic and transcendental functions. Solids of revolution, definite and indefinite integrals, Taylor polynomials, sequences and series, will be studied including applications using calculus to solve problems. Prerequisite: C- or better in MTH 271 or acceptable AP examination credit.

  • MTH 376: Discrete Mathematics
  • 3

This course will include the study of relations and functions, graph theory, counting principles and combinatorics, set theory, Boolean algebra, code theory, linear programming, and other selected topics. Prerequisite: C- or better in MTH 271. Offered alternate years.

  • MTH 379: Numerical Analysis
  • 3

This course serves as an introduction to the basic algorithms of numerical analysis. Topics may include numerical solutions of algebraic equations, interpolation and approximation methods, approximate numerical solutions to systems of linear and non-linear equations, and numerical differentiation and integration. Prerequisite: C- or better in CSC 104 and MTH 272. Offered alternate years.

  • Choose 1 of the following groups:
  • 3 Units
  • CSC 490: Internship: Computer Science
  • 3

This class is a supervised individual field work experience where a student is required to work in the area of computer science. A written contract between the student and the company allowing the internship needs to be submitted and approved by the department chair prior to the internship assignment. Prerequisite: Senior standing or consent of instructor.

  • CSC 495: Software Project Design
  • 1

As the first of two (2) capstone courses for computer science majors, this course provides students realistic hands-on software development experience. Students will research and design a proposal of a medium-size software project, to be developed and programmed on a team. This course assumes the student has a good programming background in at least one programming language and is willing to learn new tools and technologies. Prerequisites: Senior standing; C- or better in CSC 428 or CSC 430 or CSC 490 or CSC 491 or consent of instructor.

AND

  • CSC 496: Software Project Implementation
  • 2

As the second of two (2) capstone courses for computer science majors, students will apply their knowledge and skills to complete an original student-conducted software project. Students will work in teams to develop and execute a medium-size software project. Prerequisites: C- or better in CSC 495 or consent of the instructor.

Current students, please note: The requirements listed here may not reflect the most current courses for this major and may not be the requirements for the catalog year you are following to complete your major. Please refer to the Academic Catalog for official requirements you must meet to qualify for a degree.

Back to top