Skip to content

My personal notes and thoughts on every UCSD CSE course I've taken from 2020-2024.

Notifications You must be signed in to change notification settings

JonathanYin/UCSD-CSE-Courses

Repository files navigation

UCSD CSE Courses

My Personal Notes and Thoughts on every UCSD CSE Course I've taken

Feel free to reach out with any questions/comments. Additional notes will be uploaded as I continue my time at UCSD.

CSE 11 - Introduction to Programming and Computational Problem-Solving: Accelerated Pace

  • Greg Miranda, Fall 2020

CSE 12 - Basic Data Structures and Object-Oriented Design

  • Greg Miranda, Winter 2021

CSE 15L - Software Tools and Techniques Laboratory

  • Keith Muller, Winter 2021

CSE 30 - Computer Organization and Systems Programming

  • Keith Muller, Fall 2021
  • Weekly PAs on C and ARM64 Assembly
  • Two written midterms and one final
  • My Thoughts: The course provides a basic introduction to C and some of the more fundamental ideas behind it, including dynamic memory allocation and pointer logic.

CSE 100 - Advanced Data Structures

  • Niema Moshiri, Winter 2022
  • Weekly PAs, with two projects due biweekly
  • Midterm/final are multiple-choice/short answer exams
  • My Thoughts: Great introduction to some of the more advanced concepts/data structures (red-black trees, hashmaps, disjoint sets, etc), as well as some very fundamental algorithms (BFS/DFS, Prim/Kruskal's, Dijkstra's). Niema does a great job at making the course intuitive and interesting, and all of the assignments/tests are doable, given you keep up with the Stepik readings.

CSE 101 - Design and Analysis of Algorithms

  • Russell Impagliazzo, Spring 2022
  • Weekly homework assignments with groups of up to four students
  • Homework problems consist mainly of proofs (similar to CSE 20/21), with very few problems requiring code
  • My Thoughts: The course introduces some of the more important concepts to software engineering, including some of the algorithms/techniques essential to software OAs and interviews (divide/conquer, dynamic programming, greedy, etc). That being said, the content of the class is mostly conceptual, with nearly zero coding whatsoever, making the application of said concepts rather difficult. Can be a good start to the Leetcode grind.

CSE 105 - Theory of Computability

  • Shachar Lovett, Winter 2022
  • Weekly homework assignments with groups of up to four students
  • Problems consist of drawing FSM diagrams, constructing transition tables, and writing proofs
  • Link to YouTube videos I found helpful
  • My Thoughts: I've personally never taken CSE 20 or 21 (due to having taken the math equivalents), but I've been told the format of 105 is quite similar. Problems often involve induction or other forms of formal mathematical proof, which makes sense, as most of the course is theoretical. Some of the concepts in designing FSM and other automata can be useful in other classes (i.e. CSE 140), but Turing machines are only briefly introduced. Provides a nice introduction into how computing works and gets students thinking at a low-level, but isn't entirely necessary to modern software development.

CSE 110 - Software Engineering

  • Thomas Powell, Fall 2022
  • The entire class is essentially a quarter-long project with a team of ~10 students, with the goal being to make a full-stack web application using HTML, CSS and JS
  • Labs are assigned every week to teach concepts in HTML, CSS, JS, Jest/Puppeteer, and more
  • There are two midterms, both of which are closed-note paper exams, which test you on your understanding of software engineering concepts, basic web design ideas, and other terminology.
  • My Thoughts: I fairly enjoyed the content covered, as someone with a fair amount of experience with both front-end and back-end web development. That being said, the course doesn't go into some of the more complex aspects of web design (HTTP, REST, database systems), and every group is supposed to use local storage/Vanilla JS for their site, which is extremely unrealistic for any real-world web application. The course does, however, provide some insights into agile development and basic CI/CD which I thought were pretty helpful, but most of the actual learning is done through MDN Web Docs and Googling. Good introduction to modern web development and some of the broader concepts behind software engineering.

CSE 130 - Programming Languages: Principles and Paradigms

  • Michael Borkowski, Winter 2023
  • Weekly homework assignments consisting of lambda calculus problems, Haskell PAs, and proofs, with homework pairs allowed
  • My Thoughts: The quarter I took this class was with a new professor, but most of the content is similar to that of other iterations of this course. The focus is primarily on Haskell, a purely functional programming language and as a result, the programming assignments can get quite involved.

CSE 134B - Web Client Languages

  • Thomas Powell, Winter 2023
  • Weekly homework assignments
  • Homework problems are mainly HTML/CSS/JS exercises that require you to implement a basic website with functionality
  • My Thoughts: This class provides a pretty solid introduction to the basics of HTML, CSS, JS, and HTTP, which are almost mandatory to learning frameworks/libraries such as React, Angular, etc, or learning REST. Exams are very memorization-heavy, as they involve writing code on paper and memorizing macro-level concepts on web development.

CSE 135 - Online Database Analytics Applications

  • Thomas Powell, Spring 2023
  • Biweekly homework assignments with groups of up to three students
  • Homework involves writing scripts on an Apache2 server implementing various server-side/database functionality
  • My Thoughts: Taking CSE 134B should more or less be a prerequisite for this course, since working with HTTP calls, browser, etc is all necessary in order to do server-side well. The class doesn't go over databases too in-depth, but it does cover a variety of server-side langauges including Node.js/Express, PHP, Perl, JSP, and more.

CSE 140 - Components and Design Techniques for Digital Systems

  • John Eldon, Fall 2022
  • Grade solely based off of two midterms and a final exam
  • No mandatory homework, but textbook readings were helpful
  • My Thoughts: The class was very unorganized when I took it, with lectures consisting of a myriad of different topics combined together in one incoherent, unstructured mess. The content of the course doesn't really go too deep into any particular topics, but some of the more important concepts were sequential logic circuits and finite state machines.

CSE 140L - Digital Systems Laboratory

  • John Eldon, Fall 2022
  • Grade consists of five labs on SystemVerilog, which you can work on in a group of up to three students
  • Having a Windows device is pretty much mandatory for this class, due to the use of Questa/ModelSim for simulation and Quartus for synthesis (trust me, you do not want to use EDAPlayground).
  • My Thoughts: I'd definitely advise working in a group for this class, since although the earlier labs can be done solo, the amount of work and level of understanding needed starts to ramp up for the last few. Office hours are also very helpful, since TAs can help with debugging the more elusive errors.

CSE 150B - Introduction to Artificial Intelligence: Search and Reasoning

  • Sicun Gao, Spring 2023
  • Five biweekly programming assignments in Python/Pygame, implementing search algorithms, 2048, Blackjack, Gomoku, and Sudoku
  • Final is a 32hr take-home exam
  • My Thoughts: I will start by saying that Professor Gao is one of the best professors that I've had in the CSE department. His lectures manage to break down unintuitive, math-heavy, theoretical concepts and algorithms into understandable terminology/jargon for undergraduate students, which is something that cannot be said for a lot of professors in less-involved disciplines. The goal of the class is to go through the algorithms behind the game Gomoku

CSE 182 Biological Databases

  • Vineet Bafna, Spring 2023
  • Biweekly programming assignments using any language of your choice (Python preferred), implmenting various algorithms and functions for DNA sequencing and manipulation
  • Free-response midterm and final exams
  • My Thoughts: As someone with almost zero background in biology, this class proved to be a bit challenging in regards to the biology knowledge expected of students taking the class. CSE 100 and CSE 101 cover a lot of the concepts behind much of the content in the class (Aho-Corasick Automaton, Divide and Conquer, Dynamic Programming, etc).

About

My personal notes and thoughts on every UCSD CSE course I've taken from 2020-2024.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages