This page documents my academic journey through various courses, including my understanding, experiences, and projects completed during these courses. Filter by Institution: All | Stanford | UW-Madison Home | Research | Projects | Blog | Courses | Ask Me Summer 2025Institution: Stanford University CS 107: Computer Organization and SystemsInstructor: Adam Keppler and Ola Adekola | TA: Ben Yan Grade: A+ (99/100) Course DescriptionA comprehensive systems programming course covering the fundamentals of computer organization, including data representation, machine-level programming, memory management, and security vulnerabilities. Key Projects & Contributions
Key Learnings
ReflectionCS 107 was my favorite course of Summer 2025 at Stanford. The combination of theoretical knowledge and hands-on implementation gave me a deep understanding of how computers work at the lowest levels. The heap allocator assignment was particularly rewarding—I completed all challenge functions and created a bidirectional free list implementation that significantly improved allocation efficiency. The security assignment inspired me to explore real-world vulnerabilities, leading to my discovery of issues in Stanford's AFS system. Working with the teaching team on responsible disclosure was an invaluable learning experience. CS 161: Design and Analysis of AlgorithmsInstructor: Matthew Sotoudeh Grade: A (93/100) Course DescriptionFundamental algorithmic concepts including sorting algorithms, search trees, heaps, and hashing. Divide-and-conquer, dynamic programming, and greedy algorithm design paradigms. Graph algorithms including traversal, shortest paths, minimum spanning trees, and network flows. Emphasis on asymptotic and amortized analysis. Key Learnings
Projects Inspired by This Course
ReflectionCS 161 transformed how I think about algorithm design and analysis. Before this course, I was confused about how to measure and compare different algorithms systematically. The course taught me the philosophy of evaluating algorithms analytically rather than empirically, breaking down complexity into inputs, internal decisions, and data structure operations. Matthew Sotoudeh's comprehensive teaching and excellent written materials made complex topics accessible. His practice of repeating student questions ensured everyone could follow along, which was particularly helpful in such a fast-paced course. Fall 2025 Semester (Current)Institution: University of Wisconsin–Madison COMP SCI 352: Digital System FundamentalsInstructor: TBD Course DescriptionLogic components, Boolean algebra, combinational circuits, circuit simplification. Decoders and multiplexers, arithmetic and logic units. Flip-flops, state machines, design and implementation of sequential logic circuits. Introduction to computer organization. Topics Covered
COMP SCI 354: Machine Organization and ProgrammingInstructor: TBD Course DescriptionAn introduction to fundamental structures of computer systems and the C programming language with a focus on the low-level interrelationships and impacts on performance. Topics include the C programming language, data representation, memory management, caching, pipelining, system-level I/O, and concurrency. Topics Covered
COMP SCI 400: Programming IIIInstructor: TBD → View CS400 Course Page with Materials & Assignments Course DescriptionAdvanced programming concepts including abstract data types, algorithm complexity analysis, and advanced data structures. Emphasis on team-based software development, version control, and collaborative programming practices. Topics Covered
Group Project StructureProjects in CS400 emphasize practical experience with tools and algorithms while developing communication and collaboration skills. Each student is graded individually on their specific contributions, with support from both team members and a larger group working on similar projects. Spring 2025 SemesterInstitution: University of Wisconsin–Madison COMP SCI 200: Programming IInstructor: Professor Jim Williams Course DescriptionAn introductory programming course focusing on fundamental concepts using Java. Key Learnings
public class Student {
private String name;
private int age;
private double gpa;
public Student(String name, int age) {
this.name = name;
this.age = age;
this.gpa = 0.0;
}
public void updateGPA(double newGPA) {
if (newGPA >= 0.0 && newGPA <= 4.0) {
this.gpa = newGPA;
}
}
public String getStatus() {
if (gpa >= 3.5) return "Dean's List";
if (gpa >= 2.0) return "Good Standing";
return "Academic Warning";
}
}
ReflectionWhile the material was relatively straightforward, the discussion sections proved to be the most valuable aspect of the course. The opportunity to assist classmates not only reinforced my own understanding but also deepened my appreciation for programming fundamentals. Professor Williams' teaching style was particularly effective - engaging, clear, and well-paced. This experience has inspired me to consider becoming a TA for this course in the future. E C E 252: Introduction to Computer EngineeringInstructor: Professor Bhuvana Krishnaswamy Course DescriptionA foundational course in computer organization and low-level computing concepts. Key Learnings
;************************************
; Multiples two numbers AxB
;
; Parameters
; R0 - A
; R1 - B
;Returns
; R0 - AxB
;************************************
MULT
ST R2, MULT_R2
AND R2, R2, #0
ADD R1, R1, #0
BRp MULT_LOOP
AND R0, R0, #0
BR END_SUB
MULT_LOOP
ADD R2, R2, R0
ADD R1, R1, #-1
BRp MULT_LOOP
ADD R0, R2, #0
LD R2, MULT_R2
END_SUB
RET
MULT_R2 .BLKW 1
.END
ReflectionThis was my favorite course of the semester. The exploration of assembly language and low-level computing concepts provided a fascinating insight into how computers operate at their core. The course structure, featuring one lecture and two group-based discussion sections weekly, effectively reinforced the material. This experience has motivated me to pursue COMP SCI 352: Digital System Fundamentals and COMP SCI 552: Introduction to Computer Architecture in future semesters. MATH 340: Elementary Matrix and Linear AlgebraInstructor: Professor Ruhui Jin Course DescriptionAn advanced mathematics course covering matrix operations and linear algebra concepts. Key Learnings
ReflectionThis intellectually stimulating course provided a deeper understanding of mathematical structures. The concepts of linear transformations have significantly enhanced my understanding of neural network architectures, like Transformers. While I'm performing well academically, I recognize the need for further study to fully grasp the interconnections between concepts. COMP SCI 240: Introduction to Discrete MathematicsInstructor: Professor Mitch Keller Course DescriptionA course covering fundamental discrete mathematics concepts and their applications in computer science. Key Learnings
ReflectionThis was the most challenging course of the semester, primarily due to the abstract nature of the content. While I understand the importance of these concepts for data structures and algorithms, I found it difficult to maintain motivation for some of the more theoretical aspects. I hope to gain a deeper appreciation of these concepts through their application in future advanced CS courses. Overall Semester ReflectionThis semester has been transformative in several ways:
While not all subjects resonated equally, each course has contributed to shaping my academic path and future interests. I'm particularly excited about pursuing further studies in computer architecture and systems, while continuing to build on my mathematical foundation for machine learning applications. Note: This page is continuously updated as I progress through my academic journey. Feel free to clone my template Xuming Huang |