The following is a list of science and engineering coursework I completed at UCSD:

## Computer Science

**CSE 8A. Introduction to Computer Science: Java (4)**- Basic Unix. Basics of Java language. Classes, methods, and parameters. Modularity and abstraction. Documentation techniques. Testing and verification techniques. Basic Inheritance. Event driven programming. Programming with AWT library or other similar library.

**CSE 8B. Introduction to Computer Science: Java (4)**- Continuation of the Java language. Continuation of programming techniques. More on Inheritance. Exception handling.

**CSE 12. Basic Data Structures and Object-Oriented Design (4)**- Basic data structures including stacks, queues, lists, binary trees, hash tables. Basic object-oriented design including encapsulation, polymorphism, classes as the implementation of abstract data types. Memory management, pointers, recursion, and big-o notation. Uses the C/C++ and Java programming language.

**CSE 20. Introduction to Discrete Mathematics (4)**- Basic discrete mathematical structure: sets, relations, functions, sequences, equivalence relations, partial orders, and number systems. Methods of reasoning and proofs: propositional logic, predicate logic, induction, recursion, and pigeonhole principle. Infinite sets and diagonalization. Basic counting techniques; permutation and combinations. Applications will be given to digital logic design, elementary number theory, design of programs, and proofs of program correctness.

**CSE 30. Computer Organization and Systems Programming (4)**- 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.

**CSE 100. Advanced Data Structures (4)**- Descriptive and analytical presentation of data structures and algorithms. Lists, tables, priority queues, disjoint subsets, and dictionaries data types. Data structuring techniques include linked lists, arrays, hashing, and trees. Performance evaluation involving worst case, average and expected case, and amortized analysis.

**CSE 101. Design and Analysis of Algorithms (4)**- Design and analysis of efficient algorithms with emphasis of non-numerical algorithms such as sorting, searching, pattern matching, and graph and network algorithms. Measuring complexity of algorithms, time and storage. NP-complete problems.

**CSE 105. Theory of Computability (4)**- An introduction to the mathematical theory of computability. Formal languages. Finite automata and regular expression. Push-down automata and context-free languages. Computable or recursive functions: Turing machines, the halting problem. Undecidability.

**CSE 120. Principles of Computer Operating Systems (4)**- This course introduces the basic concepts used to structure computer operating systems. Examples of notions introduced and discussed are batch processing, multiprogramming, input/output, pooling, interrupt handling, processes, descriptors, process synchronization, interprocess communication, memory management, virtual memory, caching, buffers, naming, files, interactive command interpreters, and processor scheduling.

**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.

**CSE 131A. Compiler Construction I (4)**- Introduction to the compilation of programming languages, principles and practice of lexical and syntactic analysis, error analysis, syntax-directed translation, and type checking.

**CSE 131B. Compiler Construction II (4)**- Principles and practice for the design and implementation for the back-end of translators for programming languages, symbol tables, syntax-directed translation, code generation, optimization, and compiler structure.

**CSE 140. Components and Design Techniques for Digital Systems (4)**- Design of Boolean logic and finite state machines; two-level, multi-level combinational logic design, combinational modules and modular networks, Mealy and Moore machines, analysis and synthesis of canonical forms, sequential modules.

**CSE 140L. Digital Systems Laboratory (2)**- Implementation with computer-aided design tools for combinational logic minimization and state machine synthesis. Hardware construction of a small digital system.

**CSE 141. Introduction to Computer Architecture (4)**- Introduction to computer architecture. Computer system design. Processor design. Control design. Memory systems.

**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.

**CSE 167. Computer Graphics (4)**- Representation and manipulation of pictorial data. Two-dimensional and three-dimensional transformations, curves, surfaces. Projection, illumination, and shading models. Raster and vector graphic I/O devices; retained-mode and immediate-mode graphics software systems and applications.

**CSE 171. User Interface Design (4)**- Explores usability, representation and coordination issues in user interface design with some focus on distributed cooperative work, semiotics, and the interplay between socio-cognitive and technical issues.

**CSE 195. Teaching (4)**- Teaching and tutorial assistance in a CSE course under the supervision of the instructor.

**CSE 197. Field Study in Computer Science and Engineering (4)**- Directed study and research at laboratories away from the campus.

**CSE 199. Independent Study for Undergraduates (4)**- Independent reading or research by special arrangement with a faculty member.

## Electrical Engineering

**53A. Fundamentals of Electrical Engineering I (4)**- This is a coordinated lecture and laboratory course for students majoring in other branches of science and engineering. It covers analysis and design of passive and active circuits. The course emphasizes problem-solving and laboratory work on passive circuits.

**53B. Fundamentals of Electrical Engineering II (4)**- This is a coordinated lecture and laboratory course for students majoring in other branches of science and engineering. It covers analog and digital systems and active circuit design. Laboratory work will include operational amplifiers, diodes and transistors.

**101. Linear Systems Fundamentals (4)**- Complex variables. Singularities and residues. Signal and system analysis in continuous and discrete time. Fourier series and transforms. Laplace and z-transforms. Linear Time Invariant Systems. Impulse response, frequency response, and transfer functions. Poles and zeros. Stability. Convolution. Sampling. Aliasing.

**102. Introduction to Active Circuit Design (4)**- Nonlinear active circuits design. Nonlinear device models for diodes, bipolar and field-effect transistors. Linearization of device models and small signal equivalent circuits. Circuit designs will be simulated by computer and tested in the laboratory.

**108. Digital Circuits (4)**- Digital integrated electronic circuits for processing technologies. Analytical methods for static and dynamic characteristics. MOS field-effect transistors and bipolar junction transistors, circuits for logic gates, flip-flop, data paths, programmable logic arrays, memory elements.

**111. Advanced Digital Design Project (4)**- Advanced topics in digital circuits and systems. Use of computers and design automation tools. Hazard elimination, synchronous/asnychronous FSM synthesis, synchronization and arbitration, pipelining and timing issues. Problem sets and design exercises. A large-scale design project. Simulation and/or rapid prototyping.

**161A. Introduction to Digital Signal Processing (4)**- Review of discrete-time systems and signals, Discrete-Time Fourier Transform and its properties, the Fast Fourier Transform, design of Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) filters, implementation of digital filters.

## Physics

**2A. Physics–Mechanics (4)**- A calculus-based science-engineering general physics course covering vectors, motion in one and two dimensions, Newton’s first and second laws, work and energy, conservation of energy, linear momentum, collisions, rotational kinematics, rotational dynamics, equilibrium of rigid bodies, oscillations, gravitation.

**2B. Physics–Electricity and Magnetism (4)**- Continuation of Physics 2A covering charge and matter, the electric field, Gauss’s law, electric potential, capacitors and dielectrics, current and resistance, electromotive force and circuits, the magnetic field, Ampere’s law, Faraday’s law, inductance, electromagnetic oscillations, alternating currents and Maxwell’s equations.

**2BL. Physics Laboratory–Mechanics and Electrostatics (2)**- One hour lecture and three hours’ laboratory. Experiments include gravitational force, linear and rotational motion, conservation of energy and momentum, collisions, oscillations and springs, gyroscopes. Experiments on electrostatics involve charge, electric field, potential, and capacitance. Data reduction and error analysis are required for written laboratory reports.

**2C. Physics–Fluids, Waves, Thermodynamics, and Optics (4)**- Continuation of Physics 2B covering fluid mechanics, waves in elastic media, sound waves, temperature, heat and the first law of thermodynamics, kinetic theory of gases, entropy and the second law of thermodynamics, Maxwell’s equations, electromagnetic waves, geometric optics, interference and diffraction.

**2D. Physics–Relativity and Quantum Physics (4)**- A modern physics course covering atomic view of matter, electricity and radiation, atomic models of Rutherford and Bohr, relativity, X-rays, wave and particle duality, matter waves, Schrþdinger’s equation, atomic view of solids, natural radioactivity.

## Math

**20B. Calculus for Science and Engineering (4)**- Integral calculus of one variable and its applications, with exponential, logarithmic, hyperbolic, and trigonometric functions. Methods of integration. Polar coordinates in the plane.

**21C. Calculus and Analytic Geometry for Science and Engineering (4)**- Vector geometry, vector functions and their derivatives. Partial differentiation. Maxima and minima. Double integration.

**21D. Introduction to Differential Equations (4)**- Infinite series. Ordinary differential equations: exact, separable, and linear; constant coefficients, undetermined coefficients, variations of parameters. Series solutions. Systems, Laplace transforms, technique for engineering sciences. Computing symbolic and graphical solutions using Matlab.

**20F. Linear Algebra (4)**- Matrix algebra, solution of systems of linear equations by Gaussian elimination, determinants. Linear and affine subspaces, bases of Euclidean spaces. Eigenvalues and eigenvectors, quadratic forms, orthogonal matrices, diagonalization of symmetric matrices. Applications. Computing symbolic and graphical solutions using Matlab.

**15B. Mathematics for Algorithm and Systems (4)**- This course introduces mathematical tools for the qualitative and quantitative analysis of algorithms and computer systems. Topics to be covered include basic enumeration and counting techniques; recurrence relations; graph theory; asymptotic notation; elementary applied discrete probability.