Computer Science

Back to SBCC


These are the course offerings of the Computer Science department.

CS 101: Computer Concepts

Skills Advisories: MATH 95 and Eligibility for ENG 103.

Survey of the concepts of computer hardware and software, with emphasis on the latest technologies and programming. Topics include, but are not limited to, the Internet, productivity applications, databases, programming and numbering systems. Suitable for all majors and is a recommended first course for Computer Science majors.

CS 104: Introduction to Programming

Skills Advisories: Eligibility for ENG 98 and 103.

Exposes students to the fundamental concepts of programming using an object-oriented language and is intended as an introductory-level programming course. Ideal for beginners and also serves as the first course in a sequence that is compliant with the standards of the Association for Computing Machinery.

CS 105: Theory and Practice I

Course Advisory: CS 101 or CS 104.

Study of fundamental programming concepts. Topics include structured and OOP programming, definition of data types, nested IFs, looping techniques, CASE statements, procedures, functions, value and address parameters, file structures, dynamic list structures and recursion.

CS 106: Theory and Practice II

Prerequisite: CS 105.
Skills Advisories: Eligibility for ENG 103.

Study of data structures and algorithms. Design, coding and testing of linked lists, trees, queues, stacks, hash tables, and other dynamic data structures, as well as searching and sorting algorithms. Time and space analysis of data structures and algorithms. Programs are written in the Java language.

CS 107: Computer Architecture and Organization

Prerequisite: CS 105.
Skills Advisories: Eligibility for ENG 103.

The organization and behavior of real computer systems at the assembly-language level. The mapping of statements and constructs in a high-level language into sequences of machine instructions is studied, as well as the internal representation of simple data types, pointers, structures, and non-numeric data. Numerical computation is also examined.

CS 108: Discrete Structures

Prerequisite: MATH 150.
Skills Advisories: Eligibility for ENG 103.

Introduction to the study of discrete objects, with a focus on applications in computer science. Topics include logic and proofs, sets, functions, sequences, sums, algorithms, integers, induction, recursion, counting, relations, graphs and trees.

CS 111: HTML And Webmastering

Skills Advisories: Eligibility for ENG 103.

Project-oriented course focusing on the creation of web pages and the technology behind the web. Includes Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), Forms, Extensible Markup Language (XML), Common Gateway Interface (CGI) and Content Management Systems (CMS). Students must also enroll in a CS 111 lab.

CS 114: Intermediate Python

Skills Advisories: Eligibility for ENG 103.
Course Advisories: CS 104 or CS 105.

Project-oriented exploration of intermediate aspects of the Python programming language. Teaches "pythonic" programming while exploring intermediate level topics like developing and deploying python programs, interacting with local and remote resources, web application development, and aspects of object-oriented and functional programming. It also features problem-solving with python across multiple domains (e.g. neural networks, graphics, media computation, mapping and data visualization), software engineering principles and debugging techniques.

CS 115: Javascript Programming

Skills Advisories: Eligibility for ENG 103.
Course Advisories: CS 105.

Project-oriented introduction to JavaScript programming and frameworks. Application domains include client-side web applications, server side programming and games.

CS 116: Web Server Programming

Skills Advisories: Eligibility for ENG 110 or ENG 110H.
Course Advisories: CS 111 or CS 120.

Project-oriented class that explores programming a Web server using PERL, Active Server Pages (ASP), Personal Home Pages (PHP) and Python, with an emphasis on PERL and PHP. Class develops Common Gateway Interface (CGI) scripts and Internet applications using these common tools. Includes such topics as e-commerce, security, browser independence and database integration.

CS 123: Android Programming

Skills Advisories: Eligibility for ENG 110 or 110H.
Course Advisories: CS 120 or 125.

Project-based course covering the development of applications for the Android platform. Students use state-of-the-art tools and frameworks to build and analyze programs that incorporate user interfaces, web services, animation, multimedia, and location awareness.

CS 130: Introduction to the Linux Operating System

Skills Advisories: Eligibility for ENG 103 and proficiency in MATH 4 or MATH 41.
Course Advisories: CS 101.

Survey of the Unix/Linux operating system and related subject matter. Topics include Unix/Linux architecture, commands, file system, processes, and bash shell environment. Lectures and computer laboratory exercises provide a moderate-depth understanding of Unix/Linux architecture and commands from a computer science perspective.

CS 132: Digital Logic Design

Skills Advisories: Eligibility for ENG 103. Proficiency in MATH 104 or 107 or 111.

Introduction to digital systems and logic design. Logic of propositions, boolean algebra, minterm and maxterm expansions, Karnaugh maps, Quine-McCluskey methods, multi-level circuits, combinational and sequential circuit design and timing diagrams, multiplexers, decoders, programmable logic devices, latches and flip-flops, finite state machines, registers and counters, register transfer language, simulation and debugging.

CS 133: Introduction to Programming for Engineers

Skills Advisories: Eligibility for ENG 110 or ENG 110H and MATH 107.
Course Advisories: CS 100 or CIS 101.

General philosophy of programming for engineering majors. Students are introduced to a modern programming language (Matlab). Specific areas of study include algorithms, basic decision structures, arrays, matrices and graphing.

CS 137: C Programming

Skills Advisories: Eligibility for ENG 103.
Course Advisories: CS 107 or CS 105.

Study of the programming language C. Definition of data types, loop controls structures, functions, parameter passing, pointers, recursion, records data structures, and the UNIX operating system.

CS 140: Object-Oriented Programming Using C++

Skills Advisories: Eligibility for ENG 103.
Course Advisories: CS 120 or CS 137.

Study of the object-oriented programming paradigm, including objects, messages, encapsulation, classes, inheritance and implementation issues. Implementations written in the object-oriented language C++.

CS 165: Software Design Patterns

Skills Advisories: Eligibility for ENG 110 or ENG 110H.
Course Advisories: CS 105 or CS 140.

Introduction to software design patterns and their use in object-oriented systems. Creational, structural and behavioral patterns are investigated. Real world examples by acknowledged experts are studied. Students strengthen their software design skills by applying patterns in course projects. State of the art development tools are used throughout the course.

CS 180: Software Engineering With UML

Skills Advisories: Eligibility for ENG 110 or ENG 110H.
Course Advisories: CS 105.

Study of software engineering and component-based design using the Unified Modeling Language (UML). Students employ a standard software engineering process that includes requirements analysis, design, implementation and testing. Students learn about various UML diagrams and use them to express software requirements and designs. The course investigates rapid application development using state-of-the-art tools and component libraries.

CS 187: iOS Programming

Skills Advisories: Eligibility for ENG 110 or 110H.
Course Advisories: CS 105.

Project-oriented course in developing Objective-C based native applications for the iOS devices (e.g. iPhone, iPad). Covers development tools (Xcode, Interface Builder, Instruments). Objective-C language, Cocoa and Cocoa Touch frameworks, as well as deployment to the App store.

CS 189: Programming Practicum

Programming course focused on rapid team-based problem solving techniques. Problems are rapidly classified based on difficulty and the ability to partition the problem across the team. Algorithms are developed to solve those problems using standard tools and libraries. Emphasis on leadership skills, team dynamics, and team problem solving.

Back to top

721 Cliff Drive Santa Barbara, CA 93109-2394    Main Campus Phone: 805.965.0581    © 2018 Santa Barbara City College