spacer
spacer
spacer
spacer
spacer spacer spacer
Note: This page contains 2007/08 Undergraduate Catalog Data.
spacer
spacer
spacer
Computer Science
spacer

Course Descriptions


Lower Division

CS 1000 Introduction to Computers (3 units)
Introduction to the computer for the non-Computer Science major. Selected computer applications, beginning programming, review of hardware and software, social impact of computing, and the future of the computer. Use of microcomputers. Corequisite: CS 1002. (Lecture, 2 hours; laboratory, 2 hours) (Fall, Spring)

CS 1020 Elements of Computing (1 unit)
Introduction to the computer for the non-computer science major. Selected computer applications, review of hardware and software components of a computer, social impact of computing, and the future of the computer. Use of personal computers, particularly effective use of common tools like word processors and spreadsheets. Enrollment preference will be given to CAMP program participants. Freshman only. (Lecture, 1 hour) (Fall)

CS 1500 Computer Programming I (3 units)
The usual entry course for Computer Science majors. Algorithm development and problem-solving methods. Design and development of computer programs using a structured programming language such as C++. Corequisite: CS 1502. Prerequisite: Two years of high school algebra. (Lecture, 2 hours; laboratory, 2 hours) (Fall, Spring)

CS 2000 Effective Computing (3 units)
To familiarize students with current computing technologies used within education, home, and business environments. Topics include productivity tools such as word processing, spreadsheets, hardware, and operating systems. There also will be discussion of ethical and social issues concerning information technologies. Enrollment preference will be given to Liberal Studies majors. Satisfies G.E. area E1. Students may not use both CS 2000 and CS 4000 to satisfy G.E. requirements. Corequisite: CS 2002. (Credit may not be given for both CS 2000 and CS 4000.) (Lecture, 2 hours; laboratory, 2 hours)

CS 2500 Computer Programming II (3 units)
Continued development of discipline in program design, in style and expression, and in debugging and testing, especially for larger programs. Introduction to algorithmic analysis, string processing, recursion, internal search/sort methods, and simple data structures. Introduction to professional methodologies and ethics. Corequisite: CS 2502. Prerequisite: CS 1500. (Lecture, 2 hours; laboratory, 2 hours) (Fall, Spring)

CS 2700 Assembly Language and Computer Architecture (3 units)
Computer programming at the machine level. Machine language and basic machine architecture, addressing modes, subprogram linkage, program sectioning and overlays, I/O programming, macros, and interrupts. Corequisite: CS 2702. Prerequisite: CS 2500. (Lecture, 2 hours; laboratory, 2 hours) (Fall)


Upper Division

CS 3000 Communication Networks (3 units)
Introduction to the operation of computer networks. Communication standards and protocols, network layers, data and packet transmission, internetworking, network applications, emerging technologies, software monitoring tools, social and ethical issues. Corequisite: CS 3002. Prerequisite: CS 2500 (Lecture, 2 hours; laboratory, 2 hours)

CS 3050 File Processing (3 units)
Study of the physical and logical characteristics of data stored on external storage devices. Data structures used to organize such information. Access methods and details of working with file systems. Corequisite: CS 3052. Prerequisite: CS 2500. (Lecture, 2 hours; laboratory, 2 hours) (Fall)

CS 3100 Data Structures and Algorithms (3 units)
Fundamental concepts and abstraction of data structures. The design and analysis of algorithms involving such data structures as arrays, stacks, queues, lists, trees, strings, graphs, and files. Techniques for estimating the time and memory requirements of computer programs. Several large programming assignments. Prerequisite: CS 2500. (Fall, Spring)

CS 3150 Nonlinear Systems and Chaos (3 units)
(Same as COGS 3150) Addresses theoretical and quantitative methods useful for work with nonlinear systems from many fields. Together with its laboratory, the course provides experience with phase space maps, Poincare sections, basins of attraction, strange attractors, and fractals and fractal dimensionality. Emphasizes systems best described by discrete math. Examples are drawn from physics, biology, cognitive science, economics, and other areas. Corequisite: CS 3152. Prerequisite: COGS 2300 or consent of instructor. (Lecture, 2 hours; laboratory, 2 hours).

CS 3200 Computer Simulation Techniques (3 units)
Introduction to simulation, planning computer simulation experiments, simulation models. Simulation methodology, design of experiments, analysis of data validation of models and results. Programming selected applications using simulation languages such as GPSS or simscript. Corequisite: CS 3202. Prerequisites: MATH 1600 or 1610 or 1620 ECON 3205, and CS 1500 or CIS 2010. (Lecture, 2 hours; laboratory, 2 hours) (Spring)

CS 3600 Computer Graphics I (3 units)
Introduction to computer graphics programming using a current graphics API with emphasis on the use of computer graphics in the sciences and mathematics. Course includes modeling, rendering, animation, interaction, and realism. Corequisite: CS 3602. Prerequisite: CS 2500 (Lecture, 2 hours; laboratory, 2 hours) (Fall

CS 3740 Computer Organization (3 units)
Overview of logical hardware technologies used in digital computer systems, including memory organization, bus structures, CPU pipelining and parallelism, and control unit organization. Prerequisite: CS 2700. (Spring)

CS 3750 Operating Systems I (3 units)
Introduction to computer operating system design and implementation issues. Historical development of operating systems; management of processes, concurrent processes, storage, and I/O systems; distributed operating systems; protection and security; ethical issues relating to security and privacy; and case studies of operating systems. Corequisite: CS 3752. Prerequisites: CS 3100 and CS 3740. (Lecture, 2 hours; laboratory, 2 hours) (Fall)

CS 3850 Object Oriented Programming (3 units)
Presents the most important object-oriented features of a computer programming language such as C++. Emphasis on effective use of the paradigm. Counts for Computer Science elective credit. Corequisite: CS 3852. Prerequisite: CS 2500 or consent of instructor.

CS 4000 Personal Computing (3 units)
Gives the student the knowledge and experience needed to use a personal computer effectively. A range of computers and software will be available; as much as possible, the student will be able to learn about systems which are directly usable in his or her area of study. Topics include discussions of computer hardware, the range of capabilities of the personal computer, how to evaluate a piece of software, and how software is written. Satisfies G.E. area F1. Students may not use both CS 2000 and CS 4000 to satisfy G.E. requirements. Corequisite: CS 4002. Prerequisite: Upper-division standing. (Credit may not be given for both CS 2000 and CS 4000.) (Lecture, 2 hours; laboratory, 2 hours) (Fall, Winter, Spring)

CS 4100 Programming Languages (WP) (3 units)
Study of programming language concepts such as binding, data structures, string handling, control structures, as embodied in various programming languages. Satisfies upper-division writing proficiency requirement. Prerequisites: Completion of the Writing Proficiency Screening Test with a passing score and CS 3100. (Spring)

CS 4250 Database Management Systems (3 units)
Modeling, development, and implementation of database systems using storage structures, data definition languages, and data manipulation languages for the relational approach to database management. Database integrity and security problems. Historical development of database systems. Corequisite: CS 4252. Prerequisites: CS 3050 and 3100. (Lecture, 2 hours; laboratory, 2 hours) (Spring)

CS 4270 Ecommerce Systems Design (3 units)
Study of technologies and architectures of large, complex, and robust Ecommerce Systems. Discussion of the design and implementation of major subsystems of Ecommerce Systems. Topics: Java and OO design, n-tier architectures, DB access, Java Servlets, and a significant project. Corequisite: CS 4272. Prerequisites: CS 3050 and basic Java. (Lecture, 2 hours; laboratory, 2 hours)

CS 4300 Compiler Theory (3 units)
Lexical, syntactic, and semantic analyses and syntax directed translation of programming languages. Includes symbol table construction, error diagnostics, and code generation. Corequisite: CS 4302. Prerequisite: CS 4100. (Lecture, 2 hours; laboratory, 2 hours) (Fall)

CS 4410 Automata, Computability, and Formal Languages (3 units)
Finite state concepts; sequential machines and state minimization; Chomsky grammar; algorithms on grammars; computability and Turing machines; non-computable functions. Prerequisite: CS 4100. (Spring)

CS 4440 Theory of Algorithms (3 units)
A systematic study of the design and efficiency analysis of algorithms. Coverage of fundamental techniques of algorithms such as greedy, divide-and-conquer, dynamic programming, graph techniques, probabilistic, and parallel. An introduction to computational complexity theory: problem reduction, NP-complete problems, and other complexity classes. Prerequisites: CS 3100 and MATH 2300. (Spring)

CS 4450 Coding and Information Theory (3 units)
Topics to be selected from error detecting and correcting codes, encryption and decryption techniques, RSA and knapsack codes, algebraic coding theory, Hamming distance, sphere packing and its relation to optimal codes, Hamming, Huffman and Gray codes, entropy, channel capacity and Shannon’s theorem, bandwidth and the sampling theorem. Prerequisite: CS 3100 or MATH 2300 or equivalent. (Fall)

CS 4480 Artificial Intelligence (3 units)
Notational systems, structures, and strategies for their choice; search strategies; parallel vs. serial processing; communication and perception; applications in psychology, medicine, and robotics. Prerequisite: CS 3100.

CS 4600 Computer Graphics II (3 units)
Computer graphics algorithms and techniques, implementing the graphics techniques used in CS 3600. Projections and transformations, color models, polygon interpolation, advanced splines, ray tracing, volume rendering, and various specialized techniques. Prerequisites: CS 3600; MATH 2530 or equivalent is recommended. (Spring)

CS 4750 Operating Systems II (3 units)
(Formerly CS 3760) A study of operating systems theory, design, and implementation. Topics may include kernel internals; distributed systems; experimental systems; system programming, generation, and configuration; process coordination; and protection and security. Corequisite: CS 4752. Prerequisite: CS 3750. (Lecture, 2 hours; laboratory, 2 hours) (Spring)

CS 4800 Software Engineering (3 units)
(Formerly CS 3800) Introduction to formal techniques in software design, development, and verification. The students will form teams. Each team will design a significant software project. Corequisite: CS 4802. Prerequisites: CS 3050 and 3100. (Lecture, 2 hours; laboratory, 2 hours) (Fall)

CS 4910 Cooperative Education (1-3 units)
An opportunity to acquire relevant practical experience in supervised paid employment within the discipline. Students are placed in private or public sector positions under the supervision of the employer and a departmental coordinator. May be repeated for a total of six units. Prerequisites: Sophomore standing and consent of coordinator.

CS 4940 Practicum in Computer Science (1-3 units)
Practical experience through directed work with department faculty/staff to extend coursework knowledge. May be repeated for a total of six units. Prerequisites: Upper-division standing and consent of instructor.

CS 4950 Selected Topics in Computer Science (1-5 units)
(Topics to be specified in Class Schedule) Development of a selected branch of computer science. Topics vary each term. Different topics may be taken for a maximum of 6 units. Prerequisites: Senior standing and consent of instructor.

CS 4951 Selected Topics in Computer Science (1-5 units)
(Topics to be specified in Class Schedule) Development of a selected branch of computer science. Topics vary each term. Different topics may be taken for a maximum of 6 units. Corequisite: CS 4953. Prerequisites: Senior standing and consent of instructor.

CS 4960 Seminar in Computer Science (1 unit)
Presentation and discussion of selected topics in computer science from the current literature. Prerequisites: Senior standing and consent of instructor. (Spring)

CS 4980 Individual Study (1-4 units)
For students capable of independent work and in need of advanced and specialized study. May be repeated for a total of 6 units. Prerequisite: Consent of instructor.

spacer
Arrow backto top of page
spacer
spacer ||||||| Updated: 9/24/07
spacer
spacer