• 10A. Introduction to Programming

    Units: 5.0

    Lecture, three hours; discussion, two hours; laboratory, eight hours. No prior programming experience assumed. Basic principles of programming, using C++; algorithmic, procedural problem solving; program design and development; basic data types, control structures and functions; functional arrays and pointers; introduction to classes for programmer-defined data types. P/NP or letter grading.

  • 10B. Intermediate Programming

    Units: 5.0

    Lecture, three hours; discussion, two hours; laboratory, eight hours. Requisite: course 10A or Computer Science 31. Abstract data types and their implementation using C++ class mechanism; dynamic data structures, including linked lists, stacks, queues, trees, and hash tables; applications; object-oriented programming and software reuse; recursion; algorithms for sorting and searching. P/NP or letter grading.

  • 10C. Advanced Programming

    Units: 5.0

    Lecture, three hours; discussion, two hours; laboratory, eight hours. Enforced requisite: course 10B. More advanced algorithms and data structuring techniques; additional emphasis on algorithmic efficiency; advanced features of C++, such as inheritance and virtual functions; graph algorithms. P/NP or letter grading.

  • 15. Introduction to Lisp and Symbolic Computation

    Units: 5.0

    Lecture, three hours; discussion, two hours; laboratory, eight hours. Enforced requisite: course 10A. Introduction to symbolic computation using Lisp programming language. Basics: list structures, recursion, function abstraction. Advanced topics: knowledge representation, higher-order functions, problem-solving algorithms and heuristics. P/NP or letter grading.

  • 16A. Python with Applications I

    Units: 5.0

    (Formerly numbered 16.) Lecture, three hours; discussion, two hours. Requisites: course 10A, Computer Science 31, or equivalent, with grades of C- or better. In-depth introduction to Python programming language for students who have already taken beginning programming course in strongly typed, compiled language (C++, C, or Fortran). Core Python language constructs, applications, text processing, data visualization, interaction with spreadsheets and SQL databases, and creation of graphical user interfaces. P/NP or letter grading.

  • 19. Fiat Lux Freshman Seminars

    Units: 1.0

    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.

  • 20A. Principles of Java Language with Applications

    Units: 5.0

    Lecture, three hours; discussion, two hours; laboratory, eight hours. Requisite: course 10A or Computer Science 31. Not open for credit to students with credit for course 3. Introduction to Java computer language. Class and interface hierarchies; graphics components and graphical user interfaces; streams; multithreading; event and exception handling. Issues in class design and design of interactive web pages. P/NP or letter grading.

  • 40A. Introduction to Programming for Internet

    Units: 5.0

    Lecture, three hours; discussion, two hours. Requisites: course 10A or Computer Science 31 or equivalent, and one from course 10B, 16A, 20A, Computer Science 32, or equivalent, with grades of C- or better. Introduction to programming for World Wide Web for students with strong foundation in programming. HTML5 and CSS3 markup languages to design websites; client-side scripting with JavaScript to enable event-driven interactivity, animations, and cookie tracking; server-side scripting with PHP to render HTML pages, store, and retrieve data on server; and introduction to databases through SQLite3. P/NP or letter grading.

  • 89. Honors Seminars

    Units: 1.0

    Seminar, three hours. Limited to 20 students. Designed as adjunct to lower-division lecture course. Exploration of topics in greater depth through supplemental readings, papers, or other activities and led by lecture course instructor. May be applied toward honors credit for eligible students. Honors content noted on transcript. P/NP or letter grading.

  • 89HC. Honors Contracts

    Units: 1.0

    Tutorial, three hours. Limited to students in College Honors Program. Designed as adjunct to lower-division lecture course. Individual study with lecture course instructor to explore topics in greater depth through supplemental readings, papers, or other activities. May be repeated for maximum of 4 units. Individual honors contract required. Honors content noted on transcript. Letter grading.

  • 97. Special Topics in Programming

    Units: 1.0 to 4.0

    Lecture, one to three hours; discussion, zero to one hour. Enforced requisite: course 10A. Variable topics in programming not covered in regular program in computing courses. May be repeated for credit with topic change. P/NP or letter grading.

  • 99. Student Research Program

    Units: 1.0 to 2.0

    Tutorial (supervised research or other scholarly work), three hours per week per unit. Entry-level research for lower-division students under guidance of faculty mentor. Students must be in good academic standing and enrolled in minimum of 12 units (excluding this course). Individual contract required; consult Undergraduate Research Center. May be repeated. P/NP grading.

  • 110. Parallel and Distributed Computing

    Units: 5.0

    Lecture, three hours; discussion, two hours; laboratory, eight hours. Requisite: course 10B or equivalent familiarity with programming in C or C++ language. Introduction to programming of parallel computers. Shared and distributed memory parallel architectures; currently available parallel machines; parallel algorithms and program development; estimation of algorithmic performance; distributed computing; selected advanced topics. P/NP or letter grading.

  • 130. Cryptography

    Units: 4.0

    Lecture, three hours; discussion, one hour; laboratory, three hours. Requisites: course 10B, Mathematics 115A. Design and analysis of cryptosystems for confidentiality and authentication. Classical cryptosystems and their security, modern private-key cryptosystems and applications, public-key cryptography and applications; generating prime numbers, factoring integers, discrete logarithms, digital signatures, perfect secrecy. P/NP or letter grading.

  • 187. Advanced Variable Topics in Programming

    Units: 4.0

    Lecture, three hours; discussion, one hour. Variable topics in programming and mathematics of programming not covered in regular program in computing courses. May be repeated for credit with topic change. P/NP or letter grading.

  • 189. Advanced Honors Seminars

    Units: 1.0

    Seminar, three hours. Limited to 20 students. Designed as adjunct to undergraduate lecture course. Exploration of topics in greater depth through supplemental readings, papers, or other activities and led by lecture course instructor. May be applied toward honors credit for eligible students. Honors content noted on transcript. P/NP or letter grading.

  • 189HC. Honors Contracts

    Units: 1.0

    Tutorial, three hours. Limited to students in College Honors Program. Designed as adjunct to upper-division lecture course. Individual study with lecture course instructor to explore topics in greater depth through supplemental readings, papers, or other activities. May be repeated for maximum of 4 units. Individual honors contract required. Honors content noted on transcript. Letter grading.

  • 285C. Seminar: Computational Algebra

    Units: 4.0

    Seminar, three hours. Considered equivalent to Mathematics 285A through 285L for purposes of degree requirements. Topics in various computational fields by means of lectures and informal conferences with staff members. S/U or letter grading.

  • 285D. Seminar: Logic and Theory of Computation

    Units: 4.0

    Seminar, three hours. Considered equivalent to Mathematics 285A through 285L for purposes of degree requirements. Topics in various computational fields by means of lectures and informal conferences with staff members. S/U or letter grading.

  • 285J. Seminar: Scientific Computation

    Units: 4.0

    Seminar, three hours. Considered equivalent to Mathematics 285A through 285L for purposes of degree requirements. Topics in various computational fields by means of lectures and informal conferences with staff members. S/U or letter grading.

  • 285K. Seminar: Randomness and Computation

    Units: 4.0

    Seminar, three hours. Considered equivalent to Mathematics 285A tnrough 285L for purposes of degree requirements. Topics in various computational fields by means of lectures and informal conferences with staff members. S/U or letter grading.

  • 285L. Seminar: Computational Statistics

    Units: 4.0

    Seminar, three hours. Considered equivalent to Mathematics 285A through 285L for purposes of degree requirements. Topics in various computational fields by means of lectures and informal conferences with staff members. S/U or letter grading.

  • 296. Participating Seminar: Logic and Theory of Computaion

    Units: 1.0 to 4.0

    Seminar, to be arranged. Seminar and discussion by staff and students. S/U grading.

  • 375. Teaching Apprentice Practicum

    Units: 1.0 to 4.0

    Seminar, to be arranged. Preparation: apprentice personnel employment as teaching assistant, associate, or fellow. Teaching apprenticeship under active guidance and supervision of regular faculty member responsible for curriculum and instruction at UCLA. May be repeated for credit. S/U grading.