CSC-COMPUTER
SCIENCE –
2005-07 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. Credit not available for students who have taken CSC/CPE
108. 3 lectures, 1 laboratory. Prerequisite: MATH 118 (or equivalent) with a
grade of C- or better, and basic computer literacy (CSC 100 or CSC 232 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. Credit not available for
students who have taken CSC/CPE 108. 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. Corequisite: CSC 141
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 108 Accelerated Introduction to Computer Science
(4)
(Also listed as CPE 108)
Accelerated introduction to
basic principles of algorithmic and object-oriented problem solving and
programming. Introduction to programming language concepts including control
structures, data types, classes, and inheritance. Program design principles.
Use and implementation of algorithms (searching, sorting, recursion) and data
structures (lists, stacks, and queues). Intended for students with experience
in algorithmic problem solving and using basic control structures and data
types in a modern programming language (CSC/CPE 101), but who are not ready for
CSC/CPE 102. Credit not available for students who have taken CSC/CPE 102. 3
lectures, 1 laboratory. Prerequisite: Math 118 (or equivalent) with a grade of
C- or better, significant experience in computer programming, and consent of
instructor. Corequisite: CSC 141.
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 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 application 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 231 Programming for Engineering Students (2)
Programming techniques and
procedures with applications to engineering problems. 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 232 Computer Programming for Scientists and
Engineers (3) (formerly CSC 111)
Computer programming, with
an emphasis on procedural programming, taught using a language hosted by
applications commonly used in science and engineering. Credit not allowed for
CSC, CPE or Software Engineering majors. 2 lectures, 1 activity. Prerequisite:
MATH 118 or equivalent.
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 235 Fundamentals of Computer Science for
Scientists and Engineers I (4) (Also listed as CPE 235)
Introduction to the
fundamentals of computer programming with an emphasis on mathematical,
scientific and engineering applications: principles of algorithmic problem
solving and procedural programming using a modern programming language, data
types, elementary data structures, input/output and control structures. Not a
substitute for CSC/CPE 101 for CSC/CPE majors or minors. 3 lectures, 1 laboratory.
Prerequisite: MATH 141 or MATH 161 with a grade of C- or better, or consent of
instructor.
CSC 236 Fundamentals of Computer Science for
Scientists and Engineers II (4) (Also listed as CPE 236)
Further study of computer
program development with an emphasis on mathematical, scientific and
engineering applications. Introduction to more complicated data types and
structures. Practice of more complicated techniques of procedural programming.
Introduction to the principles of object-oriented programming using a modern
programming language. Detailed discussion of lists and classic list algorithms,
algorithm analysis, multidimensional arrays, records, dynamic data structures,
file input/output, classes. Not a substitute for CSC/CPE 102 for CSC/CPE majors
or minors. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 235 with a grade of
C- or better, or consent of instructor.
CSC 237 Introduction to Computer Science with
Applications I (4)
(Also listed as CPE 237)
Introduction to the
fundamentals of computer science using a modern programming language. Includes
principles of algorithmic problem solving, data types, elementary data
structures, input/output, control structures, classes and methods. Not a
substitute for CSC/CPE 101 for CSC/CPE majors or minors. 3 lectures, 1
laboratory. Prerequisite: MATH 221 or STAT 252 with a grade of C- or better, or
consent of instructor.
CSC 238 Introduction to Computer Science with
Applications II (4)
(Also listed as CPE 238)
Continuation of CSC 237.
Intermediate study of computer program development using a modern object
oriented (OO) programming language. Further study of OO principles including
inheritance and interfaces. Introduction to implementation of Graphical User
Interfaces, multi-media, streams, database connection, and scripting. Not a
substitute for CSC 102 or for CSC/CPE majors or minors. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 237 with a grade of C- or better.
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 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) (Also
listed as CPE 300)
The responsibilities of the
computer science professional. The ethics of science and the IEEE/ACM Software
Engineering Code of Ethics. Quality tradeoffs, software system safety, intellectual
property, history of computing and the social implications of computers in the
modern world. Applications to ethical dilemmas in computing. Technical
presentation methods and practice. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 307 or CSC/CPE 309.
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. 4 lectures. Prerequisite:
Completion of GE Area B, and junior standing.
CSC 303 Teaching Computer Science (2)
Practical coverage of
educational techniques appropriate for tutoring in CSC/CPE undergraduate
courses, including Socratic methods for tutoring of technical topics, design of
test questions and grading rubrics, and lecture presentation. Intended for
CSC/CPE/SE students interested in tutoring, grading, or a career in teaching
computer science. 1 lecture, 1 laboratory. Prerequisite: CSC/CPE 103 or
equivalent. Not available for technical elective credit.
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 353 or
CSC/CPE 357.
CSC 307 Introduction to Software Engineering (4)
(Also listed as CPE 307)
Requirements,
specification, design, implementation, testing and verification of large
software systems. Study and use of the software process and software
engineering methodologies; working in project teams. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 103 with a grade of C- or better, and CSC/CPE 357. Not
open to students with credit in CSC/CPE 308.
CSC 308 Software Engineering I (4) (Also listed as
CPE 308)
(formerly CSC 205)
Principles for engineering
requirements analysis and design of large complex software systems. Software
process models. Methods of project planning, tracking, documentation,
communication, and quality assurance. Analysis of engineering tradeoffs. Group
laboratory project. Technical oral and written presentations. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 103 with a grade of C- or better, and CSC/CPE
357 or CSC/CPE 353.
CSC 309 Software Engineering II (4) (Also listed as
CPE 309)
(formerly CSC 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 308.
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. 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 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 and MATH 142 and either STAT 312
or STAT 321.
CSC 353 Systems Programming for Software Engineers
(4)
(Also listed as CPE 353)
Assembly language and C
programming; 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 357 Systems Programming (4) (Also listed as CPE
357)
(formerly CSC 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, and CPE 229.
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 307 or
CSC/CPE 309; 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 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 409 Current Topics in Software Engineering (4)
(Also listed as CPE 409)
Selected topics in software
engineering. Topics may include program generation, quality assurance, formal
methods, software metrics, design methods, testing, or software development
processes. Class Schedule will list
topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 309 or CSC/CPE 307.
CSC 430 Programming Languages I (4) (Also listed as CPE
430)
Theory of formal languages
and automata. Regular languages, finite automata, and lexical analysis.
Context-free languages, pushdown automata, and syntactic analysis. Type
checking and static semantics. Parsing: top-down (LL) and bottom-up (LR). 3 lectures,
1 laboratory. Prerequisite: CSC 349 and CSC/CPE 357.
CSC 431 Programming Languages II (4) (Also listed as
CPE 431)
Language principles and
design issues: bindings, conversion, parameter passing, and dynamic semantics.
Language implementation: intermediate code representation, memory management,
code optimization, and code generation. Functional programming languages. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 430.
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 Computation (4)
Turing
machines as a universal model of computation. Theory of decidability and
computability. Recursive functions and their role in computability.
NP-completeness. 4 lectures. Prerequisite: CSC/CPE 141 and CSC/CPE 430.
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 449 Current Topics in Algorithms (4) (Also listed
as CPE 449)
Selected aspects of the
verification, analysis and design of algorithms. Class Schedule will list topic selected. Total credit limited to 8
units. 3 lectures, 1 laboratory. Prerequisite: CSC 349.
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 353 or both CSC/CPE 315, CSC/CPE 357.
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 456 Introduction to Computer Security (4)
(Also listed as CPE 456)
Survey of topics in
computer system and network security, including protection, access control,
distributed access control, operating system security, applied cryptography,
network security, firewalls, secure coding practices, and case studies from
real-world systems. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 357 and CSC
300.
CSC 458 Current Topics in Computer Systems (4)
(Also listed as CPE 458)
Selected aspects of design,
implementation and analysis of networks, advanced operating and distributed
systems. Topics may include process management, virtual memory, process
communication, context switching, file system designs, persistent objects,
process and data migration, load balancing, security and networks. Class Schedule will list topic selected.
Total credit limited to 8 units. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 453.
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: STAT 312 or STAT 321 or STAT 350; CSC/CPE 357; Software
Engineering majors and graduate students may substitute CSC/CPE 353 for CSC/CPE
357.
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 353 or CSC/CPE 357.
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 476 Real-Time 3D Computer Graphics Software (4)
(Also listed as CPE 476)
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 478 Current Topics in Computer Graphics (4)
(Also listed as CPE 478)
Selected aspects of the
design, implementation and analysis of computer graphics. Topics may include
rendering, modeling, visualization, animation, virtual reality, computer
vision, multimedia, and perception issues. Class
Schedule will list topic selected. Total credit limited to 8 units. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 471.
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 483 Current Topics in Human-Computer Interaction
(4)
(Also listed as CPE 483)
Selected aspects of the
field of human-computer interaction. Topics may include dynamic information
visualization, universal access, social impact of technology usage, educational
technology, human cognition and performance studies, and extended usability
evaluation techniques. Class Schedule
will list topic selected. Total credit limited to 8 units. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 484.
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 307 or CSC/CPE 308.
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 489 Current Topics in Artificial Intelligence (4)
(Also listed as CPE 489)
Selected aspects of the
design, implementation and analysis of advanced systems and concepts in the
area of artificial intelligence. Topics may include knowledge representation,
reasoning, learning, or planning, and specific techniques like intelligent
agents, genetic algorithms, semantic web, or robotics. Class Schedule will list topic selected. Total credit limited to 8
units. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 480.
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 Senior Project Design Laboratory I (2)
Selection and completion of
a project by individuals or team which is typical of problems which graduates
must solve in their fields of employment. Project may include students from other
disciplines. Formulation of outline, literature review, and project schedule. 2
laboratories. Prerequisite: CSC/CPE 307 or CSC/CPE 309 and consent of
instructor.
CSC 492 Senior Project Design Laboratory II (3)
Selection and completion of
a project by individuals or team which is typical of problems which graduates
must solve in their fields of employment. Project may include students from
other disciplines. Project results are presented in a formal report. 3
laboratories. Prerequisite: CSC 491 and consent of instructor.
CSC 493 Cooperative Education Experience (2) (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. Total credit limited to 6 units.
Prerequisite: Sophomore standing and consent of instructor.
CSC 494 Cooperative Education Experience (6) (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. Total credit limited to 18 units.
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. A more fully developed formal report and
evaluation by work supervisor required. Credit/No Credit grading only. Total
credit limited to 24 units. 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
307 or CSC/CPE 308 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 568 Distributed Systems (4)
Advanced topics in
distributed systems with emphasis on recent and emerging distributed computing
paradigms, fault tolerance, and distributed algorithms. 4 seminars.
Prerequisite: CSC/CPE 369 or CSC/CPE 569 and graduate standing, or consent of
instructor.
CSC 569 Distributed Computing (4) (Also listed as CPE
569)
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. Not open to students with credit in
CSC/CPE 369 or CSC/CPE 469. 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 581 Computer Support for Knowledge Management (4)
(Also listed as CPE 581)
Use methods and techniques
that computer-based systems can provide to make the management of knowledge and
information in digital form easier for the user. Emphasis on support for
knowledge-intensive activities performed by users. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 481.
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 593
Cooperative Education Experience (2) (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 594 Cooperative Education Experience (6) (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 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. A fully-developed formal report and evaluation by
work supervisor required. 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.