CSCI 0010. Introduction to Computing

Units: 3
Advisory: Completion of MATH A with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Survey of computer science technologies and methods. Introduction to computer hardware and software, structured programming, operating system concepts, communications and social impacts of computer technology. Explore current and emerging topics such as robotics, computer security and artificial intelligence. (CSU, UC)

CSCI 0012. Programming Concepts and Methodology I

Units: 3
Prerequisite: Completion of CSCI 10 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduces the discipline of computer science using a high level language utilizing programming and practical hands-on problem solving. (C-ID COMP 122) (CSU, UC)

CSCI 0013. Programming Concepts and Methodology II

Units: 3
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Application of software engineering techniques to the design and development of large programs; data abstraction and structures and associated algorithms. (C-ID COMP 132) (CSU, UC)

CSCI 0014. Data Structures

Units: 3
Prerequisite: Completion of CSCI 66 with grade of "C" or better; and completion with grade of "C" or better, or concurrent enrollment in CSCI 26
Advisory: Completion of CSCI 13 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
A comprehensive introduction of data structures for computer science. Topics include: lists, stacks, trees, hash tables, and heaps. Associated algorithms are also covered: searching, sorting, traversal, path finding, spanning tree, and network flow. C++ is used as the implementation language. (CSU, UC)

CSCI 0021. The Game Development Process

Units: 3
Advisory: Completion of MATH D with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to the history, technology, ethics, and design of computer games. A generally accessible course about the process of creating computer games from concept to implementation, including documentation, storyboards, character design, gameplay, animation and marketing. Students use these concepts to create a complete computer game of their own design. Programming experience not required. (CSU, UC)

CSCI 0026. Discrete Structures for Computer Science

Units: 3
Prerequisite: Completion of CSCI 12 and MATH 12 with grades of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to the essential discrete structures used in Computer Science, with emphasis on their applications. Includes elementary formal logic and set theory, elementary combinatorics, recursive programming and algorithm analysis, Boolean algebra, digital logic, combinatorial circuits, graph theory, circuit design and minimization, and computer arithmetic. (C-ID COMP 152) (CSU, UC)

CSCI 0027. Visual Basic .NET Programming I

Units: 3
Prerequisite: Completion of CSCI 10 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to methods and techniques of Visual Basic .NET programming. Includes coverage of user interface design, variables, decisions, menus, functions, object-oriented programming, looping, arrays, and printing. Designed to bring students up to the necessary skill and knowledge level for an intermediate-level programming course. (CSU)

CSCI 0028. Independent Study

Units: 1-3
Designed for students interested in furthering their knowledge at an independent study level in an area where no specific curriculum offering is currently available. Independent study might include, but is not limited to, research papers, special subject area projects, and research projects. See Independent Study page in catalog. (CSU, UC-with unit limitation)

CSCI 0039. Introduction to Computer Architecture and Assembly Language

Units: 3
Prerequisite: Completion of CSCI 10 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Assembly language programming techniques and introductory computer architecture concepts. Topics include addressing modes; pseudo operations; stack processing; subroutine linkage; arithmetic and logical operations; input and output; digital logic. Programs are designed, coded, tested, and debugged. (C-ID COMP 142) (CSU, UC)

CSCI 0046. System Programming with C

Units: 3
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Advisory: Completion of CSCI 50 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to the C language and system programming on a Unix-like operating system. Topics include the standard C library, memory allocation, file I/O, permissions, system calls, networking, and process management. Development in a Unix environment will cover editors, shell scripting, makefiles, source code control, and debugging. (CSU, UC)

CSCI 0050. Introduction to Unix/Linux

Units: 3
Prerequisite: Completion of CSCI 10 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
An introduction to the Unix and Linux operating systems with an emphasis on system programming. Topics include the filesystem, permissions, regular expressions, processes, networking, basic system administration, and shell scripting. Extensive hands-on experience using the command line interface. (CSU, UC)

CSCI 0052. Introduction to SQL

Units: 3
Prerequisite: Completion of CSCI 10 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Survey of SQL (Structured Query Language). Includes database models, database design, table and view definition, transaction and data manipulation, queries and reports, data integrity, stored procedures, triggers, recovery and security. Hands-on experience using a popular SQL database. (CSU)

CSCI 0054. Visual Basic .NET Programming II

Units: 3
Prerequisite: Completion of CSCI 27 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Intermediate Visual Basic .NET programming. Includes coverage of multitier applications, database applications, databases using related tables, database updates, using Web forms, Web forms database and updates, XML Web services, and writing database reports using Crystal Reports. (CSU, UC)

CSCI 0059P. Web Programming with PHP

Units: 3
Formerly known as CSCI 303
Prerequisite: Completion of CSCI 12 or 27 with grade of "C" or better
Advisory: Completion of CSCI 62 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Create dynamic, session-oriented, data-driven web sites using the PHP scripting language. Covers processing fill-out forms, database backends, session management, authentication and searching. (CSU)

CSCI 0062. Web Programming I

Units: 3
Prerequisite: Completion of CSCI 10 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to methods and techniques of Web programming. Includes coverage of HyperText Markup Language (HTML), Cascading Style Sheets (CSS), and Extensible HyperText Markup Language (XHTML). Designed to bring students up to the necessary skill and knowledge level for an intermediate Web programming course. (CSU)

CSCI 0066. Object-Oriented Programming Using C++

Units: 3
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Advisory: Completion of CSCI 46 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
An introduction to the concepts of object-oriented programming and the application of the C++ language. Extensive programming practice using C++ as the vehicle toward modular, reusable object-oriented code. (CSU, UC)

CSCI 0076A. Game Programming

Units: 3
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Advisory: Completion with grade of "C" or better or concurrent enrollment in CSCI 13
Hours: 72 (54 lecture, 18 laboratory)
Explore the algorithms, data structure, and techniques used to program computer video games. Emphasis on arcade-style video games (new and classic) written in Java. Topics include 2D animation, sprites, interaction, music, and sound. Underlying issues include graphical user interface programming, multi-threaded applications, realtime programming, use of sophisticated APIs, and societal impacts of computer gaming. (CSU, UC)

CSCI 0079. Mobile Device Programming

Units: 3
Formerly known as CSCI 309
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Introduction to creating applications for mobile devices including Apple iPhone, iPad, and Google Android. Topics include touch interfaces, GUI elements, sensor input, simple animation and game play, network communication, and database access. (CSU)

CSCI 0095. Internship in Computer Science

Units: 0.5-4
Designed for advanced students to work in an area related to their educational or occupational goal. Provides new on-the-job technical training under the direction of a worksite supervisor, allowing students to expand knowledge and skills in the chosen field. Mandatory orientation session and faculty approval to determine eligibility. One unit of credit is equal to each 60 hours of non-paid work, or each 75 hours of paid work. Students may earn up to a total of 16 units in internship courses (any course numbered 95 and PDEV 94). (CSU-with unit limitation)