CSC-COMPUTER
SCIENCE -- 2003-05 Catalog
Computer Science Department
CSC
100 Computer Science Orientation (2)
Introduction
to the computer science discipline for majors. Computer problem solving and the
use of computers. Success skills for computer science majors. Career paths and
opportunities. Ethical behavior in the computer science discipline. Interaction
with upper division students, alumni and faculty. 2 seminars. Prerequisite:
Computer science major.
CSC
101 Fundamentals of Computer Science I
(4)
(Also
listed as CPE 101)
Basic
principles of algorithmic problem solving and programming using methods of
top-down design, stepwise refinement and procedural abstraction. Basic control
structures, data types, and input/output. Introduction to the software
development process: design, implementation, testing and documentation. The
syntax and semantics of a modern programming language. 3 lectures, 1
laboratory. Prerequisite: MATH 118 (or equivalent) with a grade of C- or
better, and basic computer literacy (CSC 100 or CSC 111 or equivalent).
CSC
102 Fundamentals of Computer Science II
(4)
(Also listed as CPE 102)
Basic
design, implementation, testing, and documentation of object-oriented software.
Introduction to classes, interfaces, inheritance, algorithms (sort, search,
recursion), data structures, abstract data types (lists, stacks, queues), file
I/O, exceptions, and Graphical User Interfaces. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 101 with a C- grade or better and either MATH 141 or MATH
221 with a C- grade or better.
CSC
103 Fundamentals of Computer Science
III (4)
(Also listed as CPE 103)
Continuation
of material from CSC/CPE 102: abstract data types specification and
implementation, the analysis of algorithms and the software development
process. Introduction to a specific high level design notation. Recursive
algorithms. Software design case studies and practice. Software testing and
program verification. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 102 with
a C- grade or better and CSC 141 with a C- grade or better.
CSC
109 Accelerated Introduction to
Computer Science (5) (Also listed as CPE 109)
Accelerated
coverage of the material in CSC/CPE 101, CSC/CPE 102, and CSC/CPE 103. 4
lectures, 1 activity. Corequisite: CSC 141, significant background in computer
science, and consent of instructor.
CSC
110 Computers and Computer
Applications: Windows (3)
The
computer as a problem-solving tool. A working introduction to microcomputers
and fundamental computer concepts. Use of applications software. Credit not
allowed for CSC or Software Engineering majors. 2 lectures, 1 activity.
Prerequisite: Completion of ELM requirement.
CSC
111 Computer Applications for
Scientists and Engineers (3)
Customization
of applications using a hosted programming language such as Visual Basic. Use
of spreadsheet and other applications software in science and engineering.
Credit not allowed for CSC or Software Engineering majors. 2 lectures, 1
activity. Prerequisite: MATH 118 or equivalent.
CSC
113 Computers and Computer
Applications: Macintosh (3)
The
computer as a problem-solving tool. A working introduction to microcomputers
and fundamental computer concepts. Use of applications software. Credit not
allowed for CSC or Software Engineering majors. 2 lectures, 1 activity.
Prerequisite: Completion of ELM requirement.
CSC
119 Information Retrieval and
Management (4)
Use
of applications software, including database software, to create and manage
information. Credit not allowed for CSC or Software Engineering majors. 4
lectures. Prerequisite: Completion of ELM requirement.
CSC
141 Discrete Structures I (4)
Introduction
to structures of computer science: logic, sets, relations, functions, graphs
and trees. Propositional and predicate logic. Applications of predicate logic
to preconditions, postconditions, and proof techniques. Introduction to
complexity of algorithms. 4 lectures. Corequisite: CSC/CPE 102. Prerequisite:
MATH 118 and MATH 119, or high school equivalent, and CSC/CPE 101 or
equivalent.
CSC
142 Discrete Structures II (4)
Advanced
structures of computer science: sequences, strings, graphs, networks. Recursion
and recurrence relations. Introduction to combinatorics. Proof techniques.
Complexity of algorithms. Advanced applicaton to verification of algorithms. 4
lectures. Prerequisite: CSC/CPE 102 and CSC 141.
CSC
200 Special Problems for 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 instructor.
CSC
205 Software Engineering I (4) (Also
listed as CPE 205)
Introduction
to the software lifecycle. Methods and tools for the analysis, design, and
specification of large software systems. Project planning, documentation,
communication, and time/cost estimates. Group laboratory project. Graphical
User Interface Design. Technical presentation methods. Software design case
studies and practices. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103 with
a grade of C- or better or CSC/CPE 109 and CSC 141, with a grade of C- or
better.
CSC
206 Software Engineering II (4) (Also
listed as CPE 206)
Continuation
of the software lifecycle. Methods and tools for the implementation,
integration, testing and maintenance of large software systems. Software
development and test environments. Software quality assurance. Group laboratory
project. Technical presentation methods and practice. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 205.
CSC
231 Fortran for Engineering Students
(2)
Programming
techniques and procedures with applications to engineering problems in
Fortran90. Introduction to numerical methods and simulation. Credit not allowed
for CSC, Software Engineering or CPE majors. 2 activities. Prerequisite: MATH
142 or MATH 132; PHYS 121 or PHYS 131.
CSC
233 COBOL Programming (3)
Structure
of the Common Business-Oriented Language (COBOL). Coding fundamentals and
program logic. Writing of complete COBOL programs applied to typical business
data processing problems. 3 lectures. Prerequisite: Any computer programming
course.
CSC
234 C and Unix (3)
The
C programming language and the UNIX programming environment. Operators,
standard I/O functions, strings, pointers and arrays, data types and storage
classes. Unix shell programming and basic I/O system calls. Credit not allowed
for CSC, Software Engineering or CPE majors. 3 lectures. Prerequisite: MATH 142
or MATH 132.
CSC
239 Selected Programming Languages (4)
A
programming language selected from languages of current interest. Intended for
students who want to learn another programming language. Class Schedule will list selected language. 3 lectures, 1 laboratory.
Prerequisite: Knowledge of a programming language.
CSC
250 Systems Programming (4)
(Also listed as CPE 250)
C
programming language from a system programming perspective. Standard C language
including operators, I/O functions, and data types in the context of system
functions. Unix commands, shell scripting, file system, editors. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 103 or CSC/CPE 109, EE/CPE 229.
CSC
270 Computer Graphics Applications (4)
(Also listed as CPE 270)
Use
of common graphics applications packages. Business graphics, figure editing,
animation and image editing, photorealistic image generation, scientific
visualization and multimedia. 2 lectures, 2 activities.
CSC
300 Professional Responsibilities (4)
The
responsibilities of the computer science professional. The IEEE/ACM Software
Engineering Code of Ethics, quality tradeoffs, software safety, intellectual
property, history of computing and the social implications of computers in the
modern world. Technical presentation methods and practice. 4 lectures.
Prerequisite: CSC/CPE 206.
CSC
302 Computers and Society (4) GE Area F
Social,
ethical, political and technological implications and effects of computers in
the modern world. Examination of the benefits and side-effects of computer
applications and automation. Case study review and analysis. Not open to
students in engineering or computer science. 4 lectures. Prerequisite:
Completion of GE Area B, and junior standing.
CSC
305 Individual Software Design and
Development (4)
(Also listed as CPE 305)
Practical
software development skills needed for construction of mid-sized
production-quality software modules, using the CSC upper division programming
language. Topics include inheritance, exceptions, and memory and disk-based
dynamic data structures. Students must complete an individual programming
project of mid-level complexity. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 103.
CSC
310 Computers for Poets (4) GE Area F
How
computers and computer devices work. Introduction to software systems and
applications. How computers connect with various media including images, speech
and data. How information is encoded and transmitted across networks.
Relationship between the computer and human information processing. Not open to
students in engineering or computer science. 4 lectures. Prerequisite: Junior
standing and completion of GE Area B.
CSC
315 Computer Architecture (4) (Also
listed as CPE 315)
In-depth
study of the instruction set architecture and hardware design of a specific
CPU. Introduction to pipelines, input/output and multi-processors. Computer
abstractions and performance measurement. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 103, CPE/EE 229.
CSC
316 Micro Controllers and Embedded
Applications (4) (Also listed as CPE 316)
Introduction
to micro controllers and their applications as embedded devices.
Hardware/software tradeoffs, micro controller selection, use of on-chip
peripherals, interrupt driven real-time operation, A/D conversion, serial and
parallel communications, watch-dog timers, low power operation and assembly
language programming techniques. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 315 or CPE/EE 329.
CSC
330 Programming Languages I (4)
Comparison
of structure and semantics of various high level programming languages. BNF
grammars. Language design issues and techniques, including parameter passing,
storage allocation, storage mapping and binding concepts. 4 lectures.
Prerequisite: CSC/CPE 103 and CSC/CPE 250.
CSC
334 Advanced Topics in Unix (4)
Advanced
topics in Unix, system calls, library functions, shell scripts, and selected
Unix tools. 4 lectures. Prerequisite: CSC/CPE 103 or CSC 234.
CSC
341 Numerical Engineering Analysis (4) GE B6
An
intensive survey of numerical analysis techniques used for solving engineering
problems. Topics include solution of nonlinear equations, solution of linear
systems, interpolation, numerical quadrature, ordinary differential equations
and boundary value problems. Not open to students who have completed CSC 342. 4
lectures. Prerequisite: MATH 242 and knowledge of a high level programming
language, or ability to use one of the following systems: Maple, MatLab,
Mathematica, or Mathcad.
CSC
342 Numerical Analysis I (3)
Computer
solutions of nonlinear equations and systems of linear equations. Polynomial
interpolation. Numerical quadrature. Introduction to the solution of ordinary
differential equations. 3 lectures. Prerequisite: MATH 143 and knowledge of a
high level programming language, or ability to use one of the following
systems: Maple, MatLab, Mathematica, or Mathcad.
CSC
343 Numerical Analysis II (3)
Solution
of systems of differential equations, predictor-corrector methods, stiff
equations. Approximation methods: cubic splines, B-splines, Bezier curves,
least squares, methods for solving boundary value problems. 3 lectures.
Prerequisite: CSC 342 or equivalent.
CSC
349 Design and Analysis of Algorithms
(4)
Intermediate
and advanced algorithms and their analysis. Mathematical, geometrical, and
graph algorithms. NP-complete problems. Additional topics will be chosen from
pattern matching, file compression, cryptology, dynamic and linear programming,
and exhaustive search. 4 lectures. Prerequisite: CSC/CPE 103, MATH 142 and
completion of all mathematics/statistics support courses.
CSC
353 Systems Programming for Software
Engineers (4)
(Also listed as CPE 353)
Introduction
to assembly language and C programming; use of linkers and loaders; I/O and
systems level programming; interrupt handlers. Technical elective credit not
allowed for CSC/CPE majors. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE
103.
CSC
358 Computer System Administration (2)
Fundamental
concepts of Unix system administration. Use of shell scripts and utilities.
Techniques of networks and data communications. Methods of system maintenance
and accounting. 2 seminars. Prerequisite: CSC/CPE 103 or permission of
instructor.
CSC
361 File Structures (4)
External storage devices. Character, record, and
block I/O. Blocking and buffering. File structures: sequential, indexed
sequential, B trees, hashing, multi-key and linked. Primary and secondary
indexing. Design and implementation of record and object storage managers. Data
compression. Multi-media file formats. 4 lectures. Prerequisite: CSC/CPE 103.
CSC
365 Introduction to Database Systems
(4)
(Also listed as CPE 365)
Basic
principles of database management systems (DBMS) and of DBMS application
development. DBMS objectives, systems architecture, database models with
emphasis on Entity-Relationship and Relational models, data definition and
manipulation languages, the Structured Query Language (SQL), database design,
application development tools. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE
103.
CSC
366 Database Modeling, Design and Implementation
(4) (Also listed as CPE 366)
The
database modeling problem. Database modeling levels: external, conceptual,
logical and physical. Database models: entity-relationship, relational,
object-oriented, semantic, and object-relational. Normal forms. Distributed
database design. Functional analysis of database applications and transaction
specification, design, and implementation. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 365.
CSC
369 Distributed Computing I (4) (Also
listed as CPE 369)
Introduction
to distributed computing paradigms and protocols: interprocess communications,
group communications, the client-server model, distributed objects, and
Internet protocols. Emphasis on distributed software above the operating system
and network layers. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103.
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 instructor.
CSC
402 Software Requirements Engineering
(4)
(Also listed as CPE 402)
Software
requirements elicitation, analysis and documentation. Team process
infrastructure and resource estimation to support appropriate levels of
quality. Software architectural design. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 206, CSC/CPE 305.
CSC
405 Software Construction (4) (Also listed as CPE 405)
Design
and construction of sizeable software products. Technical management of
software development teams. Software development process models, software design, documentation,
quality assurance during development, software unit and integration testing;
CASE tools, development environments, test tools, configuration management. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE/CSC 402.
CSC
406 Software Deployment (4) (Also
listed as CPE 406)
Deployment
of a sizeable software product by a student team. Software maintenance and
deployment economic issues. Management of deployed software: version control,
defect tracking and technical support. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 405.
CSC
430 Programming Languages II (4) (Also
listed as CPE 430)
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 330 and CSC 445.
CSC
431 Programming Languages III (4) (Also
listed as CPE 431)
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 laboratory.
Prerequisite: CSC/CPE 430.
CSC
434 Compilers – Hardware/Software
Interface (4)
(Also listed as CPE 434)
Block
structured programming languages, their design and implementation via
retargetable compilers, with emphasis on code generation for a variety of
contemporary computer architectures. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 205 and CSC/CPE 315.
CSC
435 Introduction to Object Oriented
Design Using Graphical User Interfaces (4) (Also listed as CPE 435)
Principles
of object-oriented design, with emphasis on use of these principles in the
design of graphical interfaces. Comparison and contrasting of two major
object-oriented languages and their corresponding GUI class libraries.
Language-independent object-oriented design methods, and application of these
methods in the construction of a GUI-based project. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 103 or equivalent and CSC/CPE 305.
CSC
445 Theory of Computing (4)
Theory of formal languages and automata.
Decidability and computability. Turing machine as a universal model of
computation. 4 lectures. Prerequisite: CSC/CPE 103.
CSC
448 Bioinformatics Algorithms (4) (Also
listed as CPE 448)
Introduction
to the use of computers to solve problems in molecular biology. The algorithms,
languages, and databases important in determining and analyzing nucleic and
protein sequences and their structure. 3 lectures, 1 laboratory. Prerequisite:
Consent of instructor or the following: CSC/CPE 103 or BIO 447 and senior
standing.
CSC
453 Introduction to Operating Systems
(4)
(Also listed as CPE 453)
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. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 315 and either CSC/CPE 250 or CSC/CPE 353.
CSC
454 Implementation of Operating Systems
(4)
(Also listed as CPE 454)
Design
and implementation of multiprogramming kernels, systems programming
methodology, interprocess communications, synchronization, device drivers and
network access methods. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 453.
CSC
459 Real-Time Systems (4) (Also listed
as CPE 459)
Analysis
and synthesis of robust real-time systems including embedded systems, real-time
architectures, and programming, parallel processing, specification techniques,
algorithms for guaranteeing stringent timing constraints. Understanding of the
trade-offs between robustness and response times of time-critical systems. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 315.
CSC
464 Introduction to Computer Networks
(4)
(Also listed as CPE 464)
Computer
network architectures; communications protocol standards; services provided by
the network; historical and current examples presented. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 250 and CSC/CPE 315.
CSC
465 Advanced Computer Networks (4)
(Also listed as CPE 465)
Advanced
topics in computer networks; greater detail of protocol standards and services
provided by the network; focus on current industry and research topics. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 464 and CSC/CPE 453.
CSC
468 Database Management Systems
Implementation (4)
(Also listed as CPE 468)
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, 1 laboratory.
Prerequisite: CSC/CPE 365.
CSC
469 Distributed Computing II (4) (Also
listed as CPE 469)
Continued
exploration of topics in distributed computing in greater depth, with emphasis
on object-based and component-based software development. Introduction to
fault-tolerance and distributed algorithms. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 369.
CSC
471 Introduction to Computer Graphics
(4)
(Also listed as CPE 471)
Graphics
hardware and primitives. Modeling and rendering, geometric transforms,
hidden-surface removal, the graphics pipeline, scan-conversion and graphics
applications. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 205 or CSC/CPE
250.
CSC
473 Advanced Rendering Techniques (4)
(Also listed as CPE 473)
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/CPE 471.
CSC
474 Computer Animation (4) (Also listed
as CPE 474)
Basic
and advanced algorithms for generating sequences of synthetic images.
Interpolation in time and space, procedural and keyframe animation, particle
systems, dynamics and inverse kinematics, morphing and video. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 471.
CSC
475 Multimedia Tool Development (4)
(Also listed as CPE 475)
Algorithms
and techniques for creating multimedia applications. Topics include audio and
video compression techniques, multimedia network architectures, synchronization
of audio and video, multimedia toolkits, user interfaces and file systems. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 471.
CSC
476 Real-Time 3D Computer Graphics
Software (4)
Basic
and advanced algorithms for real-time, interactive, 3D graphics software. Modeling
(polygon mesh, height field, scene graph, LOD), real-time rendering (visibility
processing, shadows, multi-pass algorithms), complexity management, bounding
volumes and collision detection, interactive controls, multi-player game
technology, game engine architecture. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 471.
CSC
477 Computer Vision (4) (Also listed as
CPE 477)
Fundamental
issues in computer vision. Convolution, edge detection and image segmentation.
Pattern classification methods and neural networks. Stereoscopic vision and
optical flow. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103 and MATH 206.
CSC
479 Computer Graphics Seminar (2)
Current
topics in computer graphics. Total credit limited to 4 units. 2 seminars.
Prerequisite: CSC/CPE 471.
CSC
480 Artificial Intelligence (4) (Also
listed as CPE 480)
Programs
and techniques that characterize artificial intelligence. Programming in a high
level language. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103 and CSC
141.
CSC
481 Knowledge Based Systems (4) (Also
listed as CPE 481)
In-depth
treatment of knowledge representation, utilization and acquisition in a
programming environment. Emphasis on the use of domain-specific knowledge to
obtain expert performance in programs. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 480.
CSC
484 User-Centered Interface Design and
Development (4)
(Also listed as CPE 484)
Introduction
to the importance of user-centered principles in the design of good interfaces
and effective human-computer interaction. Topics include: study of human
characteristics affected by interface design, effective requirements data
collection and analysis, user-centered approaches to software engineering, and
evaluation of interface and interaction quality. 3 lectures, 1 laboratory.
Prerequisite: Junior standing and CSC/CPE 205.
CSC
486 Human–Computer Interaction Theory
and Design (4)
Application
of the theories of human-computer interaction to the task of user-centered
design. Survey of techniques for studying and involving users in different
aspects of the design process, and demonstration of where and when applicable.
Combining of theoretical understanding with practical experience to design
solutions to problems facing interactive systems designers. 4 seminars. Prerequisite:
CSC/CPE 484.
CSC
487 Graphical User Interface Systems
(4)
(Also listed as CPE 487)
Further
study of graphical user interface (GUI) programming systems. Structure of tools
and underlying systems to build such interfaces. Human factors including
considerations of good and bad interfaces. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 435.
CSC
488 Performance Analysis (4) (Also
listed as CPE 488)
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
consent of instructor.
CSC
490 Selected Advanced Topics (1–4)
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 8 units. 1 to 4 lectures. Prerequisite: Consent of instructor.
CSC
491, 492 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 employ-ment. Project
results are presented in a formal report. Minimum 150 hours total time.
Prerequisite: CSC/CPE 206 and consent of instructor. Note: although CSC 491,
492 substitute for CSC 461, 462, students may not use repeat credit for the purpose
of increasing GPA.
CSC
494 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.
CSC
500 Directed Study (2–3) (CR/NC)
Individual
directed study of advanced topics. Total credit limited to 4 units. Credit/No
Credit grading only. Prerequisite: Fully classified graduate standing and
consent of instructor.
CSC
508 Software Engineering I (4)
In-depth study of requirements engineering, software
project management, formal specifications and object-oriented analysis. 4
seminars. Prerequisite: CSC/CPE 205 and graduate standing, or consent of
instructor.
CSC
509 Software Engineering II (4)
In-depth
study of software modeling and design. Formal design methodologies. Design
patterns. Detailed case studies of existing projects. Tools and methods for
designing large software systems. 4 seminars. Prerequisite: CSC 508 and
graduate standing, or consent of instructor.
CSC
520 Computer Architecture (4) (Also
listed as CPE 520)
Comparative
study and design of multiprocessor, dataflow, RISC, high level language and
other new computer architectures. VLSI processor design techniques. 3 seminars,
1 laboratory. Prerequisite: CSC/CPE 315 and graduate standing, or consent of
instructor.
CSC
530 Languages and Translators (4)
Advanced
programming language and translator concepts. Language concepts to be covered
will be selected from current state-of-the-art languages and current issues in
language design. Compiler concepts will include retargetable code generation,
use of translator-writing systems, and error recovery. 4 seminars.
Prerequisite: CSC 430 and graduate standing, or consent of instructor.
CSC
540 Theory of Computing (4)
Advanced
topics in theoretical computer science from such areas as automata theory,
cellular automata theory, computational complexity, and program verification. 4
seminars. Prerequisite: CSC 445 and graduate standing, or consent of
instructor.
CSC
541 Numerical Methods (4)
Introduction
to advanced methods used in numerical analysis. Finite element methods for one
and two-dimensional problems. Study of transforms including the Fast Fourier
Transform and the Fast Hartley Transform. Review of the software supporting
these methods. 4 seminars. Prerequisite: CSC 342 and graduate standing, or
consent of instructor.
CSC
550 Operating Systems (4)
General
concepts of computer architecture and operating systems. Design features of
advanced computers, general time-sharing systems and schemes for dynamic memory
allocation, scheduling and protection. Dynamic linkage between subroutines.
Intercommunication between input/output and processors. 4 seminars.
Prerequisite: CSC/CPE 453 and graduate standing, or consent of instructor.
CSC
560 Database Systems (4)
Current
topics in database systems: distributed databases and transactions, nested and
long-running transactions, distributed concurrency control, semantic and
object-oriented data models, database systems for non-traditional applications:
engineering design databases, active, logic, temporal, multi-media, and
real-time databases. 4 seminars. Prerequisite: CSC/CPE 468 and graduate
standing, or consent of instructor.
CSC
564 Computer Networks: Research Topics
(4)
(Also listed as CPE 564)
Exploration
of advanced topics in emerging computer networking technologies; focus on
leading edge computer network research topics. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 464 and graduate standing, or consent of instructor.
CSC
569 Distributed Computing (4)
Principles
and practices in distributed computing: interprocess communications, group
communications, client-server model, distributed objects, message queue system,
distributed services, mobile agents, object space, Internet protocols.
Distributed algorithms: consensus protocols, global state protocols. Fault
tolerance: classification of faults, replication. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 103 and graduate standing, or consent of instructor.
CSC
570 Current Topics in Computer Science
(2–4)
Directed
group study of selected topics for graduate students. Topics will normally
consist of continuations of those in CSC 520, CSC 530, CSC 540, CSC 550, CSC
560 and CSC 580, and other topics as needed. Class Schedule will list topic selected. Topic credit limited to 12
units. 2 to 4 seminars. Prerequisite: Graduate standing and evidence of
satisfactory preparation in computer science.
CSC
580 Artificial Intelligence (4) (Also
listed as CPE 580)
Current
research in the field of artificial intelligence with emphasis on cooperative
agents, distributed agents, and decision making in complex, concurrent
environments. AI programming in a distributed environment. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 481 and graduate standing, or consent of
instructor.
CSC
583 Computer-Based Educational Systems
(3)
Comparison
of several authoring languages and systems as they affect the design of
multi-media computer-based educational systems. Emphasis on features for
special purposes such as education of the handicapped. 3 seminars.
Prerequisite: Graduate standing, or consent of instructor.
CSC
587 Computer Simulation I (4)
Principles
and organization of simulation software. Executive programs for interactive
control of continuous, discrete and combined system simulations. Specification,
design and development of simulation support packages. Structure and techniques
for development of real-time, queue management, graphics interface, and
validation components of simulation systems. 4 seminars. Prerequisite: STAT 211
or STAT 321; graduate standing or consent of instructor.
CSC
588 Computer Simulation II (4)
Advanced
topics in simulation. Simulation languages and systems, distributed simulation,
training systems. Management of simulation projects. Verification and
validation methodologies. 3 seminars, 1 laboratory. Prerequisite: CSC 587,
graduate standing or consent of instructor.
CSC
590 Seminar in Computer Science (3)
Current
problems and research in the field of computer science through discussions and
selected readings. Group study of selected advanced topics. 3 seminars.
Prerequisite: Graduate standing or consent of instructor.
CSC
594 Cooperative Education Experience
(6) (CR/NC)
Advanced
study analysis and part-time work experience in student's career field; current
innovations, practices, and problems in administration, supervision, and organization
of business, industry, and government. Must have demonstrated ability to do
independent work and research in career field. Credit/No Credit grading only.
Prerequisite: Graduate standing and consent of instructor.
CSC
595 Cooperative Education Experience
(12) (CR/NC)
Advanced
study analysis and full-time work experience in student's career field; current
innovations, practices, and problems in administration, supervision, and
organization of business, industry, and government. Must have demonstrated
ability to do independent work and research in career field. Credit/No Credit
grading only. Prerequisite: Graduate standing and consent of instructor.
CSC
599 Thesis/Project (2–3) (2–3)
Individual
research or activity under faculty supervision leading to an acceptable thesis
or project. Prerequisite: Graduate standing and consent of instructor.