Academic Catalog

Computer Science (C S)

C S 1A  •  OBJECT-ORIENTED PROGRAMMING METHODOLOGIES IN JAVA

C S 1A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: Intermediate Algebra or equivalent; not open to students with credit in C S 1AH.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic introduction to fundamental concepts of computer science through the study of the Java programming language. Coding topics include Java control structures, classes, methods, arrays, graphical user interfaces and elementary data structures. Concept topics include algorithms, recursion, data abstraction, problem solving strategies, code style, documentation, debugging techniques and testing.

C S 1B  •  INTERMEDIATE SOFTWARE DESIGN IN JAVA

C S 1B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 1A.
Advisory: Demonstrated proficiency in English by placement via multiple measures OR through an equivalent placement process OR completion of ESLL 125 & ESLL 249.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic treatment of intermediate concepts in computer science through the study of Java object-oriented programming (OOP). Coding topics include Java interfaces, class extension, generics, the Java collections framework, multi-dimensional arrays and file I/O. Concept topics include OOP project design, inheritance, polymorphism, method chaining, functional programming, linked-lists, FIFOs, LIFOs, event-driven programming and guarded code.

C S 1C  •  ADVANCED DATA STRUCTURES & ALGORITHMS IN JAVA

C S 1C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 1B.
Advisory: One of the following: ENGL 1A or ENGL 1AH or ESLL 26.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic treatment of advanced data structures, algorithm analysis and abstract data types in the Java programming language. Coding topics include the development of ADTs from scratch, building ADTs on top of the java.util collections, array lists, linked lists, trees, maps, hashing functions and graphs. Concept topics include searching, big-O time complexity, analysis of all major sorting techniques, top down splaying, AVL tree balancing, shortest path algorithms, minimum spanning trees and maximum flow graphs.

C S 2A  •  OBJECT-ORIENTED PROGRAMMING METHODOLOGIES IN C++

C S 2A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: Intermediate Algebra or equivalent; not open to students with credit in C S 2AH.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic introduction to fundamental concepts of computer science through the study of the C++ programming language. Coding topics include C++ control structures, objects, global-scope functions, class methods, arrays and elementary data structures. Concept topics include algorithms, recursion, data abstraction, problem solving strategies, code style, documentation, debugging techniques and testing.

C S 2B  •  INTERMEDIATE SOFTWARE DESIGN IN C++

C S 2B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 2A.
Advisory: Demonstrated proficiency in English by placement via multiple measures OR through an equivalent placement process OR completion of ESLL 125 & ESLL 249.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic treatment of intermediate concepts in computer science through the study of C++ object-oriented programming (OOP). Coding topics include C++ derived classes, class templates, function templates, virtual functions, operator overloading, an introduction to the Standard Template Library, multiple inheritance, pointers, dynamic memory allocation and file I/O. Concept topics include OOP project design, inheritance, polymorphism, method chaining, functional programming, linked-lists, FIFOs, LIFOs, events in GUIs and guarded code.

C S 2C  •  ADVANCED DATA STRUCTURES & ALGORITHMS IN C++

C S 2C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 2B.
Advisory: One of the following: ENGL 1A or ENGL 1AH or ESLL 26.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic treatment of advanced data structures, algorithm analysis and abstract data types in the C++ programming language. Coding topics include the development of ADTs from scratch, building ADTs on top of the STL templates, vectors, lists, trees, maps, hashing functions and graphs. Concept topics include searching, big-O time complexity, analysis of all major sorting techniques, top down splaying, AVL tree balancing, shortest path algorithms, minimum spanning trees and maximum flow graphs.

C S 3A  •  OBJECT-ORIENTED PROGRAMMING METHODOLOGIES IN PYTHON

C S 3A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: Intermediate Algebra or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic introduction to fundamental concepts of computer science through the study of the Python programming language. Coding topics include control structures, functions, classes, string processing, lists, tuples, dictionaries, working with files, and elementary graphics. Concept topics include algorithms, data abstraction, problem solving strategies, code style, documentation, debugging techniques and testing.

C S 3B  •  INTERMEDIATE SOFTWARE DESIGN IN PYTHON

C S 3B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 3A.
Advisory: Demonstrated proficiency in English by placement via multiple measures OR through an equivalent placement process OR completion of ESLL 125 & ESLL 249.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Systematic treatment of intermediate concepts in computer science through the study of Python object-oriented programming (OOP). Coding topics include Python sequences, user-defined classes and interfaces, modules, packages, collection classes, threads, lambda expressions, list comprehensions, regular expressions and multi-dimensional arrays. Concept topics include OOP project design, recursion, inheritance, polymorphism, functional programming, linked-lists, FIFOs, LIFOs, event-driven parsing, exceptions, and guarded code.

C S 3C  •  ADVANCED DATA STRUCTURES & ALGORITHMS IN PYTHON

C S 3C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 3B.
Advisory: Demonstrated proficiency in English by placement via multiple measures OR through an equivalent placement process OR completion of ESLL 125 & ESLL 249.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

A systematic treatment of advanced data structures, algorithm analysis, and abstract data types in the Python programming language, intended for computer science majors as well as non-majors and professionals seeking advanced Python experience. Coding topics include large program software engineering design, multi-dimensional arrays, string processing, primitives, compound types, and allocation of instance and static data. Data structure concept topics include dynamic memory, inheritance, polymorphism, hierarchies, recursion, linked-lists, stacks, queues, trees, hash tables, and graphs. Algorithm concept topics include searching, big-O time complexity, analysis of all major sorting techniques, top down splaying, AVL tree balancing, shortest path algorithms, minimum spanning trees, and maximum flow graphs.

C S 8A  •  INTRODUCTION TO DATA SCIENCE

C S 8A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: Students will benefit from some experience with computer programming or statistics; demonstrated proficiency in English by placement via multiple measures OR through an equivalent placement process OR completion of ESLL 125 & ESLL 249.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the fundamental concepts and computational skills needed to understand and analyze data arising from real-world phenomena. Topics include key data science concepts such as correlation vs. causation, randomness, sampling, uncertainty, predictive models, and classification. Using a tool such as Jupyter notebooks, students write code for transformation and use of data tables, simulation models, and A/B testing.

C S 10  •  COMPUTER ARCHITECTURE & ORGANIZATION

C S 10 Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: One of the following: C S 1A, C S 2A or C S 3A.
Advisory: C S 1C or C S 2C.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the organization, architecture and machine-level programming of computer systems. Topics include mapping of high-level language constructs into assembly code, internal data representations, numerical computation, virtual memory, pipelines, caching, multitasking, MIPS architecture, MIPA assembly language code, interrupts, input/output, peripheral storage processing, and comparison of CISC (Intel) and RISC (MIPS) instruction sets.

C S 18  •  DISCRETE MATHEMATICS

C S 18 Details
Units: 5
Hours: 5 lecture per week (60 total per quarter)
Prerequisite: C S 1A; MATH 48C or equivalent.
Advisory: Demonstrated proficiency in English by placement via multiple measures OR through an equivalent placement process OR completion of ESLL 125 & ESLL 249; not open to students with credit in CIS 18 or MATH 22.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area V: Communication & Analytical Thinking
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable
Cross-Listed: MATH 22

Discrete mathematics: set theory, logic, Boolean algebra, methods of proof, mathematical induction, number theory, discrete probability, combinatorics, functions, relations, recursion, algorithm efficiencies, graphs, trees.

C S 20A  •  PROGRAMMING IN C#

C S 20A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: One of the following: C S 1A, C S 2A, C S 3A or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the C# programming language and the .NET platform. Topics include object oriented programming, graphical user interfaces, elementary data structures, algorithms, recursion, data abstraction, code style, documentation, debugging techniques, and testing.

C S 22A  •  JAVASCRIPT FOR PROGRAMMERS

C S 22A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: One of the following: C S 1A, C S 2A, C S 3A, or equivalent; knowledge of HTML and CSS.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to object oriented programming in JavaScript. Topics include: client and server side programming, Model/View/Controller architecture, current tools and testing methods, interaction with HTML and CSS, Document Object Model, XML, and JSON. Students will have practice writing programs for mobile web browsers and creating dynamic webpages including animation.

C S 30A  •  INTRODUCTION TO LINUX

C S 30A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the Linux operating system primarily focused on command line usage. Covers the history, kernel, file systems, shells, and user utilities. Also introduces students to the fundamentals of shell programming, processes, communications, and basic security.

C S 30B  •  LINUX SHELL PROGRAMMING

C S 30B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Linux shell script programming using the Bourne Again shell programming language (bash) and Linux utilities to create practical shell scripts. Topics covered include customizing the environment, running and writing scripts, variables, loops, functions, text processing and debugging.

C S 30C  •  LINUX SYSTEM ADMINISTRATION

C S 30C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Basic Linux systems administration. Command line fundamentals, file management from command line, help commands, create/view/edit text files, manage local Linux users and groups, control access to files with Linux file system permissions, monitor and manage Linux processes, control services and daemons, configure and secure OpenSSH service, analyze and store logs, manage Linux networking, archive and copy files between systems, install and update software packages, access Linux file systems, use virtualized systems.

C S 30D  •  ADVANCED LINUX SYSTEM ADMINISTRATION

C S 30D Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30C or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Advanced systems administration of Red Hat Enterprise Linux (RHEL). Overview of automated installation, basic Linux command line usage, regular expression overview, pipelines, redirection, network configuration and troubleshooting, simple partition and filesystems creation, logical volumes, SMB and NFS network file systems, user account management, access control lists (ACLs), SELinux security overview, software package management, installed services management, log file analysis and maintenance, process management, Linux kernel tuning and maintenance, Linux troubleshooting techniques.

C S 30E  •  LINUX SYSTEM ADMINISTRATION: NETWORK SERVICES

C S 30E Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30D or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

The course is focused on deploying and managing network servers running caching Domain Name Service (DNS), MariaDB, Apache HTTPD, Postfix SMTP mail clients, network file sharing with Network File System (NFS) and Server Message Block (SMB), iSCSI initiators and targets, advanced networking facilities and firewall configurations, and the use of Bash shell scripting to help automate, configure, and troubleshoot the system. These topics are taught through lectures and hands-on labs.

C S 31A  •  INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

C S 31A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: One of the following: C S 1A, C S 2A, C S 3A, or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to database design and use of database management systems for applications. Topics include database architecture, comparison to file-based systems, historical data models, conceptual model; integrity constraints and triggers; functional dependencies and normal forms; relational model, algebra, database processing and Structured Query Language (SQL), database access from Applications-Embedded SQL, JDBC, Cursors, Dynamic SQL, Stored Procedures. Emerging trends will be studied, such as NoSQL databases, internet and databases, and Online Analytical Processing (OLAP). A team project that builds a database application for a real-world scenario is an important element of the course.

C S 40A  •  SOFTWARE ENGINEERING METHODOLOGIES

C S 40A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 1B or C S 2B.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

A collaboration-oriented course that trains students in the techniques currently used by software engineers to develop reliable products in an efficient manner. The course emphasizes Agile methods and a variety of tools used during the software development lifecycle.

C S 48A  •  DATA VISUALIZATION

C S 48A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: MATH 10, MATH 17, PSYC 7 or SOC 7.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the effective processing and communication of data. Topics include identifying the key techniques and theory used in data visualization, creating and designing static and interactive visualizations using data, and communicating insight through data visualization to an intended audience. Students will use a data visualization package, such as R, Tableau, or MatPlotLib in Python.

C S 49  •  FOUNDATIONS OF COMPUTER PROGRAMMING

C S 49 Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: Intermediate Algebra or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to basic computer programming concepts using an object-oriented language. Topics include the software life-cycle, procedural vs. object-oriented programming, IDE and debugging, documentation, and coding conventions. Using an object-oriented computer language, students will explore data types, basic data structures and algorithms, control structure, console and file I/O, functions, error handling and testing.

C S 50A  •  NETWORK BASICS (CCNA)

C S 50A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the architecture, structure, functions, components, and models of the internet and other computer networks. The principles and structure of IP addressing and the fundamentals of Ethernet concepts, media, and operations are introduced to provide a foundation for the curriculum. Students will be able to build simple LANs, perform basic configurations for routers and switches, and implement IP addressing schemes.

C S 50B  •  ROUTING & SWITCHING ESSENTIALS (CCNA)

C S 50B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 50A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

This course describes the architecture, components, and operations of routers and switches in a small network. Students learn how to configure a router and a switch for basic functionality. By the end of this course students will be able to configure and troubleshoot routers and switches and resolve common issues with RIPv1, RIPv2, single-area and multi-area OSPF, virtual LANs, and inter-VLAN routing in both IPv4 and IPv6 networks. This course is preparation for the CCENT and CCNA certification exams. This course describes the architecture, components, and operations of routers, and explains the principles of routing and routing protocols. Students will be given the opportunity to configure a router for basic and advanced functionality. Students will be able to configure and troubleshoot routers and resolve common issues with RIPv1, RIPv2, EIGRP, and OSPF in both IPv4 and IPv6 networks.

C S 50C  •  SCALING LOCAL AREA NETWORKS (CCNA)

C S 50C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 50A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

This course describes the architecture, components, and operations of routers and switches in larger and more complex networks. Students learn how to configure routers and switches for advanced functionality. By the end of this course, students will be able to configure and troubleshoot routers and switches and resolve common issues with OSPF, EIGRP, and STP in both IPv4 and IPv6 networks. Students will also develop the knowledge and skills needed to implement a WLAN in a small-to-medium network.

C S 53A  •  CYBERSECURITY FUNDAMENTALS

C S 53A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 50A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

The fundamental aspects of computer and network security as it pertains to policy deployment and network defense. Core topics include cryptography, public key infrastructure, standards and protocols, physical security, infrastructure security, remote access, messaging, intrusion detection and system baselines. Industry-specific topics include certifications for CompTIA's Security+, ISC2, SSCP.

C S 53B  •  FIREWALLS & THREAT MANAGEMENT

C S 53B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 53A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Survey of topics in field of firewall, advanced threats and their characteristics. Students will learn how to manage firewalls and advanced threats using security policies, profiles and signatures to protect networks against emerging threats.

C S 53C  •  ETHICAL HACKING

C S 53C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 53A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Surveys current techniques used by malicious hackers to attack computers and networks, and develops the defenses that security professionals use to defend Windows and Linux systems from such attacks. Topics will be presented in the context of legal restrictions and ethical guidelines. Hands-on labs, playing the role of both attacker and defender, using port scans, footprinting, buffer overflow exploits, SQL injection, privilege escalation, Trojans, and backdoors.

C S 53D  •  INTRODUCTION TO COMPUTER FORENSICS

C S 53D Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 53A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Provides an overview of the forensic rules-of-evidence, evidence integrity, factual reporting, and the role of expert opinion in legal proceedings. The course is appropriate for students from information technology-related fields. No previous experience in computer forensics is required. All students must agree with and sign the CyberSecurity Institute Code of Ethics and Conduct.

C S 54D  •  CLOUD INFRASTRUCTURE & SERVICES

C S 54D Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 50A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Presents the transition from a classic data center environment to a virtual data center. The student will understand Cloud virtualization at each layer--compute, storage, network, desktop, and application--along with business continuity in a virtual data center (VDC) environment. Explanation and discussion of Cloud computing basics, infrastructure components, service management activities, security concerns, and considerations for Cloud adoption.

C S 55A  •  INTRODUCTION TO CLOUD COMPUTING IN AMAZON WEB SERVICES

C S 55A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A and C S 50A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

This course introduces cloud computing which shifts information systems from on-premises computing infrastructure to highly scalable internet architectures using the Amazon AWS platform. The course provides a basic understanding of cloud computing technologies and provides students with the abilities to configure, deploy, and manage cloud facilities including simple and complex compute instances, web servers, and web services. The course also demonstrates/makes available the AWS Educate platform for educational, industry career path guidance and career opportunities.

C S 55B  •  DATABASE ESSENTIALS IN AMAZON WEB SERVICES

C S 55B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A, C S 50A, C S 55A and C S 55C.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

This course addresses database fundamentals and cloud database design patterns and management. A wide variety of database needs are presented, such as structured, semi-structured, and unstructured datasets, and how those are supported in the cloud. Students learn to deploy a SQL database on infrastructure components and perform basic data operations on that infrastructure. Students then take those basic concepts and learn managed platform as a service solutions, such as Amazon RDS, Amazon DynamoDB, Amazon Kinesis stream processing/analytics, in memory database accelerators, and ML big data tools. Basic database administration skills, such as migration, backups, restoration, retention, service configuration, high availability, and service scaling, are presented.

C S 55C  •  COMPUTE ENGINES IN AMAZON WEB SERVICES

C S 55C Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A, C S 50A and C S 55A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

In this course, students explore how compute workloads are supported using a set of core technologies in the Amazon Web Services (AWS) platform. Students use the AWS Management Console, Command Line Interface (CLI), and Cloud Formation infrastructure deployment tools to deploy services. The course takes a deep look into virtualization using AWS Elastic Compute Cloud (EC2) by detailing configuration options for specific workloads in terms of performant compute/memory/storage capabilities. Modern application architectures, such as serverless, microservices, containerization, service orchestration, and edge computing, are detailed and their deployment using AWS services are demonstrated.

C S 55D  •  SECURITY IN AMAZON WEB SERVICES

C S 55D Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A, C S 50A, C S 55A and C S 55C.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

This course focuses on information security principles for computing systems and data with respect to cloud computing. Students learn about governance, security frameworks, compliance, controls, layered security, and vulnerabilities in Amazon Web Services (AWS). The AWS Shared Responsibility model will be studied for specific XaaS cloud level deployments. The course presents a broad, hands-on approach to AWS security offerings and AWS services best security practices.

C S 55G  •  AWS CLOUD PRACTITIONER CERTIFICATION PREPARATION

C S 55G Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 55A or equivalent knowledge and experience.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

This introductory course provides an overview of Cloud concepts, Amazon Web Services (AWS) core services, basic security, architecture principles, pricing, and technical support. Students gain an overall understanding of the AWS Cloud, independent of specific technical roles. Review of core characteristics of deploying and operating in the AWS Cloud. This course prepares students to pursue becoming an AWS Certified Cloud Practitioner using official AWS Academy Cloud Foundations material.

C S 55J  •  AWS CERTIFIED SOLUTIONS ARCHITECT ASSOCIATE PREPARATION

C S 55J Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A, C S 55A, C S 55B, C S 55C, C S 55D, C S 55G, or equivalent knowledge and experience.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

A high level course covering fundamentals of building IT infrastructure on Amazon Web Services (AWS). Designed to teach solutions architects how to optimize the use of the AWS Cloud by understanding AWS services and how these services fit into Cloud-based solutions. Because architectural solutions can differ depending on industry, type of applications, and size of business, this course emphasizes best practices for the AWS Cloud, and it recommends various design patterns to help you think through the process of architecting optimal IT solutions on AWS. It also presents case studies throughout the course, which showcase how some AWS customers have designed their infrastructures, and the strategies and services that they implemented. This course prepares students to pursue becoming an AWS Certified Solutions Architect Associate using official AWS Academy Cloud Foundations material.

C S 56B  •  IT ESSENTIALS

C S 56B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

The course presents a working knowledge of computer internals and provides practical skills in computer hardware assembly and software installation. Emphasis is placed on troubleshooting problems throughout the process. Activities include hands-on labs and virtual learning tools which encourage critical thinking and complex problem-solving skills.

C S 63A  •  DEVELOPING APPLICATIONS FOR IOS

C S 63A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 1B, C S 2B or C S 3B.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

An introduction to programming the iPhone and other iOS devices. Covers Swift, Cocoa Touch, and the Model/View/Controller architecture. Students learn the basics of Swift and acquire practical experience with the tools, techniques, and concepts needed to build a basic iOS app from scratch.

C S 64A  •  WRITING APPS FOR THE ANDROID

C S 64A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 1B or C S 2B.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to programming mobile apps for the Android. Coding topics include the Android SDK for Eclipse, the ADT plugin, XML fundamentals, and a survey of API methods and objects used to control the Android user interface. Concept topics include layouts, activity lifecycles, runtime binding, intents, location awareness, audio, video, OpenGL ES, and monetizing apps.

C S 70R  •  INDEPENDENT STUDY IN COMPUTER SCIENCE

C S 70R Details
Units: 1
Hours: 3 laboratory per week (36 total per quarter)
Advisory: Recommended preparation will be determined by instructor after interviewing the student pre-contract.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Provides an opportunity for the student to expand their studies in Computer Science by completing a project or an assignment arranged by agreement between the student and instructor. The student is required to contract with the instructor to determine the scope of assignment and the unit value assigned for successful completion. Students may take a maximum of 6 units of Independent Study per department.

C S 71R  •  INDEPENDENT STUDY IN COMPUTER SCIENCE

C S 71R Details
Units: 2
Hours: 6 laboratory per week (72 total per quarter)
Advisory: Recommended preparation will be determined by instructor after interviewing the student pre-contract.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Provides an opportunity for the student to expand their studies in Computer Science by completing a project or an assignment arranged by agreement between the student and instructor. The student is required to contract with the instructor to determine the scope of assignment and the unit value assigned for successful completion. Students may take a maximum of 6 units of Independent Study per department.

C S 72R  •  INDEPENDENT STUDY IN COMPUTER SCIENCE

C S 72R Details
Units: 3
Hours: 9 laboratory per week (108 total per quarter)
Advisory: Recommended preparation will be determined by instructor after interviewing the student pre-contract.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Provides an opportunity for the student to expand their studies in Computer Science by completing a project or an assignment arranged by agreement between the student and instructor. The student is required to contract with the instructor to determine the scope of assignment and the unit value assigned for successful completion. Students may take a maximum of 6 units of Independent Study per department.

C S 73R  •  INDEPENDENT STUDY IN COMPUTER SCIENCE

C S 73R Details
Units: 4
Hours: 12 laboratory per week (144 total per quarter)
Advisory: Recommended preparation will be determined by instructor after interviewing the student pre-contract.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Provides an opportunity for the student to expand their studies in Computer Science by completing a project or an assignment arranged by agreement between the student and instructor. The student is required to contract with the instructor to determine the scope of assignment and the unit value assigned for successful completion. Students may take a maximum of 6 units of Independent Study per department.

C S 77A  •  ADVANCED WEB APPLICATION DEVELOPMENT

C S 77A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 22A, C S 30A, C S 40A, and GID 55.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Design and develop applications that deliver similar features and functions normally associated with desktop applications using modern web client and server technologies.

C S 77B  •  PROJECTS IN WEB APPLICATION DEVELOPMENT

C S 77B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 77A.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Team-based applied web application projects as determined in consultation with the instructor. Students meet at least twice per week with the instructor; about half of the lecture periods are team project-based interactions. Volunteer or work-based learning portfolio, progress reports, oral presentations, final report, teamwork assessments, and evaluation by project supervisor or client will be used to demonstrate the mastery of competencies identified as goals prior to, or near the start of, the project(s). Project work can be within the context of an internship or developing an internship or start-up opportunity.

C S 78A  •  SPECIAL TOPICS IN COMPUTER SCIENCE

C S 78A Details
Units: 1
Hours: 1 lecture, 1 laboratory per week (24 total per quarter)
Advisory: C S 1A, C S 2A, C S 3A or C S 49.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Examination of selected topics relating to the Computer Science discipline. Subject matter will vary.

C S 78B  •  SPECIAL TOPICS IN COMPUTER SCIENCE

C S 78B Details
Units: 2
Hours: 2 lecture, 1 laboratory per week (36 total per quarter)
Advisory: C S 1A, C S 2A, C S 3A or C S 49.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Examination of selected topics relating to the Computer Science discipline. Subject matter will vary.

C S 78C  •  SPECIAL TOPICS IN COMPUTER SCIENCE

C S 78C Details
Units: 3
Hours: 3 lecture, 1 laboratory per week (48 total per quarter)
Advisory: C S 1A, C S 2A, C S 3A or C S 49.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Examination of selected topics relating to the Computer Science discipline. Subject matter will vary.

C S 78D  •  SPECIAL TOPICS IN COMPUTER SCIENCE

C S 78D Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 1A, C S 2A, C S 3A or C S 49.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Examination of selected topics relating to the Computer Science discipline. Subject matter will vary.

C S 80A  •  OPEN SOURCE CONTRIBUTION

C S 80A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 40A; C S 1A and C S 1B, or 2A and 2B.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Introduction to the tools for, and culture of, contributing to open source software projects. Tool-based topics include Git repositories, pull requests, forks, logs, merges, tagging, rebasing and server configuration. Concept topics include commit guidelines, branching workflows, small-team vs. large-team workflows, project maintenance, iterative staging, selecting viable source communities, joining public projects, setting up accurate dev environments, testing and prepping patch merges, and becoming a committer.

C S 81  •  LEARNERS ENGAGED IN ADVOCATING FOR DIVERSITY IN STEM

C S 81 Details
Units: 4
Hours: 4 lecture per week (48 total per quarter)
Advisory: BIOL 1A, BIOL 40A, BIOL 41, or equivalent; ENGL 1A or ENGL 1AH or ESLL 26 or equivalent; not open to students with credit in BIOL 81, CHEM 81, or MATH 83.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Area VII: Lifelong Learning
Transferable: CSU
Grade Type: Letter Grade Only
Repeatability: Not Repeatable
Cross-Listed: BIOL 81 CHEM 81 MATH 83

This course is intended for students interested in equity, diversity, and inclusion in the sciences. Students will explore research on inclusion and diversity in STEM and health science, as well as research on interventions to enhance inclusion and diversity in those fields in higher education contexts. Students will reflect on how their own identities have impacted their experiences in science and develop strategies to promote equity in their future STEM or health science careers. Through service learning, students will co-author culturally relevant curricular materials that will expand faculty capacity to connect students' personal lives to course content. Materials developed by students will be used and assessed in STEM and/or health science courses at Foothill College, local middle schools, and/or local high schools, and will be made available for a nationwide audience of teachers and professors.

C S 84A  •  DATABASE-DRIVEN WEB APPLICATION DEVELOPMENT

C S 84A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 31A, C S 49, and GID 57, or equivalent.
Degree and Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Students evolve simple static websites into dynamic, database-driven web applications. Students will use the popular LAMP framework (Linux, Apache, MySQL, and PHP), in combination with JavaScript, CSS, and HTML5.

C S 203A  •  JUST-IN-TIME SUPPORT FOR C S 3A

C S 203A Details
Units: 2.5
Hours: 2.5 lecture per week (30 total per quarter)
Corequisite: C S 3A.
Degree and Credit Status: Non-Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: None
Grade Type: Pass/No Pass Only
Repeatability: Not Repeatable

A just-in-time approach to the core prerequisite skills, competencies, and concepts needed in C S 3A. Intended for students who are concurrently enrolled in C S 3A at Foothill College. Topics include: installation of an integrated development environment and other software, navigating a file system hierarchy, developing a logic-based approach to programming, identifying errors in a program using a debugger and other means.