|
|

Department of Mathematics and Computer Science
College of Science
Office: North Science 335
Phone: (510) 885-3414
Student Service Center: North Science 337
Phone: (510) 885-4011
|
|
|
|
|
|
Professors Emeriti
Edward L. Keller, Ph.D. University of Michigan
Christopher L. Morgan, Ph.D. Brandeis University
William R. Nico, Ph.D. University of California, Berkeley
Bruce E. Trumbo, Ph.D. University of Chicago
Professors
Edward A. Billard, Ph.D. University of California, San Diego
Kevin A. Brown, Ph.D. University of South Carolina
Kevin E. Callahan (Chair), Ph.D. University of California, San Diego
James S. Daley, Ph.D. University of California, Berkeley
Julie S. Glass, Ph.D. University of California, Santa Cruz
Kathleen Hann, Ph.D. University of California, Davis
Gary E. Lippman, Ph.D. University of California, Riverside
Michael K. Mahoney, Ph.D. University of California, Santa Barbara
Massoud Malek, Ph.D. University of Houston
Edna E. Reiter, Ph.D. University of Cincinnati
Istvan Simon, Ph.D. Stanford University
Stuart Smith, Ph.D. University of California, Berkeley
William Thibault, Ph.D. Georgia Institute of Technology
Donald L. Wolitzer, Ph.D. Northeastern University
Ytha Y. Yu, Ph.D. University of California, Berkeley
Associate Professors
Jagdish Bansiya, Ph.D. University of Alabama, Huntsville
Leann Christianson, Ph.D. University of South Carolina
Levent Ertaul, Ph.D. University of Sussex (United Kingdom)
Lynne L. Grewe, Ph.D. Purdue University
Hilary J. Holz, D.Sc. George Washington University
C. Matthew Johnson, Ph.D. College of William and Mary
Dan Jurca, Ph.D. Northwestern University
Chung-Hsing Ou Yang, Ph.D. University of California, Berkeley
Farzan Roohparvar, Ph.D. Iowa State University
David Yang, Ph.D. Columbia University
Assistant Professors
Roger W. Doering, Ph.D. University of California, Berkeley
Madhavi D. Gandhi, Ph.D. University of California, Davis
Julia Olkin, Ph.D. Rice University
Ellen Veomett, Ph.D. University of Michigan
Shirley Yap, Ph.D. University of Pennsylvania
Lecturers
Susan Benjamin, M.S. California State University, Hayward
Jack A. Carter III, Ph.D. University of Texas
Francis Conlan, Ph.D. University of California, Davis
Michael A. Contino, M.A. Villanova University
Dorothy E. Fujimura, M.S. University of Illinois
Philip D. Gonsalves, B.S. California State University, Hayward
Ching-Cheng Lee, Ph.D. University of London (England)
Denise Sargent-Natour, M.A. Wayne State University
Jean Simutis, Ph.D. University of California, Davis
Vincent Slivinsky, Ph.D. The Pennsylvania State University |
Computer Science Coordinator: William R. Nico
Please consult the 2010-2011 online catalog for any changes
that may occur.
|
|
|

The course prefix for the following courses is CS.
Mathematics courses offered by the Department of Mathematics and
Computer Science are fully described in the Mathematics section of this
catalog. (Note: In order to enroll in any baccalaureate-level
Mathematics or Computer Science course, students must satisfy the
Entry-Level Mathematics (ELM) requirement.)
|
|
1020
|
Introduction to Computers (4)
Computers, their use and place in modern society. Computer organization
and hardware, computer software. Introduction to use of the computer,
operating system commands, word processing, database management, other
applications, and computer programming. Internet and its use. Ethical
and societal issues. No prior computer experience necessary; course
recommended for students of any major who want to learn about computers
and how to use them. Prerequisite: Satisfaction of the Entry Level
Mathematics (ELM) requirement. Not open to students with credit for CIS
1270.
|
1160
|
Introduction to Computer Science and Programming
Methods (4)
An introduction to computers, problem solving, algorithms, and program
design. Use of University computing facilities. Programming done in
C++. Topics include control structures, arrays, functions, input and
output. Students with no computer experience are encouraged to take CS
1020 as preparation for this course. Prerequisite: MATH 1300 or
equivalent.
|
2020
|
Introduction to Web Design and Technology (2)
Technology and design of web sites, systems and services. Human factors
issues, computer-human interfaces design, web system design and
development and testing; evaluation processes. Website development
using multimedia, graphics, image, and animation tools. Topics from
e-commerce solutions and networking fundamentals. Prerequisite:
Satisfactory completion of ELM. Not open to students with credit for CS
352. Not for credit in computer science major.
|
2170
|
C Language Programming (2)
Programming in the C language, especially in a Unix environment. Not
open for credit to students with a previous course in C or C++
programming. Prerequisite: A previous course in programming.
|
2360
|
Programming Methods and Introduction to Software
Engineering (4)
A systematic approach to the design, construction, and management of
large computer programs, emphasizing programming style, documentation,
debugging techniques, and testing. Includes files, structured data
types, information hiding, pointers, and linked lists. Prerequisite:
CS 1160.
|
2430
|
Computer Organization and Assembly Language
Programming (4)
Functional organization of digital computers and programming in machine
and assembly language. Internal representation of data, binary
arithmetic, machine instructions, addressing modes, subroutine linkage,
macros. Introduction to assemblers, linkers, and loaders. Prerequisite:
An introductory programming course.
|
3120
|
Programming Language Concepts (4)
Survey and critical comparison of a variety of computer languages.
Issues include syntax, semantics, control structures, data
representation. Discussion of both design and implementation; of both
imperative and declarative languages. Prerequisite: CS 2360 and 2430.
|
3240
|
Data Structures and Algorithms (4)
Definition, design, implementation of abstract data structures,
including stacks, queues, generalized lists; implementation as
contiguous or linked structures. Structures include tables and hashing,
trees, graphs. Algorithms for manipulating structures, searching,
sorting; introduction to the analysis of these algorithms. Prerequisites:
MATH 2150, CS 2360, CS 2430.
|
3340
|
Introduction to Object-Oriented Programming and Design
(4)
Programming in an object-oriented language, using object-oriented
techniques and concepts. Classes, operator overloading, information
hiding, inheritance, and polymorphism. Memory management. Parameterized
classes. Exception handling. Object-oriented design of programs. Prerequisite:
CS 3240 and knowledge of C or C++.
|
3430
|
Computer Architecture (4)
Logical design of digital computers. Boolean algebra, combinational and
sequential circuits, computer arithmetic, memories, integrated
circuits, control processors, input/output. No electronics experience
needed. Prerequisite: MATH 2150, CS 2430.
|
3432
|
Digital Design Lab (4)
Design assembly and test of combinational and sequential circuits.
Digital systems design using computer-aided-design tools and
programmable logic devices. Prerequisite: CS 3430. Two hrs. lect.,
6 hrs. lab.
|
3434
|
Microprocessor Lab (4)
Microprocessor organization and operation; hardware/software
interaction; memory, serial, and parallel I/O port interfacing;
interrupt-handling. Prerequisite: CS 3430. Three hrs. lect., 3 hrs.
lab.
|
3520
|
Web Site Development (4)
Web servers and browsers. HTML, images, audio and video files, indexer,
forms, CGI scripts, Java programming, JavaScript. Prerequisite: CS
3240.
|
3560
|
Introduction to Systems Programming (4)
Introduction to systems programming in a modern environment.
Introduction to fundamental concepts of operating systems; analysis of
a particular operating system (organization, interfaces, system calls,
files, process control and communication, resource sharing). Shell and
C programming. Development tools. Prerequisite: CS 2360.
|
3590
|
Data Communications and Networking (4)
Fundamentals of data communications: media, transmission, encoding and
processing, interfacing, error detection and handling, link control,
multiplexing, circuit and packet switching. Introduction to network
architecture and topology: local and wide area networks. Prerequisites:
CS 3430 and knowledge of C or C++.
|
3750
|
Numerical Analysis I (4)
(See MATH 3750 for course description)
|
3752
|
Introduction to Digital Signal Processing (4)
Mathematical modeling of signals and systems. Continuous and discrete
signals, with applications to audio, images, video, communications, and
control. Frequency domain modeling and frequency response. Sampling of
continuous-time signals. A simulation-based laboratory is part of the
course. Prerequisites: MATH 1304, 2101; CS 1160. Cross-listed with
ENGR 3752. Three hrs. lect., 3 hrs. lab.
|
3860
|
Computer Music Programming (4)
Introduction to the concepts and software techniques of computer music.
Students write programs to produce sounds, process sounds, and organize
sounds into musical structures. Fundamentals of digital audio.
Synthesis techniques. Reverberation and sound spatialization.
Algorithmic composition. Computer languages for synthesis and scoring.
The MIDI standard. Prerequisites: MATH 1300 and CS 1160.
|
3898
|
Cooperative Education (1-4)
Supervised work experience in which student completes academic
assignments integrated with off-campus paid or volunteer activities. Prerequisites:
at least 2.0 GPA; departmental approval of activity; completion of
lower division Computer Science major requirements, and upper division
standing. A maximum of 4 units will be accepted toward the Computer
Science major. May be repeated for credit, for a maximum of 8 units.
CR/NC grading only.
|
4020
|
Computing and Social Responsibility (4)
Social impact and ethical aspects of computing: responsibility of
practicing professionals, effects on privacy, security, property rights
of individuals and institutions, etc. Topics include system
reliability, intellectual property, computer crime, attacks on computer
systems, and societal dependence on computers. Prerequisites: CS
3240, or consent of instructor.
|
4110
|
Compiler Design (4)
Design and construction of high-level language translators. Formal
language theory, parsing algorithms, interpreting, code generation,
optimization. Construction of a small compiler. Prerequisites: CS
3120, 3240.
|
4170
|
Theory of Automata (4)
Formal models of automata, language, and computability and their
relationships. Finite automata and regular languages. Push-down
automata and context-free languages. Turing machines, recursive
functions, algorithms and decidability. Prerequisites: MATH 2101,
2150, 2304. Cross-listed with MATH 4170.
|
4245
|
Analysis of Algorithms (4)
Design, analysis and implementation of algorithms. Methods of algorithm
design, including recursion, divide and conquer, dynamic programming,
backtracking. Time and space complexity analyses in the best, worst,
and average cases. NP-completeness; computationally hard problems.
Applications from several areas of Computer Science. Prerequisites:
MATH 2101, 2304, CS 3240. Cross-listed with MATH 4245.
|
4310
|
Software Engineering I (4)
Concepts and issues in the development of large software projects.
Systematic approaches to requirements, analysis, design,
implementation, testing, and maintenance of high-quality software. Prerequisite:
CS 3240.
|
4311
|
Software Engineering II (4)
Continuation of Software Engineering I with emphasis on the
object-oriented design to implementation stages of the life cycle.
Design methodologies including the Unified Modeling Language,
illustrated with example design patterns. Implementation in Java.
Topics include standards, documentation, instrumentation, testing. Prerequisites:
CS 3340, 4310.
|
4320
|
Software Testing and Quality Assurance (4)
Concepts and issues in the testing and quality control of large
software projects. Topics include white box, black box, unit,
integration, and validation testing; quality assurance through
planning, review, and use of software metrics. Prerequisite: CS 3240.
|
4330
|
Building Secure Software (4)
Security and safety analysis in software design and development.
Vulnerability detection and avoidance. Topics include authentication,
principle of least privilege, buffer overflows, race conditions,
time-of-check vs. time-of-use, trust management, access control, and
other security relevant issues. Prerequisite: CS 3240.
|
4430
|
Computer Architecture II (4)
Advanced computer organization and design. Topics chosen from among
RISC architectures, computer arithmetic, pipelining, cache memory and
parallel processors. Recommended: knowledge of C programming. Prerequisite:
CS 3430.
|
4432
|
VLSI Circuit Design (4)
Fundamental design techniques for VLSI (Very Large Scale Integrated)
circuits. Theory of implementing complex integrated circuits on a
microchip. Use of computer aided design tools. Prerequisites: CS
3430, 3432.
|
4525
|
Principles of Network Security (4)
Computer network security fundamentals. Cryptography (Symmetric key
algorithms and Public key algorithms). Authentication and
identification, message integrity techniques. Access control and key
management. Wireless security. Discussion of particular protocols,
e.g., IPSEC, TLS, PGP, S/MIME, etc. Prerequisite: CS 3590.
|
4526
|
Principles of Wireless, Mobile, Grid and Pervasive
Computing Security (4)
Comprehensive new topics in Wireless, Mobile, Grid and Pervasive
Computing which includes IEEE 802.11 Wireless Security, Security in
Mobile Telecom Networks (GPRS, UMTS), security in MANET, VANET, WSN,
Bluetooth, VoIP, Grid networks and Mobile Agents. Prerequisite: CS
4525.
|
4560
|
Operating Systems (4)
Principles of operating system design and implementation. Concurrent
processes, interprocess communication, job and process scheduling;
deadlock. Issues in memory management (virtual memory, segmentation,
paging) and auxiliary storage management (file systems, directory
structuring, protection mechanisms). Performance issues. Case studies. Prerequisites:
CS 3240 and CS 3430.
|
4590
|
Computer Networks (4)
Computer network analysis, design, and implementation. A detailed study
of the network, transport and application layers of the TCP/IP model.
Specific emphasis on protocols, services, design issues and
performance. Programming assignments using TCP/IP. Prerequisite: CS
3590.
|
4592
|
Network Operations and Administration (4)
Network operations, administration, and management. Management
Information Base (MIB). Standards including SNMP, CMIP, ASN-1. Network
management programming. Network Management of Ethernet and TCP/IP.
Survey and applications of existing network management systems. Prerequisite:
CS 3590.
|
4594
|
Broadband Networks and Communications (4)
Principles of broadband networks and communications. Telephone system
structure, signaling, services, and protocols. Circuit, packet and cell
switching. Broadband signaling and traffic management. Advanced switch
technology. Case studies. Prerequisite: CS 3590.
|
4596
|
Wireless and Mobile Networking (4)
Network protocols and mechanisms to support mobility, e.g., Mobile-IP,
M-RSVP, proxies. Issues including routing, tunneling, security, and
handoffs. Wireless communication standards including AMPS, IS-95, GSM,
PCS, and satellite standards. Underlying technologies including
multiplexing and coding. Prerequisite: CS 3590.
|
4660
|
Database Architecture (4)
Relational, network, and hierarchical data models. Data description and
data manipulation languages. Schemas, query processing, database system
architecture. Integrity, concurrency, and security techniques.
Distributed databases. Prerequisite: CS 3240.
|
4665
|
Database Operations and Administration (4)
Topics in the operation and administration of databases, including
database creation, account maintenance, data import and export, system
backup, and performance tuning. Hands-on experience administering an
Oracle database. Prerequisite: CS 4660.
|
4750
|
Numerical Analysis II (4)
(See MATH 4750 for course description)
|
4810
|
Artificial Intelligence (4)
"Intelligent" computer programs and models of human intelligence. Game
playing, robotics, computer vision, understanding natural language,
knowledge engineering, computer learning. Prerequisite: CS 3240.
|
4835
|
Human-Computer Interaction (4)
Human-centered software development and evaluation, human performance
models, accommodating human diversity, principles of good design and
good designers, introduction to usability testing. HCI aspects of
multimedia systems, information systems, and collaboration and
communication. Course work includes programming projects and fieldwork.
Prerequisites: CS 3240 and either CS 3120 or 3340; or
consent of instructor. Cross-listed with ENGR/PSYC 4835.
|
4840
|
Computer Graphics (4)
Survey of computer graphics hardware, algorithms, techniques, and
standards. Software development on color-mapped raster-scan computer
graphics system. Prerequisites: MATH 2101, 2304 and CS 3240, 3430.
|
4845
|
Fuzzy Sets and Fuzzy Logic (4)
Fuzzy set theory, fuzzy logic, approximate reasoning and relations
between fuzzy set theory, probability theory, belief theory, and
possibility theory. Fuzzy aggregation operators, fuzzy relations, and
fuzzy clustering. Class project options: decision making, pattern
recognition, databases, control, data mining. Prerequisites: CS
1160, MATH 2150, and course in probability or statistics; or permission
of instructor. Cross-listed with ENGR 4845 and MATH 4845.
|
4848
|
Computer Animation Programming (4)
Principles and techniques used to produce software for
computer-generated animations. Survey of traditional animation
techniques. Issues in 3-D viewing, rendering, and modeling. Motion
specification and interpolation. Physically-based and behavioral
modeling. Prerequisite: CS 4840.
|
4849
|
Game Programming (4)
Survey of technologies for programming computer games. Topics include:
mathematics, data structures, graphics (rendering, animation,
cinematography), game logic, scripting, networking and server design,
audio, artificial intelligence. Prerequisites: CS 4810 or CS 4840
or equivalent experience.
|
4865
|
Graphical User Interface Programming Using a Rapid
Application Development Tool (4)
Event-driven programming in a windowed Graphical User Interface
environment using a Rapid Application Development tool set. Pull-down
menus, tool bars and other standard control objects, pointing devices,
object hierarchy, standard dialogs, connecting to databases, state
table programming. Prerequisite: CS 3340.
|
4900
|
Independent Study (1-5) |
|