Computer Science

The Department of Computer Science offers undergraduate programs leading to the Bachelor of Science in Computer Science, the Bachelor of Science in Computer Information Systems, and the Associate of Applied Business in Computer Information Systems, as well as minors and certificates. The department also offers a graduate program leading to an Master of Science in Computer Science.

Computer Information Systems (CISS)

CISS 105  Introduction to Computers and Application Software  (3 Units)  
Overview of basic computer concepts, electronic mail and Internet terminologies. Introductory-level instruction and hands-on experience in word processing, spreadsheet, database and presentation software. (Formerly 2440:105)
  
CISS 121  Introduction of Logic/Programming  (3 Units)  
Prerequisite: CISS 105 with a grade of C or better or placement test. An introduction to business problem solving using computer-based solutions. Topics include structured design, documentation and modularity. Includes a component of hands-on programming. (Formerly 2440:121)
  
CISS 125  Spreadsheet Software  (2 Units)  
Prerequisite: CISS 105 with a grade of C or better or placement test. Emphasizes mastery of spreadsheet applications using Excel. (Formerly 2440:125)
  
CISS 134  Cybersecurity Fundamentals  (3 Units)  
Prerequisite: CISS 105 with a grade of C or better or placement test. Fundamentals of malware, social theories, protocols, firewalls, computer forensics, intrusion detection, prevention and containment incidents, incident response, and cybersecurity policy. (Formerly 2440:134)
  
CISS 140  Introduction to Web Development  (3 Units)  
Prerequisite: CISS 105 with a grade of C- or better or computing placement test. Students will learn to create web pages using HTML/HTML5 resources such as hyperlinks, tables, forms, images, and multimedia. Emphasis is also placed on how to enhance web documents using CSS and other web technologies. Students are introduced to fundamentals of client-side programming. (Formerly 2440:140)
  
CISS 141  Web Server Administration  (3 Units)  
Prerequisite: CISS 105 with a grade of C or better or placement test. Provides Web server administration guidelines such as selecting software/hardware, domain name registration, analyzing security/legal issues, and implementing marketing strategies. (Formerly 2440:141)
  
CISS 145  Introduction to Unix/Linux  (3 Units)  
Prerequisite: CISS 105 with a grade of C or better or placement test. This course explores the vital functions that an operating system performs. A multi-user operating system is studied from a functional and hands-on approach. (Formerly 2440:145)
  
CISS 160  JAVA Programming  (3 Units)  
Prerequisite: CISS 121 with a grade of C or better. Course introduces the JAVA programming language. Programming techniques are demonstrated through the coding, testing and debugging of JAVA applications and applets. (Formerly 2440:160)
  
CISS 170  Visual BASIC  (3 Units)  
Prerequisite: CISS 121 with a grade of C or better. Course includes hands-on experience with Visual BASIC, design of Graphical User Interface (GUI) applications, event-driven programming, linking of windows, and accessing relational databases. (Formerly 2440:170)
  
CISS 180  Introduction to Database Management  (3 Units)  
Prerequisite: CISS 121 with a grade of C or better. Overview of database system models and functions. Covers introduction to database design and relational database definition and manipulation using SQL. (Formerly 2440:180)
  
CISS 201  Networking Basics  (3 Units)  

Prerequisites: CISS 105 with a grade of C- or better or placement exam and [MATH:143 or MATH:144 or MATH:145 or higher math with a grade of C- or better or higher math placement]. The introductory course in networking. It includes study of the common network protocols, structures, and models. Basic router and switch configurations are introduced. (Formerly 2440:201)

  
CISS 202  Router and Routing Basics  (3 Units)  
Prerequisite: CISS 201 with a grade of C or better. The second course to networking. It covers basic router configuration as well as routed and routing protocols. (Formerly 2440:202)
  
CISS 203  Switching Basics and Wireless  (3 Units)  
Prerequisites: CISS 201 and CISS 202 with a grade of C or better in both. The third of four courses leading to the CCNA certification. The course covers switching basics and basic wireless networking. (Formerly 2440:203)
  
CISS 204  Enterprise Networking  (3 Units)  

Prerequisites: CISS 201 and CISS 202 (each with a grade of C- or better). The third of three courses leading to the CCNA certification. Topics covered include IP services and Network Automation. (Formerly 2440:204)

  
CISS 210  Client/Server Programming  (3 Units)  
Prerequisite: CISS 180 with a grade of C- or better. Introduces student to client/server programming concepts and implementations. Includes hands-on experience to show integration of databases in client-server program development. (Formerly 2440:210)
  
CISS 211  Interactive Web Programming  (3 Units)  
Prerequisites: CISS 121 and CISS 140 (each with a grade of C or better). Provides students with instruction on interactive Web programming using XML and DHTML (HTML/XHTML/HTML5, CSS, and Web scripting). (Formerly 2440:211)
  
CISS 212  Multimedia & Interactive Web Elements  (3 Units)  
Prerequisite: CISS 140 with a grade of C or better. Reviews and demonstrates web tools and techniques like RealAudio, Shockwave, QuickTime, video conferencing and other dynamic graphical elements to enhance Web-based communication. Multimedia software may change to reflect current technology. (Formerly 2440:212)
  
CISS 240  Computer Information Systems Internship  (3 Units)  
Prerequisites: CISS 241 or [CISS 202 and CISS 247] each with a grade of C- or better and permission of department. Provides student experience in computing/information technology in the workplace. (Formerly 2440:240)
  
CISS 241  Systems Analysis & Design  (3 Units)  

Prerequisites: CISS 180 and [CISS 160 or CISS 170 or CISS 256 or CPSC 209], each with a grade of C- or better. Covers all phases of business systems analysis, design, development, and implementation. Such principles as system flowcharting and file and document design emphasized. (Formerly 2440:241)

  
CISS 247  Hardware Support  (3 Units)  
Prerequisite: Admission to program or permission of the program director. This course introduces the student to the basic skills required to troubleshoot, maintain and repair computers. (Formerly 2440:247)
  
CISS 248  Server Hardware Support  (3 Units)  
Prerequisite: CISS 247 with a grade of C or better. This course introduces the student to server hardware and expands student knowledge of client hardware. (Formerly 2440:248)
  
CISS 251  CIS Projects  (3 Units)  
Prerequisite: CISS 241 with a grade of C or better or permission. Using a simulated work environment, project teams are set up and required to analyze an unstructured problem, prepare alternative designs and implement a solution. (Formerly 2440:251)
  
CISS 256  C++ Programming  (3 Units)  
Prerequisite: CISS 121 with a grade of C or better. This course explores object-oriented programming through C++ program development. (Formerly 2440:256)
  
CISS 282  Microsoft Networking II  (3 Units)  
Prerequisite: 2440:281 with a grade of C or better. Provides the knowledge and skills necessary to manage and maintain computers with the Windows Server 2008 Network Operating System. This course will also help prepare you to pass the MCTS Exam. (Formerly 2440:282)
  
CISS 283  Microsoft Networking III  (3 Units)  
Prerequisite: CISS 282 with a grade of C or better. Provides the knowledge and skills necessary to manage and maintain an active directory service hosted by the Server 2008 Network Operating System. This course also helps prepare the student to pass the MCTS Exam. (Formerly 2440:283)
  
CISS 284  Microsoft Networking IV  (3 Units)  
Prerequisite: CISS 283 with a grade of C or better or passing score on the 70-640 Microsoft Certification Exam. This course will provide you with the knowledge and skill necessary to install, configure, manage and maintain the server services provided with Server 2008. (Formerly 2440:284)
  
CISS 290  Special Topics: Computer Information Systems  (1-5 Units)  
Selected topics or subject areas of interest in computer information systems. (Formerly 2440:290)
  
CISS 300  Network Authentication and Security  (3 Units)  
Prerequisites: CISS 204 with a grade of C or better and junior or better standing. This course focuses on network security issues related to conducting business over the Internet, including authentication, authorization, and firewalls. (Formerly 2440:300)
  
CISS 303  Voice, Data, and Video  (3 Units)  
Prerequisites: CISS 204 with a grade of C or better and junior or better standing. This course focuses on network issues related to the integration of voice, data, and video over the same network media and equipment. (Formerly 2440:303)
  
CISS 306  Ethics & Law in Information Technology  (3 Units)  
Prerequisite: Junior or greater standing. This course is designed to introduce the student to the central issues concerning intellectual property, privacy, and copyright law as it pertains to the development and distribution of software systems. (Formerly 2440:306)
  
CISS 310  Wireless Networking  (3 Units)  
Prerequisite: CISS 204 with a grade of C or better or permission. This course provides students with various wireless networking technologies. (Formerly 2440:310)
  
CISS 311  Client/Server Programming II  (3 Units)  
Prerequisite: CISS 210 with a grade of C or better. Discusses tools for client-server programming, distributed computing, socket programming, and security implementation. (Formerly 2440:311)
  
CISS 321  Server-Side Scripting  (3 Units)  
Prerequisites: CISS 121 and CISS 140, both with a grade of C or better. This course provides students with instruction on using server-side scripting languages to develop interactive client/server web-based applications. (Formerly 2440:321)
  
CISS 331  Programming for Cybersecurity  (3 Units)  
Prerequisites: CISS 121 and CISS 145 with grades of C or better. This course will introduce basic programming techniques used for ethical hacking using the Linux Operating System and other tools that are commonly used in cybersecurity. (Formerly 2440:331)
  
CISS 360  Java Programming II  (3 Units)  
Prerequisite: CISS 160 with a grade of C or better. This course covers advanced object-oriented programming concepts, GUI programming, web application programming, network and security programming, JavaBeans and explores aggregations. (Formerly 2440:360)
  
CISS 365  E-Business Application Development  (3 Units)  
Prerequisites: CISS 211 and CISS 321, both with a grade of C or better. This course covers web programming techniques to develop Web-based e-business solution and covers e-business models and business issues. (Formerly 2440:365)
  
CISS 370  Visual Basic Programming II  (3 Units)  
Prerequisite: CISS 170 with a grade of C or better. This course explores object-oriented programming through Visual Basic program development at a more advanced level, with more attention to business applications. (Formerly 2440:370)
  
CISS 388  Advanced UNIX/Linux  (3 Units)  
Prerequisites: CISS 145 with a grade of C or better and junior or greater standing. This course provides students with the necessary knowledge and skills to perform basic administrative tasks on a UNIX/Linux operating system. (Formerly 2440:388)
  
CISS 400  Advanced Routing  (4 Units)  

Prerequisites: CISS 201, CISS 202 and CISS 204 with a grade of C- or better.Advanced routing protocols and features. Complies with the content of the Cisco Academy Cisco Certified Network Professional (CCNP) Enterprise Core course. (Formerly 2440:400)

  
CISS 401  Multilayer Switching  (3 Units)  
Prerequisites: Must have a current CCNA certification and be able to program a router to the CCNA standards (requires permission), or must have successfully completed all four Cisco Networking Academy CCNA courses from an accredited academy (CISS 201, CISS 202, CISS 203, CISS 204, all with a grade of C or better). This course focuses on switching protocols and features. This course complies with the content of the Cisco Academy Cisco Certified Network Profession (CCNP) Switching course. (Formerly 2440:401)
  
CISS 402  Troubleshooting Complex IP-based Networks  (4 Units)  
Prerequisites: CISS 400 and CISS 401 with grades of C or better or permission. This course focuses on methodologies and hands-on skills needed to maintain and troubleshoot complex IP networks. (Formerly 2440:402)
  
CISS 430  Network Monitoring and Management  (3 Units)  
Prerequisite: CISS 204 with a grade of C or better or junior or greater standing. This course provides students the basic theory and practical application of network monitoring and management skills. (Formerly 2440:430)
  
CISS 431  UNIX-based Systems Security  (3 Units)  
Prerequisites: CISS 388 with a grade of C or better and junior or greater standing. This course will introduce the various methods used to secure UNIX-based operating systems (Apple iOS and Andriod Operating System) on a computer network. (Formerly 2440:431)
  
CISS 432  Internet of Things  (3 Units)  

Prerequisites: CISS:201 and [CISS:121 or DGFR:383 with a C- or better]. All aspects of IoT technologies. Device programming, sensing technologies, networking design and data analytics for IoT.

  
CISS 441  Cyber Security  (3 Units)  
Prerequisites: MATH 361, DGFR 441, and CISS 388 with a grades of C or better and junior or greater standing. This course will address issues involving hacking, malware, social theories, protocols, firewalls, intrusion detection, the prevention and containment of intrusion incidents, the incident response process, and computer forensic examination. (Formerly 2440:441)
  
CISS 450  Applied Data Mining  (3 Units)  
Prerequisites: MATH 345 and junior or greater standing. This course is designed to introduce the student to the central issues in business data mining. (Formerly 2440:450)
  
CISS 451  CIS Senior Design Projects I  (3 Units)  

Prerequisite: CISS 306, CISS 388, senior standing and admission to a computer information systems major within the College of Engineering and Polymer Science. Team-based research, documentation, and implementation of a project on a current topic in information technology. Capstone experience for Computer Information Systems Bachelor of Science program. (Formerly 2440:451)

Gen Ed: Capstone  
CISS 452  CIS Practicum  (3 Units)  
Prerequisite: Permission. Provides students with experience in computer information systems operation and maintenance in the workplace. Practicum must be relevant to the specialization area. (Formerly 2440:452)
  
CISS 456  C++ Programming II  (3 Units)  

Prerequisite: CISS 256 or CPSC 209 with a grade of C- or better. This course explores object-oriented programming through C++ program development at a more advanced level. Also considers Visual programming and connection to databases. (Formerly 2440:456)

  
CISS 465  Data Communications & Networking  (3 Units)  
Prerequisite: Junior or greater standing. Introduces students to business data communication and networking concepts. The OSI model, various network configuration and popular industry communication protocols are explored at an advanced level. (Formerly 2440:465)
  
CISS 470  Database Management II  (3 Units)  
Prerequisite: CISS 180 with a grade of C or better. Covers advanced database design, definition, manipulation, and administration tasks with emphasis placed on the relational model, the object-oriented model, and client/server systems. (Formerly 2440:470)
  
CISS 480  Current Topics in Computer Information Systems  (3 Units)  
Prerequisite: Permission. Seminar in topics of current interest in information technology or special individual topics in information technology. (Formerly 2440:480)
  
CISS 490  CIS Senior Networking Projects  (3 Units)  
Prerequisites: CISS 388, CISS 400, and CISS 401 with grades of C or better or permission. The capstone course is used to research, document and implement current and advanced IT topics using knowledge and skills developed from networking courses. (Formerly 2440:490)
  
CISS 491  CIS Senior Cybersecurity Project  (3 Units)  
Prerequisites: DGFR 442, DGFR 443, and CISS 388 with grades of C or greater or permission. This is the capstone course for the CIS Digital Forensics and Cybersecurity degree options. (Formerly 2440:491)
  

Computer Science (CPSC)

CPSC 101  Essentials of Computer Science  (3 Units)  
Explore major topics in Computer Science - computing systems, data representation, hardware, programming topics, and important applications such as networks, robotics, databases, and gaming. (Formerly 3460:101)
  
CPSC 125  Descriptive Computer Science  (2 Units)  
Computer literacy: terminology; methods, media for data representation, storage; elements of a computing system; data organization. (Formerly 3460:125)
  
CPSC 126  Introduction to Visual Basic Programming  (3 Units)  
Windows GUI and Microsoft's Visual BASIC programming environment. Design of user interfaces, event-driven programming, basic control structures, simple variables, arrays, and sequential files. (Formerly 3460:126)
  
CPSC 200  Programming for Data Science  (4 Units)  

Prerequisite: MATH 143 or MATH 144 or MATH 145 or higher math with a grade of C- or better or placement in higher math. Introductory programming for data-intensive applications including data collection, pre-processing/cleansing, analysis, and visualization, using libraries for processing of large data sets. Designed as a first programming course for non-majors in the sciences (Formerly 3460:200)

  
CPSC 209  Computer Science I  (4 Units)  

Prerequisite: MATH 143 or MATH 144 or MATH 145 or MATH 149 or MATH 154 with a grade of C- or better or equivalent, or placement in higher math. Introduction to problem-solving methods and algorithms. Programming in a high-level language including how to design, code, debug and document programs with good programming style. (Formerly 3460:209)

  
CPSC 210  Computer Science II  (4 Units)  
Prerequisites: CPSC 209 and MATH 208 with a grade of C- or better. Dynamic memory allocation methods, elementary data structures, internal representations, and associated algorithms. Topics include lists, stacks, queues, trees, and sorting methods. (Formerly 3460:210)
  
CPSC 289  Selected Topics in Computer Science  (1-3 Units)  
Prerequisite: Permission. Selected topics of interest in computer science. (Formerly 3460:289)
  
CPSC 306  Assembly and System Programming  (4 Units)  
Prerequisite: Completion of CPSC 210 or equivalent with a grade of C- or better. Basic computer organization, digital logic, and data representation. Programming in assembly and C languages on a typical digital computer. (Formerly 3460:306)
  
CPSC 307  Internet Systems Programming  (3 Units)  
Prerequisite: Completion of CPSC 210 or equivalent with a grade of C- or better. Overview of current programming languages, tool and scripting technologies for the Internet and World Wide Web. (Formerly 3460:307)
  
CPSC 316  Data Structures  (3 Units)  
Prerequisites: CPSC 210 and [MATH 221 or MATH 210] with grades of C- or better. A continuation of topics in CPSC 210. Topics include: graphs and graph algorithms, external sorting, hashing, advanced tree and file structures. (Formerly 3460:316)
  
CPSC 389  Intermediate Topics in Computer Science  (1-3 Units)  
Prerequisite: Permission of instructor. Selected topics of interest in computer science at an intermediate level. (Formerly 3460:389)
  
CPSC 395  Internship in Computer Science  (1-12 Units)  
Prerequisites: Completion of CPSC 209 and CPSC 210 with grades of C- or better, and permission of a faculty supervisor. Placement in industry for experience related to computer science. (May be repeated to a maximum of 12 credit hours. No more than three credits may be applied towards a computer science major.) (Formerly 3460:395)
  
CPSC 406  Introduction to C & UNIX  (3 Units)  
Prerequisite: Programming experience. Syntax of C with flow structures, pointers, and command line concepts. For UNIX, shell scripts, UNIX file structure, system calls and interprocess communication protocols. (Not an approved mathematics and computer science major, minor, or certificate elective.) (Formerly 3460:406)
  
CPSC 408  Windows Programming  (3 Units)  
Prerequisites: Completion of CPSC 210 or CPSC 406 with a grade of C- or better or permission. Windows operating systems, integrated development environment, event-driven programming, graphical user interface design, object libraries, component object model, object linking, embedding, client-server objects. (Formerly 3460:408)
  
CPSC 411  Human-Computer Interaction  (3 Units)  
Prerequisite: CPSC 316. This course introduces the basic concepts and technologies of Human-Computer Interaction (HCI). Students will learn how to design and implement systems for human to interact with computers. Topics include: Categories of HCI, CLI, GUI, NUI, Design, Implementation and Evaluation of HCI, HCI Devices, Virtual Device Drive, HCI Toolkits, HCI Standards, Categories of Interactive Tasks, EDP and Multi-Threading in HCI, VR/AR/MR/XR in HCI, APP HCI, 3D Printing. (Formerly 3460:411)
  
CPSC 415  Big Data Programming  (3 Units)  
Prerequisite: CPSC 210 with a grade of C- or higher. Fundamentals of big data programming and computing platforms. Wrangling, modeling, visualizing, and analyzing data; computing platforms for data mining and deep learning. (Formerly 3460:415)
  
CPSC 418  Introduction to Discrete Structures  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better or permission. Introduction to a number of structures in algebra of particular use to student in computer science. Topics include algorithms and flow chart language, graphs and digraphs, trees, lattices codes. (Formerly 3460:418)
  
CPSC 421  Object-Oriented Programming  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better. Object-oriented design, analysis, and programming using different development models. Comparison with other programming paradigms. (Formerly 3460:421)
  
CPSC 426  Operating Systems  (3 Units)  
Prerequisites: Completion of CPSC 316 and CPEN 320 or equivalents with grades of C- or better. Introduction to aspects of all modern operating systems: types; storage management; process and resource control; interacting process synchronization. (Formerly 3460:426)
  
CPSC 428  UNIX System Programming  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better and knowledge of C. An overview of the UNIX operating system. Shell programming. Process management, processor management, storage management, scheduling algorithms, resource protection, and system programming. (Formerly 3460:428)
  
CPSC 430  Theory of Programming Languages  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better. Advanced concepts underlying programming languages and their applications, formal definitions of programming languages, Backus Normal Form, semantics. Alternative programming paradigms including functional programming. (Formerly 3460:430)
  
CPSC 435  Algorithms  (3 Units)  
Prerequisite: Completion of CPSC 316 with a grade of C- or better. Design and analysis of efficient algorithms for random access machines; derivation of pattern classification algorithms. (Formerly 3460:435)
  
CPSC 436  Applied Machine Learning  (3 Units)  
Prerequisite: CPSC 210 with a grade of C- or higher. Machine learning studies algorithms and models that enable computers to complete task without explicit instructions. These algorithms rely on rules, associations, and patterns presented in large data sets gathered or generated through self-learning. This course will introduce students the fundamentals of machine learning, and concepts of deep learning. Topics include machine learning concepts, tasks, and workflow; supervised learning methods for classification and prediction; unsupervised learning methods for pattern recognition; concepts of advanced supervised learning methods including deep learning algorithms such as neural networks and convolutional neural networks. The main focus of the course is the application of industry-leading machine learning algorithms and the enabling techniques that make the implementation of the algorithms practical. (Formerly 3460:436)
  
CPSC 438  Interactive Game & Game Engine Design  (3 Units)  
Prerequisite: CPSC 316. This course will introduce the basic concepts and techniques of game and game engine design. Students will learn how to design and implement interactive computer games and game engines. Topics include: Interactive Animation, Game Engines, EDP in Game Development, Procedural Animation and Physics Engine, Decision Making and AI Games, Surface & Volume Representation, VR, AR, MR, APP Games, Game Engine Development, and Voxel-Engine. (Formerly 3460:438)
  
CPSC 440  Compiler Design  (3 Units)  
Prerequisites: Completion of CPSC 210 and (CPEN 320 or CPSC 306), with a grade of C- or better. Techniques used in constructing compilers, including lexical and syntactic analysis, parsing techniques, object code generation and optimization. Course requires a compiler implementation project. (Formerly 3460:440)
  
CPSC 445  Introduction to Bioinformatics  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better or permission. Introduce major themes in bioinformatics. Topics include concepts of molecular genetics, biological databases, database searching, sequence alignments, phylogenetic trees, structure prediction, and microarray data analysis. (Formerly 3460:445)
  
CPSC 453  Computer Security  (3 Units)  
Prerequisites: Completion of CPSC 210 with a grade of C- or better. Principles of computer security -- cryptography, authentications, secure network protocols, intrusion detection and countermeasures. (Formerly 3460:453)
  
CPSC 455  Data Communication & Computer Networks  (3 Units)  
Prerequisites: Completion of CPSC 210 with a grade of C- or better. ISO-OSI, TCP/IP, SNA data switching, protocols, flow and error control, routing, topology, Network trends, network taxonomies, and socket-based programming. (Formerly 3460:455)
  
CPSC 457  Computer Graphics  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better. Topics in vector and raster graphics, interactive graphics languages, scan conversion, clipping, geometric transformation, projection, shading, animation and virtual reality. (Formerly 3460:457)
  
CPSC 460  Artificial Intelligence & Heuristic Programming  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better. Study of various programs which have displayed some intelligent behavior. Exploration of level at which computers can display intelligence. (Formerly 3460:460)
  
CPSC 463  Pervasive Computing  (3 Units)  
Prerequisites: Completion of CPSC 210 with a grade of C- or better. Computing from a wireless perspective. Topics include protocols, algorithms, security and sensor networks. (Formerly 3460:463)
  
CPSC 465  Computer Architecture  (3 Units)  
Prerequisite: Completion of CPSC 210 and (CPEN 320 or CPSC 306), with a grade of C- or better. An introduction to the hardware organization of the computer at the register, processor and systems level. In-depth study of the architecture of a particular computer system family. (Formerly 3460:465)
  
CPSC 468  Mobile Robotics  (3 Units)  
Prerequisites: Completion of CPSC 210 with a grade of C- or better. Introduction to history, hardware and software components, and design of autonomous mobile robots. Multiple projects involving both physical robots and software emulation. (Formerly 3460:468)
  
CPSC 475  Database Management  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better. Fundamentals of database organization, data manipulations and representation, data integrity, privacy. (Formerly 3460:475)
  
CPSC 476  Introduction to NoSQL Data Management  (3 Units)  
Prerequisite: CPSC 210. The widespread emergence of big data storage needs has driven the development and adoption of a new class of non-relational databases commonly referred to as NoSQL databases. This course will explore the origins of NoSQL databases and the characteristics that distinguish them from traditional relational database management systems. Core concepts of NoSQL databases will be presented, followed by an exploration of how different database technologies implement these core concepts. We will take a closer look at 1-2 databases from each of the four main NoSQL data models (key-value, column family, document, and graph), highlighting the business needs that drive the development and use of each database. Finally, we will present criteria that decision makers should consider when choosing between relational and non-relational databases and techniques for selecting the NoSQL database that best addresses specific use cases. (Formerly 3460:476)
  
CPSC 477  Introduction to Parallel Processing  (3 Units)  
Prerequisites: Completion of CPSC 316 with a grade of C- or better and knowledge of C. Commercial processors: past and present. Parallel languages, models of parallel computation, parallel algorithm design and performance evaluation. Parallel paradigms with relation to real world applications. (Formerly 3460:477)
  
CPSC 480  Software Engineering  (3 Units)  
Prerequisite: Completion of CPSC 210 with a grade of C- or better. Introduction to formal software specification and validation. Introduction of methodologies and tools of design, development and validation, and maintenance. (Formerly 3460:480)
  
CPSC 489  Topics in Computer Science  (1-3 Units)  
Prerequisite: Permission of instructor. Selected topics in computer science at an advanced level. (Formerly 3460:489)
  
CPSC 490  Senior Seminar in Computer Science  (3 Units)  
Prerequisites: Must have completed at least 30 hours of CPSC courses. Corequisites: CPSC 435 and [CPSC 426 or CPEN 325]. Professional software development, surviving 'Mission Impossible' projects, computer ethics, intellectual property rights (patents and copyrights), and other current topics. (Formerly 3460:490)
Gen Ed: Capstone  
CPSC 497  Individual Study in Computer Science  (1-3 Units)  
(May be repeated. Can apply to degree, minor or certificate only with department approval.) Prerequisite: Permission. Directed studies designed as introduction to research problems under guidance of designated faculty member. (Formerly 3460:497)
  
CPSC 498  Senior Honors Project: Computer Science  (1-3 Units)  
Prerequisites: CPSC 497 and Senior student in Honors Program. Directed study for senior student in the Honors Program who has completed CPSC 497. An introduction to research problems in the computer science under the guidance of selected faculty. (Formerly 3460:498)