May 12, 2024  
2020-2021 General Catalog 
    
2020-2021 General Catalog [ARCHIVED CATALOG]

Course Descriptions


 

Computer Science

  
  • CS 101 - Introduction to Computers and Computing


    Unit(s): 3 Lecture: 2 hours Laboratory: 2 hours
    This course is an introduction to the concepts, techniques, uses, applications, and terminology of computers, computing, and networking. Emphasis is on the possibilities and limitations of computers and computing in a wide range of personal, commercial, and organizational activities. Topics include computer types, history of computing, computer organization and operation, computer languages, program development, computer applications (word processing, database, graphics, spreadsheets, etc.), basic networking, and computers in society. Weekly hands-on experience with a variety of operating systems, applications, and computer programming.

    Typically Offered Fall & Spring
    Recommended Recommended for all students.
    Grading: OPT
  
  • CS 115 - Programming I


    Unit(s): 4 Lecture: 3 hours Laboratory: 3 hours
    This course gives an overview of computer organization; arithmetic and logical expressions, decision and iteration, simple I/O; subprograms; principles of good programming style, readability, documentation, structured programming concepts; top-down design and refinements; techniques of debugging and testing. Use of the above concepts will be implemented in a standard high-level programming language.

    Prerequisite(s): GE math and English eligibility, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: OPT
  
  • CS 115W - Programming I Workshop


    Unit(s): 1
    A workshop designed to be taken with CS 115. Exploration of programming concepts through problem solving in a group setting.

    Co-requisite(s): CS 115.
    Typically Offered Fall & Spring
    Grading: CNC
  
  • CS 210 - Introduction to Unix


    Unit(s): 1 Laboratory: 3 hours
    This course is an introduction to the use of Linux/Unix as a programming environment. Communicating with a Linux host, shells and shell commands, files and directories, Gnome desktop, jobs and processes, scripting, programming utilities (compiler, linker, debugger, make, hex dump, etc.).

    Prerequisite(s): Grade of C- or better in CS 115 and previous or concurrent enrollment in CS 215, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 215 - Programming II


    Unit(s): 4 Lecture: 3 hours Laboratory: 3 hours
    This course is the sequel to CS 115. Topics include: pointers and dynamic allocation of storage, linked lists, an introduction to the object oriented programming (OOP) paradigm, classes and objects, encapsulation, member variables and member functions, inheritance and polymorphism, scoping, templates, iterators, and error handling techniques.

    Prerequisite(s): Grade of C- or better in CS 115 and previous or concurrent enrollment in CS 210, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 242 - Discrete Structures for Computer Science


    Unit(s): 4 Lecture: 4 hours
    This course covers fundamental mathematical concepts blended with their applications in Computer Science. Topics include: sets, functions and relations, Boolean algebra, normal forms., Karnaugh map and other minimization techniques, predicate logic, formal and informal proof techniques, relational algebra, basic counting techniques, recurrence relations, and an introduction to graph theory.

    Prerequisite(s): Grade of C- or better in CS 115 and MATH 161, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 252 - Introduction to Computer Organization


    Unit(s): 4 Lecture: 3 hours Laboratory: 3 hours
    This course looks at the interface between computer hardware and software by introducing computer architecture and low-level programming. Topics to be covered include: data representations, digital logic, combinational and sequential circuits, computer system organization from the machine language point of view, and assembly language implementation of high-level constructs.

    Prerequisite(s): Grade of C- or better in CS 215 and CS 242, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 285 - Selected Topics in Computer Science


    Unit(s): 1-4
    This lower-division course may be repeated with different subject matter. Content will be indicated by the specific topic.

    Prerequisite(s): As indicated in the specific topic description or consent of instructor.
    Typically Offered Fall & Spring May Be Repeated Course may be repeated with different subject matter. Content will be indicated by the specific topic.
    Grading: OPT
  
  • CS 315 - Data Structures


    Unit(s): 4 Lecture: 3 hours Laboratory: 3 hours
    This course introduces the concept of the organization of data into different structures to support the efficient implementation of computer algorithms. The emphasis of the course is on the internal representation of the elementary and intermediate data structures, their time and space requirements, and their applications. A second component of the course is the study of more advanced features of object-oriented programming.

    Prerequisite(s): Grade of C- or better in CS 210, CS 215, and CS 242, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 330 - Introduction to Game Programming


    Unit(s): 3 Lecture: 2 hours Laboratory: 2 hours
    This course is an introduction to the theory and practice of video game design and programming. Video games combine, in real-time, concepts in computer graphics, human-computer interaction, networking, artificial intelligence, computer aided instruction, computer architecture, and databases. This course introduces students to a variety of game engines and frameworks and explores artificially intelligent agents. Students will work as part of a team to create a complete description document for a computer game and implement a prototype of the game.

    Prerequisite(s): Grade of C- or better in CS 315 or instructor consent.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 340 - Computer Security and Malware


    Unit(s): 3 Lecture: 2 hours Laboratory: 2 hours
    Current methods for increasing security, protecting privacy, and guaranteeing degrees of confidentiality of computer records; ensuring computer installation safety; protecting software products; preventing and dealing with crime; value systems, ethics, and human factors affecting use and misuse of computers. Discussion of recent technical, legal, and sociopolitical issues influencing computer security problems, with an emphasis on malware.

    Prerequisite(s): Grade of C- or better in CS 215 and CS 252, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 349 - Problem Solving in a Team Environment


    Unit(s): 1 Laboratory: 2 hours
    This course focuses on problem solving and program development in a team programming environment. Topics include: techniques for problem analysis and algorithm design, rapid implementation and pair programming methods, use of standard container classes and library functions. Different types of problems will be selected each semester. Students taking this course participate in regional and national programming competitions.

    Prerequisite(s): Grade of C- or better in CS 315 or consent of instructor.
    Typically Offered Fall & Spring May Be Repeated May be repeated for credit. A maximum of 3 units can be applied to the Computer Science major.
    Grading: GRD
  
  • CS 351 - Computer Architecture


    Unit(s): 4 Lecture: 4 hours
    This course is the sequel to CS 252 and includes the following topics: instruction set design; stages of instruction execution: data, and control path design; pipelining; program optimization techniques; memory hierarchy; cache models and design issues; virtual memory and secondary storage; I/O interfacing. Advanced topics to include some of the following: parallel architectures, DSP or other special purpose architecture, FPGA, reconfigurable architecture, and asynchronous circuit design.

    Prerequisite(s): Grade of C- or better in CS 215 and CS 252, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 355 - Database Management Systems Design


    Unit(s): 4 Lecture: 4 hours
    This course focuses on the theoretical as well as the practical aspects of modern database systems.Topics include the study of the entity-relationship (E/R) model, relational algebra, data normalization, XML as a semi-structured data model, data integrity, and database administration. Current tools and technologies are used to create and manipulate sample databases.

    Prerequisite(s): Grade of C- or better in CS 215 or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 360 - Object-Oriented Programming


    Unit(s): 3 Lecture: 2 hours Laboratory: 3 hours
    Principles of object-oriented programming, including encapsulation, inheritance, polymorphism, and design patterns. Specific applications are developed in one or more object-oriented programming languages and will cover the use of application frameworks and graphical user interfaces based on object-oriented principles.

    Prerequisite(s): Grade of C- or better in CS 315, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 365 - Computer Networking and the Internet


    Unit(s): 3 Lecture: 2 hours Laboratory: 3 hours
    This course introduces the theory and practice of computer networking, with coverage of key theories in data communication and how these theories relate to current practices and will drive future practices. Network hardware implementations of local area networks, wide area networks, telephone networks, and wireless networks are investigated. Network software implementations of switches and routers, peer-to-peer networking, and hosted applications are investigated with exercises in writing and debugging network protocols in the laboratory.

    Prerequisite(s): Grade of C- or better in CS 215 and CS 252, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 370 - Software Design and Development


    Unit(s): 4 Lecture: 4 hours
    Techniques of software design and development. Software lifecycle, requirements, formal specification, metrics, design, functional and structural testing, rapid prototyping, complexity, version control, and team management. Software metrics, tools for component-based software development. Team-based, agile, and scrum methodologies emphasized.

    Prerequisite(s): Grade of C- or better in CS 215 or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 375 - Computer Graphics


    Unit(s): 3
    An introduction to computer graphics. Survey of the fundamental algorithms and methodologies, including, but not limited to, polygon fill, line-drawing, antialiasing, geometric transformations, viewing and clipping, spline representation, occlusion and visible surface detection, illumination, texturing, color models, rendering, shaders, animation, and emerging techniques.

    Prerequisite(s): Grade of C- or better in CS 215 and MATH 161, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 380 - ETS Major Field Test


    Unit(s): 1
    The focus of this course is preparation for the Major Field Test in Computer Science. Students will review material in the basic knowledge areas of computer science including: discrete structures, programming, algorithms and complexity, systems, software engineering, and information management. The course will culminate with students taking the Major Field Test in Computer Science administered through Educational Testing Services. This course is intended for students whom have completed the majority of required coursework in the CS major and are within one semester of graduation.

    Typically Offered Variable Intermittently
    Grading: CNC
  
  • CS 385 - Selected Topics in Computer Science


    Unit(s): 1-4
    This course may be repeated with different subject matter for credit in the CS major.

    Prerequisite(s): As indicated in the specific topic description or consent of instructor.
    Typically Offered Fall & Spring May Be Repeated Course may be repeated with different subject matter for credit in the CS major.
    Grading: OPT
  
  • CS 386 - Selected Topics in CS with Lab


    Unit(s): 3 Lecture: 2 hours Laboratory: 3 hours
    This course may be repeated with different subject matter for credit in the CS major.

    Prerequisite(s): As indicated in the specific topic description or consent of instructor.
    Typically Offered Variable Intermittently May Be Repeated Course may be repeated with different subject matter for credit in the CS major.
    Grading: GRD
  
  • CS 390 - Computer Science Colloquium


    Unit(s): 1
    Series of lectures on current developments in computer science.

    May Be Repeated May be repeated for credit; a maximum of 3 units can be applied to the CS major; students will be required to attend all presentations, take notes, and research each of these presentations. Contact the department for specific information.
    Grading: CNC
  
  • CS 415 - Algorithm Analysis


    Unit(s): 4 Lecture: 4 hours
    This course provides a systematic approach to the design and analysis of algorithms with an emphasis on efficiency. Topics include algorithms for searching and sorting, hashing, exploring graphs, and integer and polynomial arithmetic. Foundations in recurrence relations, combinatorics, probability, and graph theory as used in algorithm analysis are covered. Standard design techniques such as divide-and-conquer, greedy method, dynamic programming, heuristics, and probabilistic algorithms along with NP-completeness and approximation algorithms are included.

    Prerequisite(s): Grade of C- or better in CS 315, or consent of instructor.
    Grading: GRD
  
  • CS 425 - Parallel Computing


    Unit(s): 3 Lecture: 3 hours
    Overview of parallel patterns, programming models, and hardware. Topics include parallel performance analysis; types of parallelism; parallel decomposition of tasks; shared vs. distributed memory; synchronization; hands-on experience with multiple parallel programming models; and architectural support for parallelism.

    Prerequisite(s): Grade of C- or better in CS 252 and CS 315, or consent of instructor.
    Grading: GRD
  
  • CS 450 - Operating Systems


    Unit(s): 4 Lecture: 4 hours
    This course covers the fundamental concepts of operating system design and implementation; the study of problems, goals, and methods of concurrent programming; and the fundamentals of systems programming. Topics include resource-management, process and thread scheduling algorithms, inter-process communication, I/O subsystems and device-drivers, memory management including virtual memory, segmentation, and page-replacement policies. These topics will be covered in theory and in practice through the study of the source-code of a working operating system.

    Prerequisite(s): Grade of C- or better in CS 252 and CS 315, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 452 - Compiler Design and Construction


    Unit(s): 3 Lecture: 2 hours Laboratory: 2 hours
    Application of language and automata theory to the design and construction of compilers. Lexical scanning, top-down and bottom-up parsing; semantic analysis, code generation; optimization. Design and construction of parts of a simple compiler using compiler generation tools.

    Prerequisite(s): Grade of C- or better in CS 315 and CS 252, or consent of instructor.
    Typically Offered Variable Intermittently
    Grading: GRD
  
  • CS 454 - Theory of Computation


    Unit(s): 4 Lecture: 4 hours
    Overview of various kinds of computability, unsolvability, and decidability. The P versus NP problem. Abstract mathematical models of computing devices and language specification systems with focus on regular and context-free languages. Classification of computer-solvable problems.

    Prerequisite(s): Grade of Cor better in CS 315, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 460 - Programming Languages


    Unit(s): 4 Lecture: 4 hours
    This course provides a survey of the syntactic, semantic, and implementation features of functional, procedural, object-oriented, logic, and concurrent programming languages.

    Prerequisite(s): Grade of C- or better in CS 252 and CS 315, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 465 - Data Communications


    Unit(s): 3 Lecture: 2 hours Laboratory: 3 hours
    The ISO reference model, theoretical basis for data communications, data transmission theory and practice, telephone systems, protocols, networks, internetworks, with examples.

    Prerequisite(s): Grade of C- or better in CS 365, or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 470 - Advanced Software Design Project


    Unit(s): 3 Lecture: 3 hours
    This course is a project-based course designed to provide a “real world, team oriented” capstone experience for Computer Science majors. Coursework will be organized around large programming projects. The content of the projects may vary depending on the interests of the instructor and may include industry, government, nonprofit organization, or other affiliations.

    Prerequisite(s): Grade of C- or better in CS 315, CS 370, and senior-standing in the major; or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 480 - Artificial Intelligence


    Unit(s): 3 Lecture: 3 hours
    This course is a survey of techniques that simulate human intelligence. Topics may include: pattern recognition, general problem solving, adversarial game-tree search, decision-making, expert systems, neural networks, fuzzy logic, and genetic algorithms.

    Prerequisite(s): Grade of C- or better in CS 315 or consent of instructor.
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 495 - Special Studies


    Unit(s): 1-4
    This course is intended for students who are doing advanced work in an area of computer science (e.g., a senior project).

    Prerequisite(s): an upper-division CS course in the area of interest and consent of instructor.
    Typically Offered Fall & Spring May Be Repeated May be repeated for credit.
    Grading: OPT
  
  • CS 496 - Senior Research Project


    Unit(s): 3
    Students, under the direction of one or more faculty members, undertake a substantial research project that is based on multiple upper-division CS courses. The result of the research is presented by the students in one of the Colloquium (CS 390) meetings.

    Prerequisite(s): Senior standing and consent of instructor
    Typically Offered Fall & Spring
    Grading: GRD
  
  • CS 497 - Internship


    Unit(s): 1-3
    Student projects conceived and designed in conjunction with an off-campus organization or group. The internship is intended to provide on-the-job experience in an area of computer science in which the student has no prior on-the-job experience. Computer hardware or computer time Required for the internship, as well as regular supervision of the intern, must be provided by the off-campus organization.

    Prerequisite(s): student must be within 30 units of completion of the CS major.
    Typically Offered Fall & Spring May Be Repeated Course may be repeated for credit.
    Grading: CNC