Courses

For course descriptions not found in the UC
San Diego General Catalog, 2014–15, please contact the department
for more information.

A tentative schedule of course offerings is available from the Department of CSE each spring for the following academic year. The tentative schedule for 2014–15 is also found at
http://cse.ucsd.edu/node/2527.

Lower Division

CSE 3. Fluency in Information Technology (4)

Introduces the concepts and skills necessary to effectively use information technology. Includes basic concepts and some practical skills with computer and networks. Prerequisites: none.

CSE 4GS. Mathematical Beauty in Rome (4)

Exploration of topics in mathematics and engineering
as they relate to classical architecture in Rome, Italy. In
depth geometrical
analysis and computer modeling of basic structures (arches,
vaults, domes),
and on-site studies of the Colosseum, Pantheon, Roman Forum,
and St. Peter’s Basilica. Prerequisites: Math
10A or Math 20A; departmental approval, and corequisite of
CSE 6GS.

CSE 6GS. Mathematical Beauty in Rome Lab (4)

Companion course to CSE 4GS where theory is applied and lab experiments
are carried out “in the field” in Rome, Italy. For final projects,
students will select a complex structure (e.g., the Colosseum, the
Pantheon, St. Peter’s, etc.) to analyze and model, in detail, using computer-based
tools. Prerequisites: Math 10A or Math 20A; departmental
approval, and corequisite of CSE 4GS.

CSE 5A. Introduction to Programming I (4)

(Formerly CSE 62A) Introduction to algorithms and top-down problem solving. Introduction to the C language, including functions, arrays, and standard libraries. Basic skills for using a PC graphical user interface operating system environment. File maintenance utilities are covered. (A student may not receive credit for CSE 5A after receiving credit for CSE 10 or CSE 11 or CSE 8B or CSE 9B or CSE 62B or CSE 65.) Prerequisites: A familiarity with high-school level algebra is expected, but this course assumes no prior programming knowledge.

CSE 7. Introduction to Programming with Matlab (4)

Fundamentals of computer programming and basic software design covering topics related to variables, functions, and control structures; writing, testing, and debugging programs in Matlab. Examples focus on scientific applications. Recommended preparation: high school algebra and familiarity with the computing milieu. Students with limited computing experience may take CSE 3 for preparation. Students may not take CSE 7 after completing COGS 18. Program or material fee may apply. Prerequisites: none.

CSE 8A. Introduction to Computer Science: Java I (4)

Introductory course for students interested in computer science. Fundamental concepts of applied computer science using media computation. Exercises in the theory and practice of computer science. Hands-on experience with designing, editing, compiling, and executing programming constructs and applications. CSE 8A is part of a two-course sequence (CSE 8A and CSE 8B) that is equivalent to CSE 11. Students should take CSE 8B to complete this track. Formerly offered as corequisite courses CSE 8A plus 8AL. Students who have taken CSE 8B or CSE 11 may not take CSE 8A. Recommended preparation: No prior programming experience is assumed, but comfort using computers is helpful. Students should consult the CSE Course Placement Advice web page for assistance in choosing which CSE course to take first. Prerequisites: none.

CSE 8B. Introduction to Computer Science: Java II (4)

Continuation of the Java language. Continuation of programming techniques. More on inheritance. Exception handling. CSE 8B is part of a two-course sequence (CSE 8A and CSE 8B) that is equivalent to CSE 11. Students should consult the CSE Course Placement Advice web page for assistance in choosing which CSE course to take first. Students may not receive credit for CSE 8B and CSE 11. Prerequisites: CSE 8A.

An accelerated introduction to computer science and programming using the Java language. Basic UNIX. Modularity and abstraction. Documentation, testing and verification techniques. Basic object-oriented programming, including inheritance and dynamic binding. Exception handling. Event-driven programming. Experience with AWT library or other similar library. Students who have completed CSE 8B may not take CSE 11. Students should consult the CSE Course Placement Advice web page for assistance in choosing which CSE course to take first. Recommended preparation: high school algebra and familiarity with computing concepts and a course in a compiled language. Prerequisites: none.

Hands-on exploration of software development
tools and techniques. Investigation of the scientific process
as applied to software development and debugging. Emphasis is on weekly
hands-on laboratory experiences, development of laboratory notebooking
techniques as applied to software design. Prerequisites: CSE 8B or CSE 11, and concurrent enrollment with CSE 12.

Introduction to organization of modern digital
computers—understanding the various components of a computer
and their interrelationships. Study of a specific architecture/machine
with emphasis on systems programming in C and Assembly languages in a UNIX
environment. Prerequisites: CSE
12, CSE 15L, or consent of instructor.

CSE 80. UNIX Lab (2)

The objective of the course is to help the programmer create a productive UNIX environment. Topics include customizing the shell, file system, shell programming, process management, and UNIX tools. Prerequisites: CSE 8B or CSE 11.

CSE 86. C++ for Java Programmers (2)

Helps the Java programmer to be productive in the C++ programming environment. Topics include the similarities and differences between Java and C++ with special attention to pointers, operator overloading, templates, the STL, the preprocessor, and the C++ Runtime Environment. Prerequisites: CSE 12 or consent of instructor.

CSE 87. Freshman Seminar (1)

The Freshman Seminar Program is designed to provide new students with the opportunity to explore an intellectual topic with a faculty member in a small seminar setting. Freshman Seminars are offered in all campus departments and undergraduate colleges, and topics vary from quarter to quarter. Enrollment is limited to fifteen to twenty students, with preference given to entering freshmen. Prerequisites: none.

CSE 90. Undergraduate Seminar (1)

A seminar providing an overview of a topic of current research interest to the instructor. The goal is to present a specialized topic in computer science and engineering students. May be taken for credit three times when topics vary.

CSE 91. Perspectives
in Computer Science and Engineering (2)

A seminar format discussion led by CSE faculty on topics in central areas of computer science, concentrating on the relation among them, recent developments, and future directions. Prerequisites: majors only.

CSE 99. Independent
Study in Computer Science and Engineering (4)

Independent reading or research by special arrangement with a faculty member. Prerequisites: lower-division standing. Completion of thirty units at UC San Diego with a UC San Diego GPA of 3.0. Special Studies form required. Department stamp required. Consent of instructor and approval of the department.

Design and analysis of efficient algorithms with emphasis of nonnumerical algorithms such as sorting, searching, pattern matching, and graph and network algorithms. Measuring complexity of algorithms, time and storage. NP-complete problems. Credit not offered for both Math 188 and CSE 101. Equivalent to Math 188. Prerequisites: CSE 12, CSE 21 or Math 15B, or Math 100A, or Math 103A and CSE 100, or Math 176.

Introduction to software development and engineering methods,
including specification, design, implementation, testing, and
process. An emphasis on team development, agile methods, and
use of tools such as IDE’s, version control, and test harnesses.
CSE 70 is renumbered to CSE 110: students may not receive credit
for both CSE 70 and CSE 110. Prerequisites: CSE
12, CSE 21, or Math 15B.

CSE 112. Advanced Software Engineering (4)

This course will cover software engineering
topics associated with large systems development such as requirements
and specifications, testing and maintenance, and design. Specific
attention will be given to development tools and automated
support environments. Prerequisites: CSE
111.

CSE 118. Ubiquitous Computing (4)

Explores emerging opportunities enabled by cheap sensors and networked computing devices. Small research projects will be conducted in teams, culminating in project presentations at the end of the term. Section will cover material relevant to the project, such as research methods, software engineering, teamwork, and project management. Prerequisites: any course from the following: CSE 131, CSE 132B, Cog Sci 102C, Cog Sci 121, Cog Sci 184, COMT 111B, COMT 115, ECE 111, ECE 118, ECE 191, ECE 192, or ICAM 160B; or consent of instructor.

(Renumbered from CSE 123A.) Introduction to concepts, principles, and practice of computer communication networks with examples from existing architectures, protocols, and standards with special emphasis on the Internet protocols. Layering and the OSI model; physical and data link layers; local and wide area networks; datagrams and virtual circuits; routing and congestion control; internetworking. Transport protocols. Credit may not be received for both CSE 123 and ECE 158A, or CSE 123A and CSE 123. Prerequisites: CSE 120 or consent of instructor. Majors only.

CSE 124. Networked Services (4)

(Renumbered from CSE 123B.) The architecture of modern networked services, including data center design, enterprise storage, fault tolerance, and load balancing. Protocol software structuring, the Transmission Control Protocol (TCP), remote procedure calls, protocols for digital audio and video communication, overlay and peer-to-peer systems, secure communication. Credit may not be received for both CSE 124 and ECE 158B. Students may not receive credit for both CSE 123B and CSE 124. Prerequisites: CSE 120 or consent of instructor.

CSE 125. Software
System Design and Implementation (4)

Design and implementation of large, complex software systems involving multiple aspects of CSE curriculum. Emphasis is on software system design applied to a single, large group project with close interaction with instructor. Prerequisites: senior standing with substantial programming experience, and consent of instructor. Department stamp required.

CSE 127. Introduction to Computer Security (4)

Topics include basic cryptography, security/threat analysis, access control, auditing, security models, distributed systems security, and theory behind common attack and defense techniques. The class will go over formal models as well as the bits and bytes of security exploits. Prerequisites: CSE 21 or Math 15B, and CSE 120.

CSE 130. Programming
Languages: Principles and Paradigms (4)

(Formerly CSE 173.) Introduction to programming languages and paradigms, the components that comprise them, and the principles of language design, all through the analysis and comparison of a variety of languages (e.g., Pascal, Ada, C++, PROLOG, ML.) Will involve programming in most languages studied. Prerequisites: CSE 12, and CSE 100 or Math 176, CSE 105 or Math 166.

Implementation with computer-aided design tools for combinational logic minimization and state machine synthesis. Hardware construction of a small digital system. Prerequisites: CSE 20 or Math 15A; CSE 140 must be taken concurrently.

CSE 141. Introduction to Computer Architecture (4)

Introduction to computer architecture. Computer system design. Processor design. Control design. Memory systems. Prerequisites: CSE 140, CSE 140L, or consent of the instructor. CSE 141L should be taken concurrently.

CSE 141L. Project in Computer Architecture (2)

Hands-on computer architecture project aiming to familiarize students with instruction set architecture, and design of process. Control and memory systems. Prerequisites: CSE 110, CSE 140, CSE 140L, or consent of the instructor. CSE 141 should be taken concurrently.

Project class building an embedded computing system. Learn fundamental knowledge of microcontrollers, sensors, and actuators. Introduction to the hardware and software tools to build project in a team environment and end-to-end system building. Prerequisites: CSE 30.

CSE 148. Advanced
Processor Architecture Design Project (4)

Students will use hardware description language tools to add advanced architectural features to a basic processor design. These features may include pipelining, superscalar execution, branch prediction, and advanced cache features. Designs will be implemented in programmable logic devices. Prerequisites: CSE 141, CSE 141L, or consent of instructor.

Construction of computational models that “do the same things people do,” in terms of perception, categorization, memory, language, action, etc. and typically in a fashion that is plausibly carried out by the neural networks in our brains. The model must fit behavioral, neurophysiological, and/or neuropsychological data. Recommended preparation: background knowledge in computer science, cognitive science, psychology, or neuroscience, and a basic understanding of the most fundamental concepts of differential calculus, linear algebra, and statistics. Computer programming skills may be useful to some students as they conduct their term projects, but such skills are not required. Prerequisites: CSE 100 or Math 176 or consent of instructor.

This course focuses on design and evaluation of three-dimensional (3D) user interfaces, devices, and interaction techniques. The course consists of lectures, literature reviews, and programming assignments. Students will be expected to create interaction techniques for several different 3D interaction devices. Program or material fee may apply. Prerequisites: CSE 167.

This course provides an introduction to the features of biological data, how those data are organized efficiently in databases, and how existing data resources can be utilized to solve a variety of biological problems. Object oriented databases, data modeling and description. Survey of current biological database with respect to above, implementation of a database on a biological topic. Cross-listed with BIMM 182/BENG 182/Chem 182. Prerequisites: CSE 100 or Math 176. Bioinformatics majors only.

Topics of special interest in computer science and engineering. Topics may vary from quarter to quarter. May be repeated for credit with the consent of instructor. Prerequisites: consent of instructor. Department stamp required.

CSE 191. Seminar in CSE (1–4)

A seminar course on topics of current interest. Students, as well as, the instructor will be actively involved in running the course/class. This course cannot be counted toward a technical elective. Prerequisites: consent of instructor. Department stamp required.

CSE 192. Senior Seminar in Computer Science and Engineering (1)

The Senior Seminar Program is designed to allow senior undergraduates to meet with faculty members in a small group setting to explore an intellectual topic in CSE (at the upper-division level). Topics will vary from quarter to quarter. Senior seminars may be taken for credit up to four times, with a change in topic, and permission of the department. Enrollment is limited to twenty students, with preference given to seniors. (P/NP grades only.) Prerequisites: upper-division standing; department stamp required and consent of instructor.

CSE 195. Teaching (4)

Teaching and tutorial assistance in a CSE course under the supervision of the instructor. (P/NP grades only.) Prerequisites: consent of the department chair. Department stamp required.

Directed study and research at laboratories away from the campus. (P/NP grades only.) Prerequisites: consent of the instructor and approval of the department. Department stamp required.

CSE 198. Directed Group Study (2 or 4)

Computer science and engineering topics whose study involves reading and discussion by a small group of students under the supervision of a faculty member. (P/NP grades only.) Prerequisites: consent of the instructor. Department stamp required.

CSE 199. Independent Study for Undergraduates (2 or 4)

Independent reading or research by special arrangement with a faculty member. (P/NP grades only.) Prerequisites: consent of the instructor. Department stamp required.

CSE 199H. CSE Honors Thesis Research for Undergraduates (4)

Undergraduate research for completing an honors project under the supervision of a CSE faculty member. May be taken across multiple quarters. Students should enroll for a letter grade. May be taken for credit three times. Prerequisites: Admission to the CSE department honors program. Consent of the instructor. Department stamp required.

(Formerly CSE 207C) Introduction to the algorithmic theory of point lattices (aka algorithmic geometry of numbers), and some of its most important applications in cryptography and cryptanalysis. Topics usually include: LLL basis reduction algorithm, cryptanalysis of broadcast RSA, hardness of approximating lattice problems. Prerequisites: CSE 202, CSE 200, or concurrent.

Topics of special interest in algorithms, complexity, and logic to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

CSE 209B. Topics/Seminar in Cryptography (1–4)

Topics of special interest in cryptography to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

Survey of testing and analysis methods. Introduction to advanced topics in area as well as traditional production methods. Topics include inspections and reviews, formal analysis, verification and validation standards, nonstatistical testing, statistical-testing and reliability models, coverage methods, testing and analysis tools, and organization management and planning. Methods special to special development approaches such as object-oriented testing will also be described. Prerequisites: undergraduate major in computer science or extensive industrial experience.

CSE 216. Research Topics in Human-Computer Interaction (4)

Prepares students to conduct original HCI research by reading and discussing seminal and cutting-edge research papers. Topics include design, social software, input techniques, mobile, and ubiquitous computing. Student pairs perform a quarter-long mini research project that leverages campus research efforts. Cross-listed with COGS 230. Prerequisites: none.

CSE 218. Advanced
Topics in Software Engineering (4)

This course will cover a current topic in software engineering in depth. Topics in the past have included software tools, impacts of programming language design, and software system structure. (S/U grades permitted.) Prerequisites: none.

(Formerly CSE 228H.) Techniques for speeding up Internet implementations, including system restructuring, new algorithms, and hardware innovations. Topics include: models for protocols, systems and hardware; efficiency principles; applying these principles to deriving techniques for efficient implementation of common endnode and router functions. Prerequisites: CSE 123A or CSE 222A, or consent of instructor.

Discussion on problems of current research interest in computer systems. Possible areas of focus include: distributed computing, computational grid, operating systems, fault-tolerant computing, storage systems, system services for the World Wide Web. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

CSE 229B. Topics/Seminar
in Networks and Communication (1–4)

Discussion on problems of current research interest in computer networks and communication. Possible areas of focus include: wide-area networking, wireless networks, the Internet, computational grid, operating systems, fault-tolerant computing, storage systems. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

CSE 229C. Topics/Seminar in Computer Security (1–4)

Discussion on problems of current research interest in computer security. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

Discussion on problems of current research
interest in databases. Possible areas of focus include: core database issues,
data management on the web, data integration, new database models and applications,
formal methods in databases. Topics to be presented by faculty and students
under faculty direction. Topics vary from quarter to quarter. May be repeated
for credit. Prerequisites: consent of instructor.

Topics of special interest in computer architecture to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

CSE 249B. Topics/Seminar in VLSI (1–4)

Topics of special interest in VLSI to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

CSE 249C. Topics/Seminar in CAD (1–4)

Topics of special interest in CAD to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

Topics of special interest in machine learning to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.

This course will explore design of software support for applications of parallel computation. Topics include: programming languages, run time support, portability, and load balancing. The course will terminate in a project. Prerequisites: consent of instructor.

(Formerly CSE 280A.) A seminar course in which topics of special interest in computer science and engineering will be presented by staff members and graduate students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. (S/U grades only.) Prerequisites: consent of instructor. (Offered as faculty resources permit.)

CSE 291. Topics
in Computer Science and Engineering (1–4)

Topics of special interest in computer science and engineering. Topics may vary from quarter to quarter. May be taken for credit nine times with the consent of instructor. Prerequisites: consent of instructor. (S/U grades permitted.) (Offered as faculty resources permit.)

CSE 292. Faculty Research Seminar (1)

(Formerly CSE 282.) Computer science and engineering faculty will present one-hour seminars of the current research work in their areas of interest. Prerequisites: CSE graduate status.

CSE 293. Special
Project in Computer Science and Engineering (1–12)

The student will conceive, design, and execute a project in computer science under the direction of a faculty member. The project will typically include a large programming or hardware design task, but other types of projects are possible. Prerequisites: CSE graduate student status. (CS 75, 76, 77, 78, 79, 80, 81) (S/U grades only.)

CSE 294. Research Meeting in CSE (2)

Advanced study and analysis of active research in computer science and computer engineering. Discussion of current research and literature in the research specialty of the staff member teaching the course. Prerequisites: consent of instructor.

CSE 298. Independent Study (1–16)

Open to properly qualified graduate students who wish to pursue a problem through advanced study under the direction of a member of the staff. (S/U grades only.) Prerequisites: consent of instructor.

CSE 299. Research (1–16)

Research. Prerequisites: consent of faculty.

CSE 500. Teaching Assistantship (2–4)

A course in which teaching assistants are aided in learning proper teaching methods by means of supervision of their work by the faculty: handling of discussions, preparation and grading of examinations and other written exercises, and student relations. May be used to meet teaching experience requirement for candidates for the PhD degree. Number of units for credit depends on number of hours devoted to class or section assistance. Prerequisites: graduate standing and consent of instructor.

CSE 599. Teaching Methods in Computer Science (2)

Training in teaching methods in the field of computer science. This course examines theoretical and practical communication and teaching techniques particularly appropriate to computer science. Prerequisites: consent of faculty.