Computer Science Lower and Upper Division Courses

Faculty | Scope and Objectives | Computer Science and Engineering B.S.
Computer Science B.S. | Graduate Study | Fields of Study | Facilities
Faculty Areas of Thesis Guidance
Lower Division Courses | Upper Division Courses | Graduate Courses

Lower Division Courses

2. Great Ideas in Computer Science. (4)

Lecture, four hours; outside study, eight hours. Broad coverage for liberal arts and social sciences students of computer science theory, technology, and implications, including artificial and neural machine intelligence, computability limits, virtual reality, cellular automata, artificial life, programming languages survey, and philosophical and societal implications. P/NP or letter grading. Mr. Dyer (Sp)

10F. Introduction to Programming/FORTRAN. (4)

Lecture, four hours; discussion, two hours. Open to Mathematics and Computer Science majors; open to graduate students on S/U grading basis only. Description and use of FORTRAN programming language. Selected topics in programming techniques. Programming and running of several problems. Letter grading. Mr. Gerla

19. Fiat Lux Freshman Seminars. (1)

Seminar, one hour. Discussion of and critical thinking about topics of current intellectual importance, taught by faculty members in their areas of expertise and illuminating many paths of discovery at UCLA. P/NP grading.

31. Introduction to Computer Science I. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Limited to Computer Science and Electrical Engineering majors. Introduction to computer science via theory, applications, and programming. Basic data types, operators and control structures. Input/output. Procedural and data abstraction. Introduction to object-oriented software development. Functions, recursion. Arrays, strings, pointers. Abstract data types, object-oriented programming. Examples and exercises from computer science theory and applications. Letter grading. Mr. Cong (F,W)

32. Introduction to Computer Science II. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisite: course 31. Limited to Computer Science and Electrical Engineering majors. Object-oriented software development. Abstract data type definition and use. Overloading, inheritance, polymorphism. Object-oriented view of data structures: stacks, queues, lists. Algorithm analysis. Trees, graphs, and associated algorithms. Searching and sorting. Case studies and exercises from computer science applications. Letter grading. Mr. Koutsoupias (W,Sp)

33. Introduction to Computer Organization. (5)

Lecture, four hours; discussion, two hours; outside study, nine hours. Enforced requisite: course 32. Limited to Computer Science and Electrical Engineering majors. Introductory course on computer architecture, assembly language, and operating systems fundamentals. Number systems, machine language, and assembly language. Procedure calls, stacks, interrupts, and traps. Assemblers, linkers, and loaders. Operating systems concepts: processes and process management, input/output (I/O) programming, memory management, file systems. Letter grading. Mr. Potkonjak (F,Sp)

M51A. Logic Design of Digital Systems. (4)

(Same as Electrical Engineering M16.) Lecture, four hours; discussion, two hours; outside study, six hours. Requisite: Physics 1C. Introduction to digital systems. Specification and implementation of combinational and sequential systems. Standard logic modules and programmable logic arrays. Specification and implementation of algorithmic systems: data and control sections. Number systems and arithmetic algorithms. Error control codes for digital information. Letter grading. Mr. Ercegovac (F,W,Sp)

Upper Division Courses

111. Operating Systems Principles. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Requisites: courses 32, 33. Introduction to design and performance evaluations of modern operating systems. Mapping and binding of addresses. Organization of multiprogramming and multiprocessing systems; interrupts, process model, and interlocks. Resource allocation models and problem of deadlocks. Scheduling, synchronization. Memory management, virtual memory. input/output (I/O) control, file systems. Letter grading. Mr. Muntz (W,Sp)

112. Computer System Modeling Fundamentals. (4)

Lecture, four hours; outside study, eight hours. Requisite: Statistics 110A. Designed for juniors/seniors. Basic tools necessary for performance evaluation and design of distributed computer systems, including such topics as combinatorics, generating functions, probability theory, transforms, Markov chains, baby queueing theory. Presentation of this set of tools in a fashion that is rich with examples from computer systems field. Letter grading. Mr. Gafni (F,Sp)

117. Computer Networks: Physical Layer. (6)

Lecture, four hours; discussion, four hours; outside study, 10 hours. Not open to students with credit for course M171L. Introduction to fundamental data communication concepts underlying and supporting modern networks, with focus on physical and media access layers of network protocol stack. Systems include high-speed LANs (e.g., fast and giga Ethernet), optical DWDM (dense wavelength division multiplexing), time division SONET networks, wireless LANs (IEEE802.11), and ad hoc wireless and personal area networks (e.g., Bluetooth). Experimental laboratory sessions included. Letter grading. Mr. Gerla (W)

118. Computer Network Fundamentals. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses 32, 33. Recommended: course 111. Designed for juniors/seniors. Investigation of functions required to operate computer communications networks. Development of methodology for implementing these functions in procedures called protocols. Organization around ISO-OSI seven-layer architecture, with review of each layer. Specific functions defined and available alternatives studied. Presentation of several applications and case studies based on existing public and private networks. Letter grading. Mr. Gerla (F,Sp)

130. Software Engineering. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Requisite: course 32. Structured programming, program specification, program proving, modularity, abstract data types, composite design, software tools, software control systems, program testing, team programming. Letter grading. Mr. Cardenas, Mr. Chu (W)

131. Programming Languages. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Requisites: courses 32, 33. Study, comparison, and evaluation of alternative strategies for language specification, data description, data control, program modularity, instruction sequencing, and language implementations. Use of a few languages selected from FORTRAN 77, ADA, SNOBOL 14, LISP, MODULA 2, and PROLOG to illustrate particular implementations of some of above features. Letter grading. Mr. Bagrodia (F,W)

132. Compiler Construction. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses 32, 131, 181. Compiler structure; lexical and syntactic analysis; semantic analysis and code generation; theory of parsing. Letter grading. Mr. Darwiche (W)

133. Parallel and Distributed Computing. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses 111 (may be taken concurrently), 131. Distributed memory and shared memory parallel architectures; asynchronous parallel languages: MPI, Maisie; primitives for parallel computation: specification of parallelism, interprocess communication and synchronization; design of parallel programs for scientific computation and distributed systems. Letter grading. Mr. Bagrodia (W)

143. Database Systems. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Requisite: course 32. Information systems and database systems in enterprises. File organization and secondary storage structures. Relational model and relational database systems. Network, hierarchical, and other models. Query languages. Database design principles. Transactions, concurrency, and recovery. Integrity and authorization. Letter grading. Mr. Cardenas, Mr. Zaniolo (F,Sp)

M151B. Computer Systems Architecture. (4)

(Same as Electrical Engineering M116C.) Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses 33, and M51A or Electrical Engineering M16. Recommended: courses 111, and M152A or Electrical Engineering M116L. Computer system organization and design, implementation of CPU datapath and control, instruction set design, memory hierarchy (caches, main memory, virtual memory) organization and management, input/output subsystems (bus structures, interrupts, DMA), performance evaluation, pipelined processors. Letter grading. Mr. Cong, Mr. Rennels, Mr. Tamir (F,W,Sp)

151C. Design of Digital Systems. (4)

Lecture, four hours; discussion, two hours. Requisites: courses M51A, M151B, M152A. Design of complex digital systems using hierarchal approaches and regular structures. Combinational, sequential, and algorithmic systems. Microprogramming and firmware engineering. Cost/performance measures and technology constraints. Use of design tools. Design project. Letter grading. Mr. Ercegovac (W, odd years)

M152A. Introductory Digital Design Laboratory. (2)

(Same as Electrical Engineering M116L.) Laboratory, four hours; outside study, two hours. Requisite: course M51A or Electrical Engineering M16. Hands-on design, implementation, and debugging of digital logic circuits, use of computer-aided design tools for schematic capture and simulation, implementation of complex circuits using programmed array logic, design projects. Letter grading. Mr. Rennels (F,W,Sp)

M152B. Digital Design Project Laboratory. (4)

(Same as Electrical Engineering M116D.) Laboratory, four hours; discussion, two hours; outside study, six hours. Requisite: course M151B or Electrical Engineering M116C. Design and implementation of complex digital subsystems using field-programmable gate arrays (e.g., processors, special-purpose processors, device controllers, and input/output interfaces). Students work in teams to develop and implement designs and to document and give oral presentations of their work. Letter grading. Mr. Rennels, Mr. Tamir (F,W,Sp)

161. Fundamentals of Artificial Intelligence. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Requisite: course 32. Introduction to fundamental problem solving and knowledge representation paradigms of artificial intelligence. Introduction to LISP with regular programming assignments. State-space and problem reduction methods, brute-force and heuristic search, planning techniques, two-player games. Knowledge structures including predicate logic, production systems, semantic nets and primitives, frames, scripts. Special topics in natural language processing, expert systems, vision, and parallel architectures. Letter grading. Mr. Korf (F,Sp)

163. Introduction to Natural Language Processing. (4)

Lecture, four hours; laboratory, two hours. Requisite: course 130 or 131. Role of syntax, semantics, and pragmatics in human language processing by computers. Natural language generators and parsers, inference, and conceptual analysis. Modeling conceptual processes and representing semantic knowledge by means of computer problems. Letter grading. Mr. Dyer (W)

170A. Mathematical Modeling and Methods for Computer Science. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Requisite: Mathematics 33B. Introduction to methods for modeling and simulation using interactive computing environments. Extensive coverage of methods for numeric and symbolic computation, matrix algebra, statistics, floating point, optimization, and spectral analysis. Emphasis on applications in simulation of physical systems. Letter grading. Mr. Parker (Sp)

171. Real-Time Computer Systems. (4)

Lecture, four hours; outside study, eight hours. Designed for seniors. Survey of fundamentals, with emphasis on hardware and systems concepts. Adapting digital computers to interfaces, including multiprogramming, bus structure, interrupt, and time-sharing considerations. Digital communication, remote consoles, sampling, quantizing, multiplexing, analog-digital conversion, and data reconstruction. Letter grading. Mr. Carlyle, Mr. Karplus (F, Sp)

M171L. Data Communication Systems Laboratory. (2 to 4)

(Formerly numbered 171L.) (Same as Electrical Engineering M171L.) Laboratory, four to eight hours; outside study, two to four hours. Recommended preparation: courses M152A, 171. Limited to seniors. Interpretation of analog-signaling aspects of digital systems and data communications through experience in using contemporary test instruments to generate and display signals in relevant laboratory setups. Use of oscilloscopes, pulse and function generators, baseband spectrum analyzers, desktop computers, terminals, modems, PCs, and workstations in experiments on pulse transmission impairments, waveforms and their spectra, modem and terminal characteristics, and interfaces. Letter grading. Mr. Gerla (F,W,Sp)

174. Elements of Computer Graphics. (4)

Lecture, two hours; laboratory, two hours; outside study, eight hours. Requisite: course 32. Hardware and software elements of computer graphics systems. Graphics languages. Graphic workstations and specialized input/output (I/O) devices. Design and development of interactive graphics programs. Letter grading. Mr. Muntz (W,Sp)

180. Introduction to Algorithms and Complexity. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: course 32, and Mathematics 61 or 113. Designed for junior/senior Computer Science majors. Introduction to design and analysis of algorithms. Design techniques: divide-and-conquer, greedy method, dynamic programming; selection of prototypical algorithms; choice of data structures and representations; complexity measures: time, space, upper, lower bounds, asymptotic complexity; NP-completeness. Letter grading. Ms. Greibach (F,W,Sp)

181. Introduction to Formal Languages and Automata Theory. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: course 32, and Mathematics 61 or 113. Designed for junior/senior Computer Science majors. Grammars, automata, and languages. Finite-state languages and finite-state automata. Context-free languages and pushdown story automata. Unrestricted rewriting systems, recursively enumerable and recursive languages, and Turing machines. Closure properties, pumping lemmas, and decision algorithms. Introduction to computability. Letter grading. Ms. Greibach (F,W,Sp)

190. Computer Science Design Project. (4)

Lecture, four hours; outside study, eight hours. Preparation: adequate background in hardware, software, and computer applications. Limited to senior Computer Science and Engineering majors and senior Computer Science majors. Basic concepts of design of projects in computer science, including interpretation of specifications, subtasking, design of experiments, data analysis and performance evaluation, cost engineering, reliability, and societal and safety considerations. Letter grading. Mr. Klinger (Sp)

M196A. Introduction to Cybernetics, Biomodeling, and Biomedical Computing. (2)

(Formerly numbered 196A.) (Same as Biomedical Engineering M196A and Cybernetics M196A.) Lecture, two hours. Requisites: Mathematics 31A, 31B, Program in Computing 10A. Strongly recommended for students with potential interest in biomedical engineering/biocomputing fields or in Cybernetics as a major. Introduction and survey of topics in cybernetics, biomodeling, biocomputing, and related bioengineering disciplines. Lectures presented by faculty currently performing research in one of the areas; some sessions include laboratory tours. P/NP grading. Mr. DiStefano (F)

M196B. Computational Systems Biology: Modeling and Simulation of Biological Systems. (5)

(Same as Biomedical Engineering M196B, Cybernetics M196B, and Medicine M196B.) Lecture, four hours; discussion, one hour; laboratory, two hours. Requisite: Electrical Engineering 102 or Mathematics 115A. Introduction to dynamic system modeling, compartmental modeling, and computer simulation methods for studying biomedical systems. Basics of numerical simulation algorithms, translating biomodeling goals and data into mathematic models and implementing them for simulation and analysis. Modeling software exploited for class assignments in PC laboratory. Letter grading. Mr. DiStefano (Sp)

CM196L. Biomedical Systems/Biocybernetics Research Laboratory. (2 to 4)

(Same as Biomedical Engineering CM196L and Cybernetics M196L.) Lecture, two hours; laboratory, two hours. Requisite: course M196B. Special laboratory techniques and experience in biocybernetics research. Laboratory instruments, their use, design, and/or modification for research in life sciences. Special research hardware, firmware, software. Use of simulation in experimental laboratory. Laboratory automation and safety. Comprehensive experiment design. Radioactive isotopes and kinetic studies. Experimental animals, controls. Concurrently scheduled with course CM296L. Letter grading. Mr. Distefano

198. Special Studies in Computer Science. (4)

Lecture, four hours; outside study, eight hours. Study of selected topics in computer science taught by resident and visiting faculty members. Letter grading.

199. Special Studies. (2 to 8)

Tutorial, to be arranged. Limited to juniors/seniors. Individual investigation of selected topic to be arranged with a faculty member. Enrollment request forms available in department office. Occasional field trips may be arranged. May be repeated for credit. Letter grading. (F,W,Sp)