Boolean algebra, logic minimization, finite-state machine design, sequential circuits, common logic elements, programmable logic devices, and an introduction to system level design. The electrical behavior of circuits including three state outputs, propagation delay, logic levels, and fanout. (Formerly Computer Engineering 100.)
Instructor
S. Beamer, M. Schlag
Quarter offered
Fall, Winter, Spring
Laboratory sequence illustrating topics covered in course 100. Two 2-hour laboratory sessions per week. Weekly laboratory assignments which require the use of the oscilloscopes, TTL circuits, computer-aided design and simulation tools, and programmable logic. Students are billed a materials fee. (Formerly Computer Engineering 100L.)
Instructor
Beamer The Staff, Martine Schlag
Quarter offered
Fall, Winter, Spring
Introduction to abstract data types and basics of algorithms. Linked lists, stacks, queues, hash tables, trees, heaps, and graphs will be covered. Students will also be taught how to derive big-Oh analysis of simple algorithms. All assignments will be in C/C++. (Formerly Computer Science 101 Algorithms and Abstract Data Types.)
Instructor
The Staff, Patrick Tantalo, Manfred Warmuth, Allen Van Gelder, David Helmbold, Seshadhri Comandur
Quarter offered
Fall, Winter, Spring, Summer
Methods for the systematic construction and mathematical analysis of algorithms. Order notation, the RAM model of computation, lower bounds, and recurrence relations are covered. The algorithm design techniques include divide-and-conquer, branch and bound, and dynamic programming. Applications to combinatorial, graph, string, and geometric algorithms. (Formerly Computer Science 102.)
Instructor
The Staff, Manfred Warmuth, Allen Van Gelder, Suresh Lodha, David Helmbold, Demetrios Achlioptas, Abhradeep Guha Thakurta
Quarter offered
Fall, Winter, Spring
Various representations for regular languages, context-free grammars, normal forms, simple parsing, pumping lemmas, Turing machines, the Church-Turing thesis, intractable problems, the P-NP question. (Formerly CMPS 130.)
Instructor
Delbert Bailey, Patrick Tantalo, Manfred Warmuth, Allen Van Gelder, Phokion Kolaitis, David Helmbold, Seshadhri Comandur
Quarter offered
Fall, Winter, Spring
Turing machines, general phase-structure grammars, the Chomsky hierarchy, recursive functions, diagonalization, the Halting problem, computability and unsolvability, computational complexity, time and space bounds, NP-completeness with emphasis on reductions between problems from various areas. (Formerly CMPS 132.)
Instructor
Delbert Bailey, Manfred Warmuth, Allen Van Gelder, Phokion Kolaitis, David Helmbold
Quarter offered
Winter, Spring
Disciplinary Communication (DC) course to be taken concurrently with course 132. Students satisfy the DC requirement by writing a survey paper on a topic related to computability and computational complexity. Possible topics include: an overview of a different model of computation (e.g., quantum computing); an overview of a major complexity class; a critical analysis of the Church-Turing thesis. Prerequisite(s): course 130; satisfaction of the Entry Level Writing and Composition requirements.Concurrent enrollment in course 132 required. Enrollment by permission of instructor.(Formerly CMPS 132W.)
Instructor
Delbert Bailey, Manfred Warmuth, Allen Van Gelder, Phokion Kolaitis, David Helmbold
Basic concepts and algorithms are reviewed including trees, Eulerian and Hamiltonian graphs, and graph transversal. Algorithms are explored to solve problems in connectivity, routing, matching, and embedding of graphs. Graph theory and algorithms are developed around applications in computer engineering. (Formerly Computer Engineering 177.)
Instructor
Martine Schlag
Introduction to fundamental tools of stochastic analysis. Probability, conditional probability; Bayes Theorem; random variables and transforms; independence; Bernnoulli trials. Statistics, inference from limited data; outcomes of repeated experiments; applications to design; assessment of relative frequency and probability; law of large numbers; precision of measurements. Elements of stochastic processes, Poisson processes; Markov chains. Students cannot receive credit for this course and Applied Mathematics and Statistics 131. (Formerly Computer Engineering 107.)
Instructor
Jose Garcia-Luna-Aceves, Mircea Teodorescu
General Education Code
SR
Quarter offered
Winter, Spring
Focuses on some of the foundational aspects of modern cryptography, namely, private and public key cryptography, digital signatures, pseudorandom generators and functions, message authentication codes, hash functions, and random oracles. Course also connects the formal concepts with some real-world applications, like RA, SSL, and bitcoin, exposing students to general concepts of probability theory, number theory, and rigorous proofs. (Formerly Computer Science 118.)
Instructor
Abhradeep Guha Thakurta
An introduction to the basic techniques used in compiler design. Topics include compiler structure, symbol tables, regular expressions and languages, finite automata, lexical analysis, context-free languages, LL(1), recursive descent, LALR(1), and LR(1) parsing; and attribute grammars as a model of syntax-directed translation. Students use compiler building tools to construct a working compiler. (Formerly Computer Science 104A.)
Instructor
W. Mackey, O. Arden
Quarter offered
Fall, Winter, Spring, Summer
Advanced study of compiler implementation. Topics include compiler structure back end, run-time environments, storage management, garbage collection, register allocation, code generation, basic blocks, control flow, data flow, local and global optimization, interpretation, and machine-code generation. Students may not receive credit for this course and course 211. Taught in conjunction with course 211. (Formerly Computer Science 104B.)
An introduction to object-oriented techniques of software development including data abstraction, inheritance, polymorphism, and object-oriented design. Extensive practice using a computer to solve problems, including construction of graphical user interfaces and a multithreaded client/server applications. (Formerly Computer Science 109.)
Instructor
The Staff, Wesley Mackey
Quarter offered
Fall, Winter, Spring
Covers several programming languages and compares styles, philosophy, and design principles. Principles underlying declarative, functional, and object-oriented programming styles are studied. Students write programs emphasizing each of these techniques. (Formerly Computer Science 112.)
Instructor
W. Mackey, D. Long, C. Flanagan, A. Van Gelder, O. Arden, D. Harrison
Quarter offered
Fall, Winter, Spring
Introduction to parallel and concurrent programming. Topics include: types of parallel computers and programming platforms; design, implementation, and optimization of programs for parallel and multicore processors; basic and advanced programming techniques; performance analysis and load balancing; and selected parallel algorithms. (Formerly Computer Engineering 113 and Computer Science 113.)
An in-depth study of the functional style of programming and functional abstraction, including the study of applicative functors and monads, and monadic parsers. (Formerly CMPS 153.)
Instructor
Cormac Flanagan
Emphasizes the characteristics of well-engineered software systems. Topics include requirements analysis and specification, design, programming, verification and validation, maintenance, and project management. Practical and research methods are studied. Imparts an understanding of the steps used to effectively develop computer software. (Formerly Computer Science 115.)
Instructor
The Staff, Jim Whitehead, Cormac Flanagan, Linda Werner, Richard Jullig, Narges Norouzi
Students in teams specify, design, construct, test, and document a complete software system in a specialized application domain. Class time is spent in technical discussions and ongoing design reviews. A formal presentation and demonstration of each project is required. An organizational meeting will be held during the preceding quarter. Projects may be drawn from industry and campus research groups. (Formerly Computer Science 116.)
Instructor
Jim Whitehead, Luca De Alfaro, Linda Werner, Richard Jullig
General Education Code
PR-E
Continuation of course 116. Students work in teams to develop, test, document, and deploy a substantial software project. Teams give a formal presentation and demonstration of each project. (Formerly Computer Science 117.)
Instructor
The Staff, Jim Whitehead, Luca De Alfaro, Linda Werner, Richard Jullig
Problem solving emphasizing recursion, data abstraction, and higher-order functions. Introduction to types and type checking, modular programming, and reasoning about program correctness.
Instructor
Owen Arden, Lindsey Kuper
Presents an opportunity to participate in Linux Kernel development--one of the preeminent open source projects. Through community involvement, students accelerate comprehension of computer science fundamentals and display their understanding and experience relevant to other programming projects. (Formerly Computer Science 107.)
Instructor
The Staff, Carl Maltzahn
Introduces programming and application development for mobile devices. Covers the SDK and main programming platforms available on mobile devices, methodologies for developing native applications, division of computation between the mobile platform and servers, and mobile-to-server communications. Introduces platforms based on JavaScript and HTML5 for the development of applications that are portable across platforms. Students develop components of applications, leading to fully functional applications by the end of the course. Course based on emulators and SDK tools, so ownership of a cellphone/tablet is not required for the course. (Formerly CMPS 121.)
Instructor
D. Harrison, L. De Alfaro, N. Norouzi
Quarter offered
Fall, Winter
Provides experience with applying computing to social issues. Case studies on multiple issues. For example: privacy, copyright, voting, education, poverty, energy, activism. Team project in which students develop software to address a pre-identified need of a global or local non-profit. (Formerly Computer Science 119.)
Instructor
Suresh Lodha, James Davis
General Education Code
PE-T
Introduction to computer architecture including examples of current approaches and the effect of technology and software. Computer performance evaluation, basic combinatorial and sequential digital components, different instruction set architectures with a focus on the MIPS ISA and RISC paradigm. Evolution of CPU microarchitecture from single-cycle to multi-cycle pipelines, with overview of super-scalar, multiple-issue and VLIW. Memory system, cache, virtual memory and relationship between memory and performance. Evolution of PC system architecture. May include advanced topics, such as parallel processing, MIMD, and SIMD. (Formerly Computer Engineering 110.)
Instructor
S. Beamer, E. Miller, J. Renau Ardevol, H. Litz
Quarter offered
Fall, Winter, Spring
The design and use of microprocessor-based systems. Covers microprocessor and microcontroller architecture, programming techniques, bus and memory organization, DMA, timing issues, interrupts, peripheral devices, serial and parallel communication, and interfacing to analog and digital systems. (Formerly Computer Engineering 121.)
Instructor
A. Varma, D. Harrison
Quarter offered
Fall, Spring
Laboratory sequence illustrating topics covered in course 121. Two 2-hour laboratory sessions per week. Students design, build, program, debug, document, and demonstrate a microprocessor-based system. Students are billed a materials fee. (Formerly Computer Engineering 121L.)
Instructor
A. Varma, D. Harrison
Quarter offered
Fall, Spring
Introduces very large scale integrated (VLSI) custom integrated circuits. Topics include: semiconductor manufacturing, logic families, field-effect transistors (FETs), interconnect models, simulation, and circuits. Introduces the design flow from logic design to layout with a focus on high performance and low power. Students cannot receive credit for this course and CSE 222A. (Formerly Computer Engineering 122.)
Instructor
Matthew Guthaus
First of a two-course sequence that is the culmination of the engineering program. Students apply knowledge and skills gained in elective track to complete a major design project. Students complete research, specification, planning, and procurement for a substantial project. Includes technical discussions, design reviews, and formal presentations; engineering design cycle, engineering teams, and professional practices. Formal technical specification of the approved project is presented to faculty. Students are billed a materials fee. Prerequisite(s): CSE 121; previous or concurrent enrollment in CSE 185E; and by permission of the instructor. (Formerly Computer Engineering 123A.)
Instructor
The Staff, Anujan Varma
General Education Code
PR-E
Second of two-course sequence in engineering system design. Students fully implement and test system designed and specified in CSE 123A. Formal written report, oral presentation, and demonstration of successful project to review panel of engineering faculty required. Students are billed a materials fee. (Formerly Computer Engineering 123B.)
Instructor
The Staff, Anujan Varma
Verilog digital logic design with emphasis on ASIC and FPGA design. Students design and verify large-scale systems. Assignments and project use the Verilog Hardware Description Language with emphasis on verification and high-frequency ASIC/FPGA targets. (Formerly Computer Engineering 125.)
Instructor
Jose Renau Ardevol, Matthew Guthaus, Heiner Litz
Laboratory sequence illustrating topics covered in course 125. Two 2-hour laboratory sessions per week. Students are billed a materials fee. (Formerly Computer Engineering 125L.)
Instructor
Jose Renau Ardevol, Matthew Guthaus, Heiner Litz
First of a three-course sequence in which students apply knowledge and skills gained in elective track to complete a major design project. In this first course, students complete the specification and planning for a substantial project. Topics covered: engineering design cycle, engineering teams, and professional practices. (Formerly Computer Engineering 129A.)
Instructor
Patrick Mantey, Gabriel Elkaim
Second of a three-course sequence in which students apply knowledge and skills gained in elective track to complete a major design project. In this second course, students complete the research and procurement for a substantial project and a preliminary implementation. Students are billed a materials fee. Prerequisite(s): CSE 121, CSE 121L, and CSE 129A. Previous or concurrent enrollment in CSE 185. Enrollment by permission of instructor. (Formerly Computer Engineering 129B.)
Instructor
Patrick Mantey, Gabriel Elkaim
General Education Code
PR-E
Third of a three-course sequence in which students apply knowledge and skills gained in elective track to complete a major design project. In this third course, students work in teams to complete the project specified and advanced in the first two courses. A formal written report, oral presentation, and demonstration of the successful project to a review panel of engineering faculty is required. Students are billed a materials fee. Prerequisite(s): CSE 129B and CSE 185. Enrollment by permission of instructor. (Formerly Computer Engineering 129C.)
Instructor
Patrick Mantey, Gabriel Elkaim
Covers the principles governing computer-systems design and complexity; familiarity with memory, storage, and networking; concurrency and synchronization; layering (abstraction and modularity); naming; client-server and virtualized system models; and performance. Requires significant programming projects demonstrating mastery of these concepts. (Formerly Computer Engineering 105.)
Instructor
E. Miller, G. Elkaim, D. Nawab
Quarter offered
Fall, Winter, Spring
Fundamental principles of operating systems: process synchronization, deadlocks, memory management, resource allocation, scheduling, storage systems, and study of several operating systems. A major programming project will be required. (Formerly Computer Science 111.)
Instructor
The Staff, Ethan Miller, Wesley Mackey, Darrell Long, Peter Alvaro, Faisal Nawab
Introduction to computer security (including selected topics in network security). Access control. Security in programming languages. Basic cryptography. Security protocols. (Formerly CMPS 122.)
Instructor
E. Miller, O. Arden, A. Cardenas
Quarter offered
Winter, Spring
Detailed exploration of the internal design of an embedded operating systems kernel. Covers kernel structure and organization, device drivers, I/O systems, file systems, memory management, and security. Students complete significant programming projects that extend or modify existing operating systems. (Formerly Computer Engineering 114.)
Instructor
Ethan Miller, Darrell Long
Covers topics in distributed computing including communication, naming, synchronization, consistency and replication, fault tolerance, and security. Examples drawn from peer-to-peer systems, online gaming, the World Wide Web; other systems also used to illustrate approaches to these topics. Students implement simple distributed systems over the course of the quarter. (Formerly CMPS 128, File Sharing, Distributed Systems: Online Gaming, and More.)
Instructor
L. Kuper, E. Miller, D. Long, P. Alvaro
Quarter offered
Fall, Spring
Covers all aspects of storage systems technology from magnetic media up through system software, including principles of magnetic recording, hard drive technology and evolution, performance measurement, file systems, storage networking, disk arrays, network-attached storage, and alternative storage technologies. (Formerly CMPS 129.)
Instructor
Ethan Miller, Scott Brandt, Darrell Long
Introduction to the contemporary concepts and techniques of artificial intelligence, including any or all of: machine perception and inference, machine learning, optimization problems, computational methods and models of search, game playing and theorem proving. Emphasis may be on any formal method of perceiving, learning, reasoning, and problem solving which proves to be effective. This includes both symbolic and neural network approaches to artificial intelligence. Issues discussed include symbolic versus nonsymbolic methods, local versus global methods, hierarchical organization and control, and brain modeling versus engineering approaches. Lisp or Prolog may be introduced. Involves one major project or regular programming assignments. (Formerly CMPS 140.)
Instructor
N. Norouzi, M. Walker, L. Getoor
Quarter offered
Fall, Winter
Introduction to machine learning algorithms and their applications. Topics include classification learning, density estimation and Bayesian learning regression, and online learning. Provides introduction to standard learning methods such as neural networks, decision trees, boosting, and nearest neighbor techniques. (Formerly CMPS 142.)
Instructor
M. Warmuth, D. Helmbold, S Chaturvedi, S. Chaturvedi, Y. Liu
Quarter offered
Fall, Spring
Introduces the theory and practice of natural language processing (NLP)-- the creation of computer programs that can understand, generate, and learn natural language. Introduces the three major subfields of NLP: syntax (the structure of a sentence); semantics (the explicit meaning of a single sentence); and pragmatics (the implicit meaning of a sentence when it is used in a specific discourse). Projects focus on the techniques useful for a particular application area, alternating in different years. Project application areas include information extraction, narrative understanding, sentiment analysis, dialogue systems, and question answering. (Formerly CMPS 143.)
Instructor
The Staff, Marilyn Walker
Provides a practical and project-oriented introduction to machine learning, with an emphasis on neural networks and deep learning. Starts with a discussion of the foundational pieces of statistical inference, then introduces the basic elements of machine learning: loss functions and gradient descent. Using these, presents logistic regression, or one-layer networks, and then moves on to more complex models: deep neural networks, convolutional networks for image recognition, and recurrent networks and LSTM for temporal and sequence data. Also covers the basics of dataset preparation and visualization and the performance characterization of the models created. Includes weekly homework and a final project that can be done in groups. (Formerly CMPS 144.)
Instructor
Luca De Alfaro, Narges Norouzi
Covers the techniques, algorithms, and applications of data mining, including data preprocessing, data exploration, classification, clustering, mining text, and sequential and social data. (Formerly TIM 145.)
Addresses issues arising in organizing communications among autonomous computers. Network models and conceptual layers; Internet-working; characteristics of transmission media; switching techniques (packet switching, circuit switching, cell switching); medium access control (MAC) protocols and local area networks; error-control strategies and link-level protocols; routing algorithms for bridges and routers; congestion control mechanisms; transport protocols; application of concepts to practical wireless and wireline networks and standard protocol architectures. Students who have completed course 80N can take this course for credit. (Formerly CMPE 150.)
Instructor
C., Katia O., Chen Q.
Quarter offered
Fall, Winter, Spring
Illustrates the concepts covered in course 150 and provides students with hands-on experience in computer networks. Students are billed a materials fee. (Formerly CMPE 150L.)
Instructor
C. Parsa, K. Obraczka, C. Qian
Quarter offered
Fall, Winter, Spring
Provides an in-depth coverage of fundamental topics introduced in course 150 including routing, transport, and internetworking. Also introduces advanced concepts not covered in course 150 including wireless, application-layer services, security, etc. (Formerly Computer Engineering 151.)
Instructor
The Staff, Bradley Smith, Jose Garcia-Luna-Aceves
Quarter offered
Winter, Spring
Laboratory illustrating the concepts covered in course 151: provides students with hands-on experience in computer networks. (Formerly Computer Engineering 151L.)
Instructor
The Staff, Bradley Smith
Quarter offered
Winter, Spring
Course focuses on the design and analysis of protocols for computer communication. Topics include: the safety, liveliness, and performance of communication protocols for medium access control (MAC); link control; routing and switching; multicasting; and end-to-end transport. Students cannot receive credit for this course and CSE 250B.
Instructor
Jose Garcia-Luna-Aceves
Methods and tools used for network programming. Topics include: operating system (OS) support for network protocols; inter-process communication (IPC) facilities, such as pipes, sockets, and remote procedure call (RPC); design of client and server sides of network applications; network security; and programming projects. (Formerly Computer Engineering 156.)
Instructor
The Staff, Mehrdad Parsa, Anujan Varma
Laboratory sequence illustrating concepts taught in course 156. Students learn use of network programming tools and methods via programming exercises. (Formerly Computer Engineering 156L.)
Instructor
The Staff, Mehrdad Parsa, Anujan Varma
Introduces techniques of modeling, transformation, and rendering for computer-generated imagery. Topics: 2D/3D primitives, projections, matrix composition, and shading algorithms. Programming assignments and major project required. Students cannot receive credit for both this course and course 260 in quarters when they are offered concurrently. Mastery of materials in the prerequisite courses will be verified with a quiz or assignment during the first two weeks of the course. (Formerly Computer Science 160.)
Instructor
Alex Pang, James Davis
Quarter offered
Fall, Winter, Spring
Complements course 160, gaining additional competence with a number of important software development tools, graphics libraries, and graphical user interfaces. Topics include OpenGL, WebGL, rubberbanding, picking, sliders, buttons, dialog, event handling, double buffering, lighting, shading, materials, and textures. The topic list may be updated to reflect technological changes. (Formerly CMPS 160L.)
Instructor
Alex Pang, James Davis
Quarter offered
Fall, Winter, Spring
Concepts and methods for data analysis, information and scientific visualization, and effective communication of technical data. Topics include: mathematical foundations; scalar, vector, and tensor field visualization; multivariate visualization; and tree and graph visualizations. Applications are drawn from social-network analysis; environmental and space science; and medical imaging. Evaluation based on examinations, programming exercises, and a project. (Formerly CMPS 161.)
Instructor
Alex Pang, Suresh Lodha
Complements course 161. Students gain additional competence with a number of important software development tools and techniques. Included are Paraview, Visualization Toolkit (VTK), and Insight Toolkit (ITK). Students get hands-on experience with designing transfer functions, isosurfacing, direct volume rendering, vector-field visualization techniques, as well as methods for dealing with non-spatial data. (Formerly CMPS 161L.)
Instructor
Alex Pang, Suresh Lodha
Covers concepts and methods for modeling and rendering static and dynamic scenes Topics include: mathematical foundations (e.g., splines and numerical integration; global illumination models; texture mapping; morphing; physically based animation; behavioral animations; and procedural animations. Evaluation based on examinations, programming exercises, and a project. (Formerly CMPS 162.)
Instructor
Alex Pang, James Davis
Complements course 162. Students gain additional competence in a hands-on computational laboratory setting. Representative examples include topics, such as interactive curve and surface design; shaders for advanced effects; crowd and behavioral animation; experiments with particle systems; facial animation; and motion and planning. (Formerly CMPS 162L.)
Instructor
Alex Pang, James Davis
Presents the basics of open-source programming tools to perform data analysis and create interactive visualizations and maps for the web, data integrity and scraping, statistical computation, simple and novel visualizations, and geomapping. The examples are drawn from social science, public policy, and data journalism. (Formerly CMPS 165.)
Theory and hands-on practice to understand what makes user interfaces usable and accessible to diverse individuals. Covers human senses and memory and their design implications, requirement solicitation, user-centered design and prototyping techniques, and expert and user evaluations. Interdisciplinary course for social science and engineering majors. Students cannot receive credit for this course and CSE 265 or DANM 231. (Formerly Computer Engineering 131.)
Provides hands-on knowledge and experience with modern mobile computing platforms for sensing and interactions tasks. Students learn how to create usable applications on a sensor-laden, mobile computing platform with adequate level of user interface. (Formerly Computer Engineering 161.)
Instructor
Roberto Manduchi
Covers the concepts and methods needed to develop augmented reality (AR) and virtual reality (VR) applications. Topics include 3D modeling, graphics rendering, image compositing, occlusion handling, sensors, computer vision and image analysis, toolkits for AR, different display options, dynamics, interaction, and navigation. Prerequisite(s): course 160/L. Some knowledge of mobile platforms (e.g., CMPS 121 or CMPE 161) is helpful, but not required. Enrollment is by instructor permission. Enrollment is restricted to juniors and seniors. (Formerly CMPS 168.)
Instructor
Alex Pang, James Davis
Uses weekly talks by leading industry practitioners and university researchers to provide in-depth exposure to the management of technology. Topics covered include product development, operations, strategy, finance, and marketing for technologies such as software and information systems. (Formerly TIM 101.)
Quarter offered
Fall, Winter, Spring
An in-depth examination of technological, strategic, marketing, and financial methods and analytical tools for the management of technology to enable cost-effective and rapid development of profitable and high quality technologies. Includes case studies and a comprehensive project. (Formerly TIM 105.)
High-technology enterprises must understand and operate effectively within their technology-business value chains in order to maximize profitability. This course develops and applies methods and tools for the design, optimization, selection, and management of these value chain networks. (Formerly TIM 125.)
Addresses methods and tools for financing technology development and projects. Includes approaches for coordinating finance and accounting with strategy and operations of firms; discounted cash-flow analysis; activity-based costing; financial planning; and elements of financial account and investment science. (Formerly TIM 130.)
Instructor
Ramakrishna Akella
Presents decision tools/theory with a focus on investment, finance, management, technology, and policy. Often, irreversible decisions are made without enough information to analyze the possible consequences. Course uses systematic approaches to analyze these types of situations to enable rational decisions. (Formerly TIM 165.)
Analysis of effective use of information systems within a business enterprise, with emphasis on gaining a competitive advantage. Integration of information systems with business strategy, financial justification, personnel, and organizational considerations are highlighted. Intended for technology and information management majors or senior engineering majors who have a business interest. (Formerly TIM 158.)
Introduction to the concepts, approaches, tools, and methodology of database design. Covers the entity-relationship model, the relational model, relational algebra, relational calculus, commercial languages (such as SQL and QBE), functional dependencies, normal forms, and design theory. Other topics may include knowledge-bases, constraint databases, and alternative database models. Students that have taken and passed CSE 182 may not take CSE 180 for credit. (Formerly CMPS 180.)
Quarter offered
Fall, Winter, Spring
Disciplinary Communication (DC) course to be taken concurrently with course 180. Students satisfy the DC requirement by producing a database design document, a document with comments on the source code for complex queries, and a literature survey or systems survey. (Formerly CMPS 180W.)
Instructor
Phokion Kolaitis
Introduction to the architecture and implementation of database systems. Topics covered include data storage, tree and hash indexes, storage management, query evaluation and optimization, transaction management, concurrency control, recovery, and XML data management. (Formerly CMPS 181.)
Instructor
The Staff, Sheldon Finkelstein
Concepts, approaches, tools, and methodology of database design. Topics include the entity-relationship model; the relational data model; normal forms; commercial languages such as SQL (SQL constraints, SQL triggers, and update languages); query-by-example (QBE); XML data model, and XML query language (XQuery); as well as relational database-management support for XML and object-relational features in database-management systems. Involves a database -application development project. Students that have taken and passed CSE 180 cannot receive credit for CSE 182 (Formerly CMPS 182).
The World-Wde Web is one of the main mechanisms by which computer applications are delivered to users. This course introduces the design of Web applications. Students learn the main technologies involved, and build web applications as part of homework assignments and group class projects.(Formerly CMPS 183.)
Instructor
The Staff, Jim Whitehead, Luca De Alfaro, Richard Jullig
General Education Code
PR-E
Python basics; data extraction from CSV, JSON, XML, Excel, PDF, encoded text files; data cleaning, finding duplicates, missing data, fuzzy matching; data exploration, joining, aggregating, separating, correlation, clustering; web scraping, APIs, scraping data from social media, open data network. (Formerly CMPS 184.)
Writing by engineers and computer scientists, not to general audiences, but to engineers, engineering managers, and technical writers. Exercises include job application and resume, in-code documentation, algorithm description, naive-user documentation, library puzzle, survey article, proposal, progress report, formal technical report, and oral presentation. (Formerly Computer Engineering 185.)
Quarter offered
Fall, Winter, Spring, Summer
Writing and communication by computer science professionals to a technical audience. Geared toward students planning to pursue an advanced degree in computer science. Assignments include: cover letter and resume for job application, statement of purpose for graduate school application, algorithm description and analysis, user documentation, proposal preparation, critical analysis of published papers, survey of the literature, term paper, and oral presentations. (Formerly CMPS 185.)
Instructor
The Staff, Phokion Kolaitis
Quarter offered
Fall, Winter, Spring
Weekly talks by industry experts, university researchers, field practitioners, and video presentations provide an in-depth exposure to a specific or a broad area of computer science and technology. Topics include emerging ideas, opportunities, challenges, and future of the industry. (Formerly CMPS 191.)
Instructor
The Staff, Suresh Lodha, James Davis, Marilyn Walker
Students hold tutoring hours, run a lab, or lead discussion section in conjunction with a regularly offered course and under close supervision by the course's instructor. Weekly meetings with a regular faculty member to discuss teaching techniques, pedagogy, sensitivity to students' needs, maintaining a comfortable learning environment, and strategies for handling difficult situations. Students submit a report on their teaching experience. Enrollment by permission of instructor and restricted to sophomores, juniors, and seniors. (Formerly CMPS 192.)
Instructor
David Helmbold
Students hold tutoring hours, run a lab, or lead discussion section in conjunction with a regularly offered course and under close supervision by the course's instructor. Weekly meetings with a regular faculty member to discuss teaching techniques, pedagogy, sensitivity to students' needs, maintaining a comfortable learning environment, and strategies for handling difficult situations. Students submit a report on their teaching experience. Enrollment by permission of instructor and restricted to sophomores, juniors, and seniors. (Formerly CMPS 192F.)
Instructor
David Helmbold
Provides for individual programs of study with specific academic objectives carried out under the direction of a faculty member of the Computer Engineering Department and a willing sponsor at the field site using resources not normally available on campus. Credit is based on the presentation of evidence of achieving the objectives by submitting a written and oral presentation. May not be repeated for credit. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Provides for individual programs of study with specific academic objectives carried out under the direction of a faculty member of the Computer Engineering Department and a willing sponsor at the field site using resources not normally available on campus. Credit is based on the presentation of evidence of achieving the objectives by submitting a written and oral presentation. May not be repeated for credit. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
A program of independent study arranged between a group of students and a faculty member. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
A program of independent study arranged between a group of students and a faculty member. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency. Prerequisite(s): satisfaction of the Entry Level Writing and Composition requirements. Computer Engineering majors, CSE 123A or CSE 129A.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency. Consent of instructor required. Prerequisite: course 123A.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
For fourth-year students majoring in computer engineering. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
For fourth-year students majoring in computer engineering. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring