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 3M  •  INTERMEDIATE ALGORITHM & DATA STRUCTURE METHODOLOGIES IN PYTHON

C S 3M Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Prerequisite: C S 3A.
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 data structures, algorithm analysis and abstract data types in the Python programming language intended for Computer Science transfer majors. Coding topics include large program software engineering design, multi-dimensional arrays, string processing, primitives, compound types, and allocation of instance and static data. Concept topics include dynamic memory, inheritance, polymorphism, hierarchies, recursion, linked-lists, stacks, queues, trees and hash tables.

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 52A  •  ADVANCED IP ROUTING PROTOCOLS & SERVICES (CCNP)

C S 52A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 50B or equivalent 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

The ROUTE course is designed to help students advance their knowledge and skills and work independently on complex network solutions. Students will plan, configure and verify the implementation of secure enterprise LAN and WAN routing solutions using a range of routing protocols. Configuration of solutions to support branch offices and mobile workers will be presented. This course uses the official Cisco Academy CCNP ROUTE curriculum and is designed to provide preparation for the CCNP ROUTE certification exam.

C S 52B  •  ADVANCED SWITCHING & CAMPUS LAN DESIGN (CCNP)

C S 52B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 50C or equivalent 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

The course provides the knowledge and skills necessary to plan, configure and verify the implementation of complex enterprise switching solutions using Cisco's Campus Enterprise Architecture. Secure integration of VLANs, WLANs, voice and video into campus networks is also provided. The material is presented in a lecture and discussion format supplemented by comprehensive laboratory exercises. This course uses the official Cisco Academy CCNP SWITCH curriculum and is designed to provide preparation for the CCNP SWITCH certification exam.

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 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 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

This course addresses cloud database management which supports a number of different approaches for storing data. In the course, students define, operate and scale both SQL and noSQL data storage solutions. This course considers factors that should be balanced during the design of a storage solution. Principles are applied by performing exercises using Amazon RDS and SQL to create and fill tables, retrieve and manipulate data. Object-based APIs are used to serialize objects to Amazon DynamoDB for noSQL solutions. Topics include automated backups, transaction logs, restoration and retention.

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 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 cloud computing systems are built using a common set of core technologies, algorithms, and design principles centered around distributed systems. Students will use the Amazon Web Services (AWS) Management Console to provision, load-balance and scale their applications using the Elastic Compute Cloud (EC2) and the AWS Elastic Beanstalk. The course discusses, from a developer perspective, the most important reasons for using AWS and examines the underlying design principles of scalable cloud applications.

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 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

This course focuses on protecting the confidentiality, integrity and availability of computing systems and data. Students learn how Amazon Web Service (AWS) uses redundant and layered controls, continuous validation and testing, and a substantial amount of automation to ensure the underlying infrastructure is continuously monitored and protected. Students examine the AWS Shared Responsibility Model and access the AWS Management Console to learn more about security tools and features provided by the AWS platform.

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, iPad and iPod Touch devices. Covers Swift, Cocoa Touch, and the Model/View/Controller architecture. Students will learn the basics of Swift and will 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 IN JAVA

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 mobile apps programming in Java 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 81A  •  3-D GRAPHICS PROGRAMMING

C S 81A Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: One of the following: C S 1B, C S 2B, C S 3B, C S 20A.
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 3-D graphics programming using OpenGL, intended for anyone interested in gaining 3-D expertise for games, scientific visualization, desktop and mobile apps. Coding topics include a systematic study of the OpenGL API in conjunction with any of these programming languages: Java, C++, C# or Objective C (student's choice). Concept topics include viewports, graphics primitives, 3-D motion matrices, normal vectors, shaders, fragment and pixel buffers, light simulation, polygons, virtual cameras, image pipelines, texture mapping and alpha blending.

C S 84B  •  DISTRIBUTED DATABASES

C S 84B Details
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 31A 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

An introduction to distributed data management including distributed database design, implementation techniques including concurrency control, query processing and optimization, data replication, integration and peer-to-peer systems. Distributed database solutions are also presented, including data management systems for Cloud computing.

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.