Lower Division Courses

Lower Division Courses

CS 101 Introduction to Higher Education for Computer Science Majors (2)
Exploration of skills and resources that will help students to obtain a baccalaureate degree in the Department of Computer Science. This course must be taken once during the first two quarters at Cal. State LA. Graded CR/NC. NIS Account Required.

CS120 Introduction to Web Site Development (3)
Prerequisite: Computer Literacy.
Development of client-sideweb pages using hypertext markup language ([d][x]html),Cascading Style Sheets (CSS). Javascript, and computer animation software. Lecture 2 hours, laboratory 3 hours. Graded ABC/NC.

CS 122 Using Relational Databases and SQL (3)
Prerequisite: Computer literacy.
An introduction to relational databases and the SQL query language. Database modeling as collection of objects and their relationships; Entity-relationship model. SQL as a query language. Grouping and other advanced queries. Lecture 2 hours, laboratory 3 hours. Graded ABC/ NC.

CS 160 Introduction to Computers (3)
Prerequisite: GE mathematics requirement.
History of computers; hardware, software including data base systems, word processors, spreadsheets, programming languages; social and ethical implications. Lecture 2 hours, laboratory 3 hours. Offered CR/NC only.

CS 190 BASIC Programming (2)
Prerequisite: One year of high school algebra.
Introduction to computer programming using BASIC language. Applications will assume a minimal mathematics background. Does not fulfill mathematics major requirement. Lecture 1 hour, laboratory 3 hours.

CS 201 Introduction to Programming (5)
Prerequisite: MATH 104B or consent of the instructor.
Algorithm development for structured programming; designing, coding, debugging, and documenting programs. Laboratory activities on problem analysis and software development. Lecture 4 hours, laboratory 3 hours. Graded ABC/ NC

CS 202 Introduction to Object Oriented Programming (5)
Prerequisite: CS 201, recommended: MATH 206.
Algorithm development for Object Oriented Programming; designing, coding, and documenting programs. Laboratory activities on problem analysis and software development. Lecture 4 hours, laboratory 3 hours. Graded ABC/NC

CS 203 Programming with Data Structures (5)
Prerequisite: CS 202, recommended: MATH 207, MATH 248.
Advanced programming techniques; elementary data structures such as dynamic arrays, linked lists, stacks, queues, and trees, sorting and searching algorithms. Laboratory activities on problem analysis and software development. (Lecture 4 hours, laboratory 3 hours) Graded ABC/ NC

CS 242 C Programming (4)
Prerequisites: MATH 104B or consent of the instructor.
Introduction to program design and problem solving using the C programming language. Programming topics include control structures, functions, arrays, pointers, and file I/O.

CS 245 Using Operating Systems and Networks for Programmers (3)
Prerequisite: CS202.
Essential information about operating systems and computer networks for programmers. Topics include: the Windows operating system; Unix/Linux and their shell language(s), and wide area and local area networks. Lecture 2 hours, laboratory 3 hours. Graded ABC/NC

CS 290 Introduction to FORTRAN Programming (2)
Prerequisite: MATH 206.
Elementary computer programming using FORTRAN language. Lecture 1 hour, laboratory 3 hours. No credit toward Computer Science major.

Upper Division Courses

CS 301 Computer Ethics in the Information Age (1)
Prerequisite: CS 203.
Responsibilities of computer scientists as influenced by growth in computer use and networks. Professional and Ethical Responsibilities; Intellectual Property; Piracy, Hacking, Viruses, Liability, Privacy, Crime, and Civil Liberties. Graded ABC/ NC.

CS 312 Data Structures and Algorithms (4)
Prerequisites: CS 203, MATH 208 and 248.
Methods for the design and analysis of correct and efficient computer algorithms and advanced data structures. Applications to classical problems of searching, sorting, graph optimization and combinatorial optimization.

CS 320 Web and Internet Programming (4)
Prerequisites: CS120, CS 122, CS 203.
Server-side internet programming. Development of full-fledged Internet enterprise services and applications. Laboratory activities on application development (Lecture 2 hours, laboratory 3 hours).

CS 332F Functional Programming (2)
Prerequisite: CS 203.
Programming in functional nonprocedural programming language such as Haskell. Programming in a language (a) in which functions are values, (b) without assignments, (c) with very strong typing, (d) with lazy evaluation, and with other features common to the functional programming paradigm.

CS 332L Logic Programming (2)
Prerequisite: CS 203.
Programming in a non-procedural logic programming language such as Prolog. Programming in a language that supports unification and backtracking and in which the execution of a program is the search for values that satisfy a declarative specification.

CS 332C C++ Object Oriented Programming (2)
Prerequisite: CS 203.
Breadth and depth of C++ programming concepts; control statements, functions, pointers, classes, application development using the object-oriented paradigm. Advanced topics such as I/0, templates, exception handling, Standard Template Library (STL)

CS 337 Software Design (3)
Prerequisite: CS 203.
Methodologies and tools for requirements analysis and design of large complex software system; Process models, project planning, tracking, documentation, communication, and quality assurance; group laboratory project; oral and written presentations. Lecture 2 hours, laboratory 3 hours.

CS 340 Assembly Language and Systems Programming (4)
Prerequisite: CS 245.
Assembly language; addressing techniques; subroutines; macros; system input/output; interrupts and traps; assemblers; linkers; loaders; macroprocessors.

CS 342 Object Oriented Programming Using C++ (4)
Prerequisite: CS 242.
Concepts and techniques of object-oriented programming; structured design and modular construction; use of C to demonstrate structured programming; use of C++ to demonstrate fundamentals of object-oriented programming.

CS 345 UNIX and Shell Programming (4)
Prerequisites: CS 203.
A theoretical and practical study of the UNIX operating system and shell programming. Topics: Shell commands and utilities, UNIX file system, UNIX shells, UNIX \ graphical user interfaces, and shell programming.

CS 370 Parallel and Distributed Programming (4)
Prerequisites: CS 203, CS 245.
Parallel programming techniques; abstract models of hardware and operating systems to support parallel programs.

CS 386 Introduction to Automata Theory (4)
Prerequisites: CS 202, and MATH 248.
Formal approach to automata theory; finite state machines, regular expressions, regular languages. Develops mathematical foundation for computer science.

CS 422 Principles of Data Base Systems (4)
Prerequisites: CS 122, and 312.
Normal forms, database system architecture, query optimization, file structures, transaction management, data warehouses, object-oriented databases, databases for e-commerce.

CS 437 Software Engineering (5)
Prerequisites: CS 312, CS 337 and completion of the GWAR.
Methodologies and tools for the development, implementation, integration, testing, evaluation, and maintenance of software systems. Software quality assurance; ethical issues in software development. Group laboratory project and oral and written presentations. This course satisfies the upper division writing requirement. Lecture 4 hours, laboratory 3 hours.

CS 440 Introduction to Operating Systems (4)
Prerequisites: CS 245, 312.
Resource, memory and process management; concurrent processing; networking and distributed systems.

CS 447 Computer Networks Configuration and Management (4)
Prerequisites: CS 440.
Network topology, architecture, and related software. Topics covered include designing a LAN and an internetwork, developing access lists, configuring routing protocols, customize switch configurations and manage device configurations.

CS 450 Computer Graphics (5)
Prerequisites: CS 203, MATH 208, and MATH 255.
Programming in object oriented graphics environment implementing primitive operations in two and three dimensions. Image modeling using affine transformations, polygonal meshes and other topics. Lecture 4 hours, laboratory 3 hours.

CS 451 Multimedia Software Systems (4)
Perquisite: CS312 or CS 342.
Introduction to multimedia information and processing. Topics: basic signal processing, color, space, formations of image, video, and audio data. Current standards and the state-of-the-art techniques for multimedia systems. Lecture 4 hours.

CS 454 Topics in Advanced Computer Science (1 to 4)
Prerequisites: As needed for specific topic.
Current topics of special interest to students in computer science, as announced in Schedule of Classes. May be repeated to a maximum of 20 units of credit as topic changes.

CS 460 Artificial Intelligence (4)
Prerequisite: CS 312.
Knowledge representation; problem solving strategies and search algorithms; applications from such areas as theorem proving, expert systems, natural language processing, robotics, and pattern recognition.

CS 461 Machine Learning (4)
Prerequisite: CS 312.
Means that enable computers to perform tasks for which they were not explicitly programmed; learning paradigms include inductive generalization for examples, genetic algorithms, and connectionist systems such as neural nets.

CS 470 Computer Networking Protocols (4)
Prerequisite: CS 245, CS 312.
Study of computer network layered architecture and protocols. Topics to be covered include: network architecture, data link layer, addressing, LAN, network layer, transport layer and network applications.

CS 480 Cryptography and Information Security (4)
Prerequisite: CS 245, CS 312.
This course covers both principles and practice of cryptography and information security. Topics covered include basic concepts of cryptology, classical ciphers, modern symmetric ciphers (DES, IDEA, RC5), Advanced Encryption Standard (AES), public key cryptography, data integrity and digital signature schemes.

CS 486 Computability and Intractability (4)
Prerequisite: CS 386.
Theory of Computing; nondeterminisms, decidability and unsolvable problems; NP completeness and intractable computations.

CS 488 Compilers (4)
Prerequisites: CS 312, 332, 386.
Compiler construction; lexical analysis, including regular languages and finite-state acceptors; syntactic analysis, including parsing techniques and grammars; code generation and optimization.

CS 490 Computer Science Recapitulation (2)
Prerequisite/corequisites: MATH 270, CS 386, 437, 440, EE 444.
A recapitulation of the primary concepts of Computer Science in preparation for the Major Field Achievement Test.

CS 496A Software Design Laboratory (2)
Prerequisites: CS 312, 320, 337, 386, and senior standing.
Approaches to software design, including Design Patterns and other strategies for designing software systems. Students working individually or as a group will propose a substantial software project, resulting in a preliminary report and project presentation. Laboratory 6 hours. Graded ABC/NC

CS 496B Software Design Laboratory (2)
Prerequisite: 496A.
Software design, including Design Patterns and other strategies for designing software systems. Students will make further progress on the project initiated in CS 496A resulting in an intermediate report and project presentation. Laboratory 6 hours. Graded ABC/NC

CS 496C Software Design Laboratory (2)
Prerequisite: 496B.
Software design, including Design Patterns and other strategies for designing software systems. Students will complete the project initiated in CS 496AB resulting in a final formal report and project presentation. Laboratory 6 hours. Graded ABC/NC

CS 499 Undergraduate Directed Study (1 to 4)
Prerequisite: Consent of an instructor to act as sponsor.
Project selected in conference with sponsor before registration; progress meetings held regularly, and a final report submitted. May be repeated for credit.