CSC 400 Special Problems for Advanced Undergraduates (1-2)
Individual investigation, research, studies or surveys of selected problems. Total credit limited to 4 units, with a maximum of 2 units per quarter. Prerequisite: Consent of department head.
CSC 401 Real-Time Programming and Ada (3)
Ada programming language emphasizing real-time programming, software engineering, and parallel programming. Basics of the language and the architecture of Ada software systems. Includes packages, exceptions, generic types, pragma's representation clauses, and tasks. Tools in the Ada Programming Support Environment (APSE). 3 lectures. Prerequisite: CSC 345.
CSC 404 Computer Networks (4) (Also listed as CPE 404)
Communications architectures and distributed systems; multicomputer complexes and interprocessor communications; communications media, message switching, and communications protocol standards. 3 lectures, 1 laboratory. Prerequisite: CSC 315, CSC 453, or consent of instructor.
CSC 405 Computer Networks II (4) (Also listed as CPE 405)
Network architectures and protocols; network performance analysis; the theory of error detection and correction; other advanced topics such as routing, network management, integrated services, satellite networks, fiber optics. 3 lectures, 1 laboratory. Prerequisite: CSC 404 or consent of instructor.
CSC 410 Performance Analysis (4) (Also listed as CPE 410)
Statistical and mathematical techniques for modeling and analyzing the performance of computer and communication systems. Tools and techniques for measuring performance of operational systems. Theory and methodologies for the design, procurement and evaluation of systems. Introduction to elementary concepts of discrete event simulation. 3 lectures, 1 laboratory. Prerequisite: STAT 321 or STAT 312 or consent of instructor.
CSC 414 Authoring Languages and Systems (4)
Advanced techniques utilizing the computer to assist individualized instruction. Comparison between authoring languages and authoring systems. Emphasis on advanced features of authoring languages and their applications in computer-based education. 3 lectures, 1 laboratory. Prerequisite: CSC 112 or CSC 118.
CSC 415 Microcomputer Systems (4) (Also listed as CPE 415)
Recent advances in microcomputer architectures. RISC, parallel processing advances, and component communi-cation. 3 lectures, 1 laboratory. Prerequisite: CSC 316.
CSC 420 Artificial Intelligence I (4)
Programs and techniques that characterize artificial intelligence with emphasis on intelligent agents in solving complex problems: search and representation, first-order logic and reasoning, planning, and fuzzy logic. Instruction and programming in LISP. 3 lectures, 1 laboratory. Prerequisite: CSC 345.
CSC 421 Artificial Intelligence II (4)
Continuation of agent concept in problem solving from CSC 420. New emphasis on inference and expert systems with: uncertainty, machine learning, neural networks, and genetic algorithms. Instruction and programming in CLIPS and/or SmallTalk. 3 lectures, 1 laboratory. Prerequisite: CSC 420.
CSC 427 Computer-Based Educational Systems I (4)
Introduction to the design and implementation of computer-based educational systems. Emphasis on sound generation and videodisk overlay to create a multi-media learning environment. 3 lectures, 1 laboratory. Prerequisite: CSC 414.
CSC 433 Numerical Analysis III (3) (Also listed as MATH 433)
Methods for solving special systems of equations. Iterative and direct methods. Solution of partial differential equations by the finite difference method. Method of characteristics. Methods for finding eigenvalues and eigenvectors including the QR method. 3 lectures. Prerequisite: CSC 332 or equivalent.
CSC 440 Software Engineering I (3)
Introduction to the software lifecycle. Methods and tools for the analysis, design, and specification of large, complex software systems. Project documentation, organization and control, communication, and time and cost estimates. Group laboratory project. Miscellaneous course fee may be requiredsee Class Schedule. 2 lectures, 1 laboratory. Prerequisite: CSC 345.
CSC 441 Software Engineering II (3)
Continuation of the software lifecycle. Methods and tools for the implementation, integration, testing and maintenance of large, complex software systems. Program development and test environments. Group laboratory project. 2 lectures, 1 laboratory. Prerequisite: CSC 440.
CSC 443 Programming Environments II (4)
Graphical user interfaces and the software development tools of their environments. Development of window-oriented programs using the environments' systems programming language. 3 lectures, 1 laboratory. Prerequisite: CSC 240 and CSC 345.
CSC 445 Theory of Computing I (3)
Finite state machines and regular languages. Pushdown automata and context-free languages. Turing machines. Computation theory, computational complexity, and program verification. 3 lectures. Prerequisite: CSC 245 or equivalent.
CSC 447 Database Management Systems Implementation (3)
Data structures and algorithms used in the implementation of Database Systems. Implementation of data and transaction managers: access methods interfaces, concurrency control and recovery, query processors and optimizers. Introduction to implementation of distributed database systems. 3 lectures. Prerequisite: CSC 346 and CSC 347.
CSC 450 Programming Languages II: Description and Analysis (4)
Regular languages and finite automata. Table-driven lexical analysis. Recognition of reserved words. Symbol table construction. Parsing: top-down (LL) and bottom-up (LR). Table-driven versus recursive descent parsing. Context-free languages and pushdown automata. 3 lectures, 1 laboratory. Prerequisite: CSC 351, CSC 445.
CSC 451 Programming Languages III: Compiler Implementation (4)
Intermediate translation forms. Runtime representations. Generation of object code by compilers. Local optimization: constant propagation, folding, common subexpression removal. Global optimization, invariant code removal, operator strength reduction. Register allocation. 3 lectures, 1 lab. Prerequisite: CSC 450.
CSC 453 Introduction to Operating Systems (4)
Introduction to sequential and multiprogramming operating systems; kernel calls, interrupt service mechanisms, scheduling, files and protection mechanisms, conventional machine attributes that apply to operating system implementation, virtual memory management, and I/O control systems. Miscellaneous course fee may be requiredsee Class Schedule. 3 lectures, 1 laboratory. Prerequisite: CSC 315.
CSC 454 Implementation of Operating Systems (4)
Design and implementation of multiprogramming kernels, systems programming methodology, interprocess communications, synchronization, device drivers and network access methods. 3 lectures, 1 laboratory. Prerequisite: CSC 453.
CSC 455 Computer Graphics (4)
Graphics hardware and primitives. DDA, polygon filling, windowing and clipping. 2D and 3D transformations, 3D rendering, backface removal, depth sorting. Shading and illumination techniques. Basic fractal forgeries. Miscellaneous course fee may be requiredsee Class Schedule. 3 lectures, 1 laboratory. Prerequisite: CSC 345.
CSC 456 Advanced Rendering Techniques (4)
Illumination models, reflectance, absorption, emittance, Gouraud shading, Phong shading, raytracing polyhedra and other modeling primitives, coherence, acceleration methods, radiosity, form factors, advanced algorithms. 3 lectures, 1 laboratory. Prerequisite: CSC 455.
CSC 458 Computer Graphics Seminar (2)
Current topics in computer graphics. Total credit limited to 4 units. 2 seminars. Prerequisite: CSC 455.
CSC 461, 462 Senior Project (2) (3)
Selection and completion of a project under faculty supervision. Projects typical of problems which graduates must solve in their fields of employment. Project results are presented in a formal report. Minimum 150 hours total time. Prerequisite: Recommended: CSC 440 for CSC 461; CSC 441 for CSC 462.
CSC 463 Undergraduate Seminar (2) (CR/NC)
Presentations by students of topics of interest to computer science professionals. Students make presentations of professional quality that are evaluated by the entire class. Possible topics include computers and society, ethical issues in computing, social and legal implications of computing, interpretation of technical material for management. Notable speakers from industry are invited to address the class. Offered only on a Credit/No Credit basis. 2 activity periods.
CSC 470 Selected Advanced Topics (1-3)
Directed group study of selected topics for advanced students. Open to undergraduate and graduate students. Class schedule will list topic selected. Total credit limited to 6 units. 1 to 3 lectures. Prerequisite: Consent of instructor.
CSC 484 Computer Vision (3)
Fundamental issues in computer vision. Convolution, edge detection and image segmentation. Pattern classification methods and neural networks. Stereoscopic vision and optical flow. 3 lectures. Prerequisite: CSC 345, CSC 215, MATH 204, MATH 143 or consent of instructor.
CSC 485 Cooperative Education Experience (6) (CR/NC)
Part-time work experience in business, industry, government, and other areas of student career interest. Positions are paid and usually require relocation and registration in course for two consecutive quarters. Formal report and evaluation by work supervisor required. Credit/No Credit grading only. Prerequisite: Sophomore standing and consent of instructor.
CSC 495 Cooperative Education Experience (12) (CR/NC)
Full-time work experience in business, industry, government, and other areas of student career interest. Positions are paid and usually require relocation and registration in course for two consecutive quarters. Formal report and evaluation by work supervisor required. Credit/No Credit grading only. Prerequisite: Sophomore standing and consent of instructor.