Everything I Learned at UCSB

Last updated: 2020-08-25

(the article is incomplete)

I did my Computer Science B.S. at UC Santa Barbara, with a minor is statistics. Graduated in June 2018, Summa Cum Laude (Highest distinction, top 2.5%). Dean’s Honors list 10 times.

Here goes.


Summer 2014

Since I wasn’t doing much with my summer anyway, I enrolled for Freshman Summer Start Program (FSSP).

CMPSC 8 - Intro to Computer Science

Introduction to computer program development for students with little to no programming experience. Basic programming concepts, variables and expressions, data and control structures, algorithms, debugging, program design, and documentation.

Fall 2014

AS AM 2 - American Migration Since 1965: Asians and others in the United States

An examination of central themes in immigration law and policy, especially after the Immigration Act of 1965. The class focuses on Asian immigrants, but covers immigration trends comparatively. Topics include economic integration, interracial conflict, subsequent immigration reforms and their consequences.

CMPSC 16 - Problem Solving with Computers I

Fundamental building blocks for solving problems using computers. Topics include basic computer organization and programming constructs: memory CPU, binary arithmetic, variables, expressions, statements, conditionals, iteration, functions, parameters, recursion, primitive and composite data types, and basic operating system and debugging tools.

MATH 4A - Linear Algebra with Applications

Systems of linear equations, matrix algebra, determinants, vector spaces and subspaces, basis and dimension, linear transformations, eigenvalues and eigenvectors, diagonalization, and orthogonality.

Winter 2014

CMPSC 24 - Problem Solving with Computers II

Intermediate building blocks for solving problems using computers. Topics include data structures, object-oriented design and development, algorithms for manipulating these data structures and their runtime analyses. Data structures introduced include stacks, queues, lists, trees, and sets.

MATH 6A - Vector Calculus with Applications, First Course

Calculus of functions of several variables, vector-valued functions of one variable, scalar and vector fields, integration along paths, double and triple integrals, integration over surfaces, properties, and applications of integrals, and classical integration theorems of vector calculus.

MUS 11

The study of notes, scales, triads, inversions, rhythm, harmony, and musical terminology. Laboratory activities include keyboard orientation, sight singing, and ear training.

PHYS 1

Introduction to classical mechanics for students in engineering and the physical sciences. Measurement, units, and foundations of physics; vectors; kinematics; circular motion; forces, mass, and Newton’s laws; center of mass; momentum; work and energy; conservation laws; collisions; rotational kinematics.

Spring 2015

CMPSC 32 - Object Oriented Design and Implementation

Advanced topics in object-oriented computing. Topics include encapsulation, data hiding, inheritance, polymorphism, compilation, linking and loading, memory management, and debugging; recent advances in design and development tools, practices, libraries, and operating system support.

MATH 4B - Differential Equations

First and second order differential equations, separation of variables, linear differential equations, systems of first order equations, nonlinear differential equations and stability.

PHYS 2

Rotational dynamics and angular momentum; equilibrium and elasticity; periodic motion including LRC electrical circuits; gravitation; fluid mechanics; temperature; thermal expansion; heat and the first law of thermodynamics; heat conduction; kinetic theory of gases; entropy and the second law; heat engines.

PSTAT 120A - Probability and Statistics

Concepts of probability; random variables; combinatorial probability; discrete and continuous distributions; joint distributions, expected values; moment generating functions; law of large numbers and central limit theorems.

Summer 2015

CMPSC 40 - Foundations of Computer Science

Introduction to the theoretical underpinnings of computer science. Topics include propositional predicate logic, set theory, functions and relations, counting, mathematical induction and recursion (generating functions).

WRIT 50

A writing course addressing the analytical skills underlying the research processes of various academic and professional communities. Sections vary in topic and disciplinary emphasis.


Fall 2015

CMPSC 64 - Computer Organization and Logic Design

Assembly language programming and advanced computer organization; Digital logic design topics including gates, combinational circuits, flip-flops, and the design and analysis of sequential circuits.

CMPSC 56

Advanced application programming using a high-level, virtual-machine-based language. Topics include generic programming, exception handling, programming language implementation; automatic memory management, & application development, management, & maintenance tools; event handling, concurrency & threading, & advanced library use.

PHYS 3

Mechanical waves, wave interference and normal modes, sound and hearing, electric field, Gauss’s law, electric potential, capacitance and dielectrics, current, resistance, electromotive force, DC circuits.

PHYS 3L

Introductory laboratory emphasizing periodic motion, sound and basic electronics.

PSTAT 120B - Probability and Statistics

Distribution of sample mean and sample variance; t, chi-squared and F distributions; summarizing data by statistics and graphs; estimation theory for single samples: sufficiency, efficiency, consistency, method of moments, maximum likelihood; hypothesis testing: likelihood ratio test; confidence intervals.

Winter 2016

CMPSC 130A - Data Structures and Algorithms I

The study of data structures and their applications. Correctness proofs and techniques for the design of correct programs. Internal and external searching. Hashing and height balanced trees. Analysis of sorting algorithms. Memory management. Graph traversal techniques and their applications.

CMPSC 111 - Introduction to Computational Science

Introduction to computational science, emphasizing basic numerical algorithms and the informed use of mathematical software. Matrix computation, systems of linear and nonlinear equations, interpolation and zero finding, differential equations, numerical integration. Students learn and use the Matlab language.

CMPSC 48

Team-based project development. Topics include software engineering and professional development practices, interface design, advanced library support; techniques for team-oriented design and development, testing and test-driven development, and software reliability and robustness. Students present and demonstrate final projects.

COMM 1

An introduction to the basic concepts and principles in the field of communication. Contexts include intrapersonal, interpersonal, intercultural, public, small group, organizational, and mass communication.

Spring 2016

CMPSC 154 - Computer Architecture

Introduction to the architecture of computer systems. Topics include: central processing units, memory systems, channels and controllers, peripheral devices, interrupt systems, software versus hardware tradeoffs.

CMPSC 138 - Automata and Formal Languages

Formal languages; finite automata and regular expressions; properties of regular languages; pushdown automata and context-free grammars; properties of context-free languages; introduction to Turing machines and computability.

CMPSC 165B - Machine Learning

Covers the most important techniques of machine learning (ML) and includes discussions of: well-posed learning problems; artificial neural networks; concept learning and general to specific ordering; decision tree learning; genetic algorithms; Bayesian learning; analytical learning; and others.


Fall 2016

CMPSC 160 - Translation of Programming Languages

Study of the structure of compilers. Topics include: lexical analysis; syntax analysis including LL and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools.

CMPSC 176A - Introduction to Computer Communication Networks

Basic concepts in networking, the OSI model, error detection codes, flow control, routing, medium access control, and high-speed networks.

EARTH 7

The origin and diversification of dinosaurs, including birds. Survey of evolutionary relationships within the group, and between the major groups of vertebrates. Broad introduction including anatomy, geography, climate, and vertebrate contemporaries.

PSTAT 126 - Regression Analysis

Linear and multiple regression, analysis of residuals, transformations, variable and model selection including stepwise regression, and analysis of covariance. The course will stress the use of computer packages to solve real-world problems.

Winter 2017

CMPSC 130B - Data Structures and Algorithms II

Design and analysis of computer algorithms. Correctness proofs and solution of recurrance relations. Design techniques; divide and conquer, greedy strategies, dynamic programming, branch and bound, backtracking, and local search. Applications of techniques to problems from several disciplines. NP - completeness.

CMPSC 178 - Introduction to Cryptography

An introduction to the basic concepts and techniques of cryptography and cryptanalysis. Topics include: The Shannon Theory, classical systems, the enigma machine, the data encryption standard, public key systems, digital signatures, file security.

PSTAT 131 - Data Mining (now fashionably renamed to “Introduction to Statistical Machine Learning”)

Statistical Machine Learning is used to discover patterns and relationships in large data sets. Topics will include: data exploration, classification and regression tress, random forests, clustering and association rules. Building predictive models focusing on model selection, model comparison and performance evaluation. Emphasis will be on concepts, methods and data analysis; and students are expected to complete a significant class project, individual or team based, using real-world data.

Spring 2017

CMPSC 170 - Operating Systems

Basic concepts of operating systems. The notion of a process; interprocess communication and synchronization; input-output, file systems, memory management.

CMPSC 171 - Distributed Systems

Distributed systems architecture, distributed programming, network of computers, message passing, remote procedure calls, group communication, naming and membership problems, asynchrony, logical time, consistency, fault-tolerance, and recovery.

PSY 103

Covers the concepts, theory, and research within psychopathology. Focuses on the concepts of mental illness and mental disorder, including diagnosis, causes, and treatments. Topics may include: exploration of the cultural influences, and social consequences of current and historical definitions of mental disorders.


Fall 2017

CMPSC 177 - Computer Security

Introduction to the basics of computer security and privacy. Analysis of technical difficulties of producing secure computer information systems that provide guaranteed controlled sharing. Examination and critique of current systems, methods, certification.

CMPSC 174A - Fundamentals of Database Systems

Database system architectures, relational data model, relational algebra, relational calculus, SQL, QBE, query processing, integrity constraints (key constraints, referential integrity), database design, ER and object- oriented data model, functional dependence, lossless join and dependency preserving decompositions, Boyce-Codd and Third Normal Forms.

ENGR 101

The nature of moral value, normative judgment and moral reasoning. Theories of moral value. The engineer’s role in society. Ethics in professional practice. Safety, risk, responsibility. Morality and career choice. Code of ethics. Case studies facilitate the comprehension of the concepts introduced.

MUS 114

A survey of the relationships between music and popular culture in America. Music to be discussed includes blues, jazz, and rock, as well as classical music. Emphasis is on cultural, rather than technical aspects of music.

PSTAT 296A

Introduction to research skills. Discussion of current research trends, writing literature reviews etc. Students will be required to present material reflecting their interests in actuarial science, which will be critically appraised for both content and presentation. Emphasis will be placed on aiding students to acquire a high-level of professionalism.

Winter 2018

CMPSC 140 - Parallel Scientific Computing

Fundamentals of high performance computing and parallel algorithm design for numerical computation. Topics include parallel architectures and clusters, parallel programming with message-passing libraries and threads, program parallelization methodologies, parallel performance evaluation and optimization, parallel numerical algorithms and applications with different performance tradeoffs.

PSTAT 194 - Spark Programming

This course will focus on using Spark for big data analytics. The fundamental data types and concepts will be covered (e.g., resilient distributed datasets, DataFrames, MapReduce). A large component of the course will be using Spark’s library for machine learning, MLlib.

PSTAT 298B

Introduction to research opportunities. Planning, organizing and managing projects; quality and time management. Students will complete projects on topics of their interest in the areas of actuarial science and financial mathematics. A written report will be required.

Spring 2018

EARTH 4

An introduction to oceanography covering the major physical, chemical, and geological features of the oceans, their role in Earth history, and potential use as a natural resource. Lab and lecture.

PHIL 20C

From the Empiricists and Kant.

TMP 111

Lecture series where entrepreneurial, technological, business, and governmental leaders share their lessons of experience and discuss current business issues. For anyone interested in entrepreneurship, management, technology development, and commercialization and the impact that innovation has on society


Conclusion

I learned a lot at UCSB


Sources: