In the CS program, students learn fundamental computer science concepts while applying their knowledge to solve real-world problems. Collaboration, team work and communication skills are infused into the learning experiences with heavily project-based courses in a state-of-the-art technological environment.
Students begin by taking a set of common core courses to establish a strong foundation in computer science, followed by taking courses in one of four concentration areas: software engineering, network and security, data science, or game development. The curriculum provides students the opportunity to learn concepts and develop skills in more than one concentration, helping them to become well rounded computer science professionals.
If you have been accepted into the CS Online Degree Completion Program, you can find specific information for your degree on the CS Online Degree Completion Requirements page.
AS-T certified students can earn a Computer Science B.S. by completing the special requirements found on the Requirements for AS-T certified students in Computer Science.
All other CS majors, see below.
In order to graduate, you will also need to complete your general education and university requirements.
Complete all of the following courses:
All students must complete eight (8) units of CS elective courses from the list below and not used to fulfill their concentration:
Complete one of the following Concentrations to fulfill the requirements of the CS degree:
Complete all of the following courses:
Complete all of the following courses:
Complete all of the following courses:
Complete all of the following courses:
Plan and assess personal career options and develop communication skills.
● Acquire, analyze and use information about the range of career possibilities, industry trends in computer science and information technology and its related fields to make career planning decisions.
● Use critical thinking skills to plan and assess personal career and further study goals and design educational experiences directed to those goals.
● Use written and oral communication to deliver persuasive viewpoint and technology content to multiple audiences.
● Acquire, analyze and use information about computer sciences and information technology to describe and speculate on the impact of digital communications technology on local and global communities.
Demonstrate an understanding of the fundamentals of computer architecture, operating systems and networks.
● Describe the history of computers and computing.
● Explain how a computer represents and transmits information, how a computer's parts and components are organized and interfaced, basic components of an operating system and basic components of local area networks and wide area networks.
● Analyze and design simple circuits using digital electronics and logic gates.
● Describe the structure and organization of a modern microprocessor, and the sequence of operations in a typical instruction execution.
● Demonstrate a basic understanding of Assembly Language programming.
Analyze and solve problems using a programming language.
● Demonstrate the ability to develop algorithms and computer programs to solve problems by systematically decomposing a complex programming problem into manageable, well-documented steps that results in a design for the problem solution.
● Demonstrate that the program compiles and executes correctly for a given set of data.
● Demonstrate programming competency in a variety of programming structures, including arithmetic operations, control structures and loops, input/output operations including file I/O, the use of function calls, and the use of arrays and other storage types.
● Debug a program using appropriate debugging strategies.
● Produce a complete set of documentation for a program.
Use mathematical concepts and constructs to express ideas and solve problems in computer science, and to communicate quantitative information.
● Use mathematical ideas to solve problems in Computer Science and Information Technology.
● Use mathematical thinking and models, charts, graphs, tables, figures, equations, and appropriate technologies to express ideas and concepts.
● Demonstrate an understanding of discrete mathematical concepts used in computing: Articulate and apply the concepts of binary numbers, combinatorics, logic, truth tables, graph theory and algorithms to problems in Computer Science and Information Technology.
● Analyze and evaluate the mathematical thinking and strategies of others.
Demonstrate effective use of computer-based tools used in the design and creation of interactive applications and electronic media.
● Design, create, and edit electronic images, sounds, videos, text, and motion.
● Use multimedia authoring tools to design, manage, and execute an interactive multimedia project.
Demonstrate the ability to combine knowledge in the discipline and community experiences to finish a community-based project.
● Demonstrate an understanding of a community problem and a need for service and/or support.
● Make a meaningful contribution to the solution of the problem.
Demonstrate professional communication skills in written and oral form.
● Compose a capstone proposal with background research, methods, details description of implementation steps, budget, schedule, risks and evaluation plan.
● Present the background, methods, requirements, process and conclusion of the capstone project clearly in written and oral formats.
Create a comprehensive project according to an approved set of specifications that represents the culmination of CSUMB experiences in the major and showcases an achievement of professional level work.
● Finish the capstone project according to the proposal.
● Apply basic project management skills.
● Evaluate the solution according to a specified set of criteria.
Demonstrate breath of knowledge in Computer Science topics outside of selected concentration.
Through an ethical perspective, students examine the impact of current and future information technologies on economics and culture in society.
● Demonstrate an understanding of the issues regarding the impact of current and future computing & information technologies on social frameworks such as economics, education, governance, globalization and social justice.
● Articulate code of conduct and reflect professional ethics in the computing and technology fields.
● Analyze case studies in current issues and professional ethics.
Students select one of the following concentrations (Software Engineering, Network Security, Information Systems, or Game Development) as listed below.
Apply object-oriented techniques to software construction.
● Apply object-oriented analysis and design to practical software construction.
● Provide a graphical user interface of a software system to a user.
Apply programming skills to a specialized application.
● Utilize professional level platforms and tools to produce software systems that meet specified user needs and constraints.
● Combine several software skills and techniques to create an integrated software system.
● Articulate industry trends in the particular domains.
Demonstrate the ability to analyze, plan, and produce a complete software application.
● Articulate the software system development life cycle and its characteristics.
● Apply best practices regarding project management.
● Analyze needs and constraints of complex software system design.
● Write a project proposal, a project report, and an operating manual.
● Collaborate with team members to implement a large software system.
● Understand and apply modern software production practice and tools such as component based programming, integrated development environment, version control and testing.
Understand and apply network fundamentals.
● Describe networking standards, concepts, topology, and media including LANs, WANs, the TCP/IP model, IP addressing, sub-netting, network hardware, network security and various protocols.
● Explain networking theory and protocols on common network systems.
● Apply IP routing concepts and router administration, distance vector and link state based IP routing algorithms, router interfaces, routing tables, and routing protocol configuration and network security concepts.
Understand and apply fundamentals of security technologies in protecting networks.
● Describe potential threats at each layer of TCP/IP model and most common computer systems.
● Explain foundational technologies that can be used to mitigate the impact of these threats including cryptographic algorithms, key exchange protocols, PKI.
● Apply network and computer security concepts to develop threat analysis within the constraints of requirements, cost and technology.
● Apply system hardening mechanisms to protect end hosts, networking equipment including routers and switches.
Apply processes and methods used to create an enterprise network plan and information systems.
● Examine inputs, business drivers, and deliverables of the planning process.
● Understand practical issues such as information security, business requirements, IT architecture, cost justification, implementation, migration planning, and vendor selection.
● Manage data, voice, and video communications.
● Apply industry standard products to manage and control digital networks.
● Demonstrate setup, configuration, and maintenance of Linux/UNIX servers
● Describe best practice in system administration including security policies and communication strategies with users.
Articulate and apply database design concepts and models.
● Describe components of a database management system and how they work together.
● Systematically design appropriate database structure using normalization and data modeling.
● Program using the database query language SQL.
● Articulate the advantages and purpose of databases, the characteristics of database systems, and how to use database systems both interactively and programmatically.
● Illustrate query processing and optimization techniques, transaction management, and storage and file structures.
Describe the basic structure and operation of modern high tech corporations and the information technologies utilized.
● Articulate various systems, techniques, procedures and conventions that are used to define the business and its strategies, services, products, clients and organizational form.
● Describe how information technology are used in business and the trends of the technologies.
Utilize professional level platforms and tools to produce business information systems that meet the user needs and business constraints.
● Analyze the business problems and select appropriate commercial information systems.
● Evaluate the information system produced for usability, efficiency, and accuracy.
● Articulate industry trends in the particular domains.
● Write an information system proposal to justify the investment in system design.
Understand the fundamental issues in the development of digital games.
● Describe components of modern digital games components and their relationships.
● Articulate the historical development of contemporary video and computer gaming.
● Describe team member roles and tasks within the production process.
● Describe the relationships of conceptual, creative, and technical production process to overall game development.
● Analyze the business, marketing, and industry components of game development.
● Articulate how and why digital games are designed.
● Use game engines and modeling tools to produce components of digital games.
● Generate an original game idea and produce a detailed design document for it.
Develop and produce a computer game.
● Describe the technologies required for game programming.
● Apply programming skills to produce components of digital games.
● Use professional level game development environment in game production.
Demonstrate the ability to analyze, plan and produce a computer game.
Utilize professional level platforms and tools to produce digital games that meet the user needs and system constraints.
● Articulate the software system development life cycle and its characteristics.
● Apply best practices regarding project management.
● Analyze needs and constraints of complex software system design.
● Write a game development proposal to justify the investment.
● Analyze game designs and select appropriate commercial development systems.
● Collaborate with a team to create a simple yet complete digital game.
● Evaluate the games produced for usability, playability, and accuracy.
● Understand and apply modern software production practice and tools such as component based programming, integrated development environment, version control and testing.
These pathways are examples of how you might complete all the requirements for your degree in an order that makes sense given prerequisites. They are meant to give you a general sense of what your education will look like.
Your own unique situation and a number of other factors may mean your actual pathway is different. Perhaps you'll need an extra math or language class, or one of the courses we've listed isn't offered in a particular semester. Don't worry - there is flexibility built into the curriculum. You'll want to work closely with an advisor and use the academic advisement report to take all that into account and develop a pathway that's customized for you.
In the meantime, use this example as a starting point for choosing classes or discussing your plans with an advisor. Your advisor is your best resource when it comes to figuring out how to fit all the courses you need, in the right sequence, into your personal academic plan.
* This FYS class is just an example. The FYS class you choose might meet a different GE area, so you would have to adjust your actual pathway accordingly.