Computer Science
Department website: http://sbcc.edu/computerscience/
Computer science is a dynamic field which has broad impact across the entirety of the human experience. Everything from the phone in your pocket to space probes venturing out beyond the earth utilize the concepts and ideas of computer science. Never before in history has any single endeavor grown so fast or become so universally accepted, as computers are leading the way at the forefront of the technological revolution.
The Computer Science department at Santa Barbara City College is committed to helping students meet the challenges presented by this new technology. Our course offerings range from introductory to advanced topics, with a focus on transfer and occupational training. Our AS and AS-T degrees are designed to prepare students for employment or for transfer to both the CSU and UC systems. Additionally, we also offer several skills competency awards which demonstrate proficiency in specific areas, such as mobile application or web development.
Computer Science (CS)
CS 101 Computer Concepts (4 Units)
Hours: 72 (72 lecture)
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.
SBCC General Education: SBCCGE Area D2
Transfer Information: CSU Transferable, UC Transferable
UC Transfer Limit: CS 101 combined with CIS 101: maximum credit, one course.
CS 104 Introduction to Programming (3 Units)
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
C-ID: COMP 112.
CS 105 Theory and Practice I (3 Units)
Course Advisories: CS 101 or CS 104.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
C-ID: COMP 122.
CS 106 Theory and Practice II (3 Units)
Prerequisites: CS 105.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 107 Computer Architecture and Organization (3 Units)
Prerequisites: CS 105.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
C-ID: COMP 142.
CS 108 Discrete Structures (4 Units)
Prerequisites: CS 105.
Course Advisories: ENG 103.
Hours: 72 (72 lecture)
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, and discrete probability.
Transfer Information: CSUGE Area B4, CSU Transferable, UC Transferable
C-ID: COMP 152.
CS 111 HTML And Webmastering (3 Units)
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable
CS 114 Intermediate Python (3 Units)
Course Advisories: CS 104 or CS 105.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 115 Javascript Programming (3 Units)
Course Advisories: CS 105.
Hours: 90 (36 lecture, 54 lab)
Project-oriented introduction to JavaScript programming and frameworks. Application domains include client-side web applications, server side programming and games.
Transfer Information: CSU Transferable, UC Transferable
CS 116 Web Server Programming (3 Units)
Course Advisories: CS 111 or CS 120.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable
CS 118 Data Science for All (4 Units)
Same as: MATH 118
Prerequisites: MATH 107 or equivalent based on SBCC's Assessment Center placement via multiple measures.
Hours: 108 (54 lecture, 54 lab)
Introduction to data science using real-world data sets from a variety of disciplines while also presenting inherent uncertainties and issues associated with exploring data. Exposes students to foundational statistical concepts and inferential thinking by learning computation methods in a commonly used programming language such as Python.
Transfer Information: CSUGE Area B4, IGETC Area 2A, CSU Transferable, UC Transferable
CS 123 Android Programming (1.5 Unit)
Course Advisories: CS 120 or 125.
Hours: 42 (18 lecture, 24 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
UC Transfer Limit: No credit for CS 123 unless taken subsequent to or cuoncurrently with CS 120.
CS 130 Introduction to the Linux Operating System (2.5 Units)
Course Advisories: CS 101.
Hours: 63 (36 lecture, 27 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 132 Digital Logic Design (3 Units)
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 133 Introduction to Programming for Engineers (3 Units)
Prerequisites: MATH 150.
Course Advisories: CS 101 or CS 104 or CIS 101.
Hours: 90 (36 lecture, 54 lab)
Students learn to use a modern programming environment (e.g. MATLAB) to become proficient in computer-based problem-solving methods that are relevant to science and engineering. Students are introduced to the fundamentals of procedural and object-oriented programming, numerical analysis, and data structures. Examples and assignments are drawn from practical applications in engineering, physics, and mathematics.
SBCC General Education: SBCCGE Area D2, SBCCGE Area E1
Transfer Information: CSUGE Area B4, CSU Transferable, UC Transferable
C-ID: ENGR 220.
CS 134 Version Control with Git (2.5 Units)
Hours: 62 (36 lecture, 26 lab)
Study of a version control system named Git. Topics include basic and advanced Git command-line operations, internals, visual GUI-based tools, and repository hosting (e.g. GitHub). The course also covers other related topics, including DevOps, continuous integration, and examines open-source libraries used in fields such as Data Science. Assignments and laboratory exercises are drawn from applications in software development, and provide an in-depth understanding of how to manage files in a repository shared by multiple users.
Transfer Information: CSU Transferable
CS 137 C Programming (3 Units)
Course Advisories: CS 107 or CS 105.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 140 Object-Oriented Programming Using C++ (4 Units)
Prerequisites: CS 105 or CS 137.
Hours: 108 (54 lecture, 54 lab)
Provides in-depth understanding of fundamentals of object-oriented programming methodology, such as message-passing, data-hiding, encapsulation, class and inheritance, using C++.
Transfer Information: CSU Transferable, UC Transferable
CS 165 Software Design Patterns (1.5 Unit)
Course Advisories: CS 105.
Hours: 45 (18 lecture, 27 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 180 Software Engineering With UML (3 Units)
Course Advisories: CS 105.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 187 iOS Programming (3 Units)
Course Advisories: CS 105.
Hours: 90 (36 lecture, 54 lab)
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.
Transfer Information: CSU Transferable, UC Transferable
CS 189 Programming Practicum (1 Unit)
Hours: 18 (18 lecture)
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. Course restricted to 3 repetitions
Transfer Information: CSU Transferable