COMPUTER SCIENCE (C SC)
127a . Introduction to Computer Science (4) Programming in a
high-level language such as C++. Emphasis on program design issues. Programming topics:
basic control structures, primitive data types, arrays, structures, simple recursion. 3R,
1L.
127b . Introduction to Computer Science (4) Continuation of 127a,
programming in high-level language such as C++. Continued emphasis on program design.
Programming topics: advanced recursion, linked lists, binary trees, hashing. 3R, 1L. P,
127a.
227. Program Design and Development (4) Programming using a
language such as C. Several medium-sized projects will be required, with emphasis on
program design and implementation techniques. P, 115, MATH 124 or 125a.
237. Machine Organization (4) Introduction to digital computers,
elementary hardware concepts, machine operations and instructions, assembly language
concepts, programming in assembly language. CR, 227. Delete course.
Fall '98
318. Unix Tools (1) Unix programming tools: pipes, filters,
editors, compilers, debuggers, Makefiles, source-code control, performance monitoring and
shell programming. P 127b or 227.
330. Object-Oriented Programming and Design (3) Fundamentals of
object-oriented programming, design principles, and project management. Includes
inheritence, polymophism, frameworks and patterns. P, 127b or 227. CR, 318.
340. Foundations of Computer Systems (4) Basic machine
organization, assembly code, memory allocation, linking, interrupts, traps, system calls
and virtual memory. Introduction to "C". P 127b or 227.
342. Data Structures and Algorithms (3) Mathematical
preliminaries; fundamental data structures and associated algorithms, implementations and
applications: stacks, queues, trees, graphs, sorting, and searching. P, 227, MATH 243 or
MATH 362. (Identical with MIS 342).
344. Foundations of Computing (3) Fundamental methods for
understanding, developing, verifying and analyzing algorithms: predicate logic, induction,
program verification, recurrences, discrete probability, regular expressions. P, 227; MATH
243. (Identical with MATH 344). Change prerequisites to: P, MATH
243. Fall '98
372. Comparative Programming Languages (3) Introduction to several
major high-level programming languages and their characteristics. Programming projects are
required in at least three languages. P, 237 or MIS 307 or ECE 274, 342. (Identical with
MIS 372). Change prerequisites to: P, 127b or 227.
402. Mathematical Logic (3) (Identical with MATH 402, which is
home). May be convened with 502.
409A -
409B -. Advanced Symbolic Logic (3) (Identical with PHIL
409a-409b, which is home). May be convened with 509a-509b.
411b . Symbolic Logic (3) (Identical with PHIL 411b, which is
home).
421. * Advanced Systems Modeling and Simulation (3) (Identical
with MIS 421, which is home).
422. Principles of Concurrent Programming (3) Fundamental concepts
of concurrent programming, synchronization mechanisms based on shared variables and
message passing, systematic development of correct programs, paradigms for parallel and
distributed programming. P, 342, 344, 372. Change prerequisites to:
P, 127b or 227, 318, 340, 342, and MATH 243. Fall '98
425. Principles of Computer Networking (3) Theory and practice of
computer networks, emphasizing the principles underlying the design of network software
and the role of the communications system in distributed computing. Topics include
routing, flow, and congestion control, multicast, and data representation, and RPC. P,
452. May be convened with 525. Change prerequisites to: P, 127b or
227, 318, and 340. Fall '98
430. Case Studies in Software Design (3) Techniques and tools for
program design and implementation, especially of large programs. Specification,
abstraction, verification, maintenance, performance tuning. Includes substantial
programming. P, 237 or ECE 274; 342. May be convened with 530. Delete
course. Fall '98.
433. Computer Graphics (3) Theory and practice of computer
graphics: 2D and 3D transformations, clipping, and viewing, hierarchical modeling,
computer graphics hardware, raster graphics, input models, interaction techniques, and
applications. P, 344, 430. May be convened with 533. Change
prerequisites to: P, 330, 342, 344, and MATH 215. Fall '98
438. Computational Linguistics (3) (Identical with LING 438, which
is home). May be convened with 538.
443. Theory of Graphs and Networks (3) (Identical with MATH 443,
which is home). May be convened with 543.
445. Algorithms (3) Mathematical preliminaries; using induction to
design algorithms; introduction to analysis of algorithms; algorithms involving sequences
and sets; graph algorithms; advanced topics. P, 342, 344, MATH 362. Writing-Emphasis
Course.** Change prerequisites to: P, 342, 344. Fall '98
449. Continuous-System Modeling (3) (Identical with ECE 449). May
be convened with 549.
450. String and List Processing (3) Data representation, pattern
matching, programming techniques; applications. P, 344, 372, 430. May be convened with
550.
452. Principles of Operating Systems (4) Concepts of modern
operating systems; concurrent processes; process synchronization and communication;
resource allocation; kernels; deadlock; memory management; file systems. P, 430. Change prerequisites to: P, 127b or 227, 318, and 340. Fall '98
453. Compilers and Systems Software (4) Basic concepts of
compilation and related systems software. Topics include lexical analysis, top-down
parsing, semantic analysis, code generation; assemblers, loaders, linkers; debuggers. P,
344, 372, 430. Change prerequisites to: P, 127b or 227, 318, 330,
340, and MATH 243. Fall '98
460. Database Systems (3) Functions of a database system. Data
modeling and logical database design. Query languages and query optimization. Efficient
data storage and access. Concurrency control and recovery. P, 344, 372, 430. May be
convened with 560. Change prerequisites to: P, 127b or 227, 330,
342, 344, and MATH 243. Fall '98
472. Continuous-System Simulation (3) (Identical with ECE 472,
which is home). May be convened with 572.
473. Automata, Grammars and Languages (3) Finite automata, regular
expressions, and their applications; context-free grammars, pushdown automata, and their
applications; Turing machines and undecidability; the Chomsky hierarchy. P, 344.
(Identical with MATH 473). Writing-Emphasis Course.**
474A -
474B -. Computer-Aided Logic Design (3-3) (Identical with ECE
474a-474b, which is home). May be convened with 574a-574b.
475A -
475B -. Mathematical Principles of Numerical Analysis (3-3)
(Identical with MATH 475a-475b, which is home).
479. Game Theory and Mathematical Programming (3) (Identical with
MATH 479, which is home). May be convened with 579.
*Open only to students who meet the requirements for Advanced Standing as specified
in the College of Business and Public Administration section of this manual.
**Writing-Emphasis Courses. P, satisfaction of the upper-division
writing-proficiency requirements. (See "Writing-Emphasis Courses" in the Academic
Policies and Graduation Requirements section of this manual.)
502. Mathematical Logic (3) (Identical with MATH 502, which is
home). May be convened with 402.
509A -
509B -. Advanced Symbolic Logic (3) (Identical with PHIL
509a-509b, which is home). May be convened with 409a-409b.
520. Principles of Programming Languages (3) Important programming
language concepts, including types, control and data abstraction, denotational semantics,
declarative and object-oriented languages, implementation issues. P, 453.
521A -
521B -. Systems Modeling and Simulation (3-3) (Identical with
MIS 521a-521b, which is home).
522. Principles of Concurrent Programming (3) For a description of
course topics see 422. Graduate-level requirements include more extensive problem sets and
different examinations. P, 344; CR, 452.
525. Principles of Computer Networking (3) For a description of
course topics see 425. Graduate-level requirements include additional and more challenging
programming projects and different examinations. May be convened with 425.
530. Case Studies in Software Design (3) For a description of
course topics see 430. Graduate-level requirements include additional and more challenging
programming projects and different examinations. P, 237 or ECE 274; 342. May be convened
with 430.
533. Computer Graphics (3) For a description of course topics see
433. Graduate-level requirements include more extensive and challenging programming
assignments. P, 344, 430. May be convened with 433.
538. Computational Linguistics (3) (Identical with LING 538, which
is home). May be convened with 438.
541A -
541B -. Computer-Aided Information Systems Analysis and Design
(3-3) (Identical with MIS 541a-541b, which is home).
543. Theory of Graphs and Networks (3) (Identical with MATH 543,
which is home). May be convened with 443.
545. Design and Analysis of Algorithms (3) Time, space complexity,
recurrences, algorithm design techniques, lower bounds; graph, matrix, set algorithms;
sorting, fast Fourier transform, arithmetic complexity, intractable problems. P, 445, 473,
MATH 362.
549. Continuous-System Modeling (3) (Identical with ECE 549). May
be convened with 449.
550. String and List Processing (3) For a description of course
topics see 450. Graduate-level requirements include more extensive problem sets and
different examinations. P, 344, 372, 430. May be convened with 450.
552. Advanced Operating Systems (3) Operating system design,
implementation and modeling; deadlock and memory management models; protection mechanisms;
operating systems for parallel and distributed systems. P, 452.
553. Principles of Compilation (3) Detailed study of advanced
compilation: translator writing systems, attribute grammars, flow analysis, optimization,
register allocation, code generation, compiling for modern architectures. P, 453, 473.
560. Database Systems (3) For a description of course topics see
460. Graduate-level requirements include more extensive problem sets and different
examinations. P, 344, 372, 430. May be convened with 460.
571a . Digital Systems Design (3) (Identical with ECE 571a, which
is home).
572. Continuous-System Simulation (3) (Identical with ECE 572,
which is home). May be convened with 472.
573. Theory of Computation (3) Chomsky hierarchy, undecidability;
general recursive functions; recursion theory; computational complexity theory,
NP-complete and provably intractable problems. P, 473. (Identical with MATH 573).
574A -
574B -. Computer-Aided Logic Design (3-3) (Identical with ECE
574a-574b, which is home). May be convened with 474a-474b.
575A -
575B -. Numerical Analysis (3-3) (Identical with MATH
575a-575b, which is home).
576. Computer Architecture (3) Design of computers, including
instruction set design, processor implementation, pipelining, memory hierarchy, vector
processors, and parallel architectures. Emphasis on hardware and software tradeoffs. P,
452, ECE 369.
578. Computational Methods of Algebra (3) (Identical with MATH
578, which is home).
579. Game Theory and Mathematical Programming (3) (Identical with
MATH 579, which is home). May be convened with 479.
620. Advanced Topics in Programming Languages (3) [Rpt./12 units]
Design, implementation, and compilation of programming languages; specific topics to be
determined by current literature and faculty and student interest.
630. Advanced Topics in Software Systems (3) [Rpt./12 units]
Problems in design and development of large systems of programs; specific topics to be
determined by current literature and faculty and student interest.
645. Advanced Topics in Algorithm Analysis (3) [Rpt./12 units]
Design and analysis of algorithms; specific topics to be determined by current literature
and faculty and student interest.
652. Advanced Topics in Operating Systems (3) [Rpt./12 units]
Operating system design, development, analysis, and performance; specific topics to be
determined by current literature and faculty and student interest.
674. Test Generation for Automata (3) (Identical with ECE 674).
696. Seminar
a. Current Computing Research (1-3) [Rpt./8]