|
 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 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 Kevin A. Brown, Ph.D. University of South Carolina Leann Christianson, Ph.D. University of South Carolina 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 Farzan Roohparvar, Ph.D. Iowa State University David Yang, Ph.D. Columbia University Assistant Professors Roger W. Doering, Ph.D. University of California, Berkeley Levent Ertaul, Ph.D. University of Sussex (United Kingdom) Madhavi D. Gandhi, Ph.D. University of California, Davis Julia Olkin, Ph.D. Rice University Chung-Hsing OuYang, Ph.D. University of California, Berkeley 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 2009-2010 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. Prerequisite: Satisfaction of the Entry Level Mathematics (ELM) requirement. No prior computer experience necessary; course recommended for students of any major who want to learn about computers and how to use them. Not open to those 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. Prerequisite: MATH 1300 or equivalent; students with no computer experience are encouraged to take CS 1020 as preparation for this course. |
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. Satisfactory completion of ELM. Not open to students with credit for CS 3520; not for computer science major credit. |
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. Cross-listed with ENGR 3752. Prerequisites: MATH 1304, 2101; CS 1160. 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. May be repeated for up to 8 units. A maximum of 4 units will be accepted toward the Computer Science major. CR/NC grading only. Prerequisites: at least 2.0 GPA; departmental approval of activity; completion of lower division Computer Science major requirements, and upper division standing. |
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. Prerequisite: CS 3430; recommended: knowledge of C programming. |
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. |
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. Cross-listed with ENGR/PSYC 4835. Prerequisites: CS 3240 and either CS 3120 or 3340; or consent of instructor. |
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. Cross-listed with ENGR 4845 and MATH 4845. Prerequisites: CS 1160, MATH 2150, and course in probability or statistics; or permission of instructor. |
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. |
4900 | Independent Study (1-5) |
|