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.
- Artificial Intelligence and Machine Learning, Certificate
- Computer Information System, Software Development Option, AAB
- Computer Information Systems, Cybersecurity Option, BS
- Computer Information Systems, Networking Option, AAB
- Computer Information Systems, Networking Option, BS
- Computer Information Systems, Networking, Minor
- Computer Information Systems, Software Development Option, BS
- Computer Information Systems, Software Development, Certificate
- Computer Information Systems, Software Development, Minor
- Computer Science, BS
- Computer Science, Certificate
- Computer Science, Minor
- Computer Security, Certificate
- Computer Security, Minor
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)
CISS 204 Enterprise Networking (3 Units)
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)
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)
CISS 241 Systems Analysis & Design (3 Units)
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)
CISS 331 Programming for Cybersecurity (3 Units)
CISS 340 Virtualization and Cloud Computing (3 Units)
CISS 350 Python Programming (3 Units)
Prerequisite: CISS 121. Object-oriented concepts in Python. Basic concepts of handling and processing data.
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)
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)
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)
CISS 410 Software Security (3 Units)
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)
CISS 440 Security Management and Incident Response (3 Units)
Prerequisites: DGFR 441 and CISS 204. This class prepares the student in the complementary disciplines of security management, with emphasis on best practices under normal operating conditions, and incident response (IR), with corresponding emphasis on best practices throughout the entire incident lifecycle.
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)
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)
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)
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)
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)
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)
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)