Classes

I’m a junior/third year at MIT studying computer science.

I spent my first year (fall 22, spring 23) at the University of Manchester, then transferred to MIT.

Fall 2022

Math Foundation and Analysis Covered logical statements and proof techniques, set theory, complex numbers, functions (including composition and inversion), sequences (convergence and limits), and real-valued functions (continuity and limits).
Introduction to Programming 1 Covered fundamental concepts including variables, types, iteration, selection, file handling, functions, packages, libraries, graphics, key binding, validation, exceptions, and basic algorithms. Focused on writing, optimizing, and debugging Python code, developing logical problem-solving skills, and object-oriented programming principles.
Linear Algebra Covered matrix operations, special matrix classes, solving linear systems, determinants, eigenvalues, eigenvectors, linear independence, basis, linear transformations, inner products, norms, and isometries.
First Year Project Focused on developing non-technical skills through team-based projects. Covered teamwork, communication, reflection, self-organization, time management, and independent learning. Worked on understanding ethical frameworks in computer science, intellectual property issues, and developing a web-based information system. Emphasized inquiry-based learning, group work, goal-setting, and project management. Included technical presentations, report writing, and reflection on professional development.

Spring 2023

Probability 1 Introduced core probability concepts including probability spaces, conditional probability, independence, and discrete/continuous random variables. Covered classical distributions (Binomial, Geometric, Poisson, Normal, Exponential), expectation/variance calculations, and foundational theorems like the Central Limit Theorem and Law of Large Numbers. Emphasized modeling real-world randomness and applying distributions to scenarios like coin flips, waiting times, and sums of variables.
Introduction to Programming 2 This course covered advanced Java programming, focusing on object-oriented design, UML class design, inheritance, polymorphism, interfaces, and abstraction. Included Java Collections Framework, custom data structures, JavaFX for GUI development, file I/O, error handling, generics, streams, concurrency, and package management.
Data Science Introduced the data science process, focused on data cleaning, exploration, and visualization using Python tools like NumPy, Pandas, and Jupyter Notebooks. It covered uncertainty measurement, statistical thinking, Bayesian reasoning, and ethical considerations in data analysis. Students learned machine learning basics, including classification, regression, model evaluation, and techniques like naive Bayes and logistic regression, with practical applications such as building an email spam filter.
Introduction to ODEs Introduced ordinary differential equations (ODEs), covered classification, analytical solution methods for first and second-order ODEs, and approximate techniques (graphical, numerical, Euler method). Emphasized applications in various fields like Newtonian mechanics, population models, economics, and biology. Learned to classify ODEs, assess solution existence/uniqueness, apply analytical techniques, perform phase plane analysis for first-order systems, and interpret numerical approximations for initial value problems.
First Year Project Focused on developing non-technical skills through team-based projects. Covered teamwork, communication, reflection, self-organization, time management, and independent learning. Worked on understanding ethical frameworks in computer science, intellectual property issues, and developing a web-based information system. Emphasized inquiry-based learning, group work, goal-setting, and project management. Included technical presentations, report writing, and reflection on professional development.

Fall 2023

Fundamentals of Programming Introduced fundamental concepts of programming. Developed skills in applying basic methods from programming languages to abstract problems. Topics included programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion.
Lab component consisted of software design, construction, and implementation of design.
Introduction to Algorithms Introducted mathematical modeling of computational problems, common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasized the relationship between algorithms and programming, and introduced basic performance measures and analysis techniques for these problems.
Probability and Random Variables Probability spaces, random variables, distribution functions. Binomial, geometric, hypergeometric, Poisson distributions. Uniform, exponential, normal, gamma and beta distributions. Conditional probability, Bayes theorem, joint distributions. Chebyshev inequality, law of large numbers, and central limit theorem.
Calculus II Calculus of several variables. Vector algebra in 3-space, determinants, matrices. Vector-valued functions of one variable, space motion. Scalar functions of several variables: partial differentiation, gradient, optimization techniques. Double integrals and line integrals in the plane; exact differentials and conservative fields; Green’s theorem and applications, triple integrals, line and surface integrals in space, Divergence theorem, Stokes’ theorem; applications.
Introductory Biology Introduction to fundamental principles of biochemistry, molecular biology and genetics for understanding the functions of living systems. Covered examples of the use of chemical biology, the use of genetics in biological discovery, principles of cellular organization and communication, immunology, cancer, and engineering biological systems. Included 21st-century molecular genetics in understanding human health and therapeutic intervention.
Principles of Chemical Science Introduction to chemistry, with emphasis on basic principles of atomic and molecular electronic structure, thermodynamics, acid-base and redox equilibria, chemical kinetics, and catalysis. Introduction to the chemistry of biological, inorganic, and organic molecules.
Writing and Experience Acting as participant-observers, investigated MIT’s history and culture through visits to the Institute’s archives and museums, relevant readings, and depictions of MIT in popular culture.

Spring 2024

Software Construction Introduced fundamental principles and techniques of software development: how to write software that is safe from bugs, easy to understand, and ready for change. Topics included specifications and invariants; testing, test-case generation, and coverage; abstract data types and representation independence; design patterns for object-oriented programming; concurrent programming, including message passing and shared memory concurrency, and defending against races and deadlock; and functional programming with immutable data and higher-order functions. Included weekly programming exercises and larger group programming projects.
Design and Analysis of Algorithms Techniques for the design and analysis of efficient algorithms, emphasized methods useful in practice. Topics included sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics included network flow; polynomial and matrix calculations; caching; and parallel computing.
Introduction to Low-level Programming in C and Assembly Introduction to C and assembly language. Studied the C language, focusing on memory and associated topics including pointers, how different data structures are stored in memory, the stack, and the heap in order to build a strong understanding of the constraints involved in manipulating complex data structures in modern computational systems. Studied assembly language to facilitate a firm understanding of how high-level languages are translated to machine-level instructions.
Introduction to Machine Learning Introduction to the principles and algorithms of machine learning from an optimization perspective. Topics included linear and non-linear models for supervised, unsupervised, and reinforcement learning, with a focus on gradient-based methods and neural-network architectures.
The Meaning of Life Examined how a variety of cultural traditions propose answers to the question of how to live a meaningful life. Considered the meaning of life, not as a philosophical abstraction, but as a question that individuals grapple with in their daily lives, facing difficult decisions between meeting and defying cultural expectations. Provided tools for thinking about moral decisions as social and historical practices, and encouraged comparison and contextualizaiton of the ways people in different times and places approach fundamental ethical concerns.

Fall 2024

Theory of Computation Computability and computational complexity theory. Regular and context-free languages. Decidable and undecidable problems, reducibility, recursive function theory. Time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.
Art, Craft, Science Examined how people learn, practice, and evaluate traditional and contemporary craft techniques. Social science theories of design, embodiment, apprenticeship learning, skill, labor, expertise, and tacit knowledge were used to explore distinctions among art, craft, and science. Discussed the commoditization of craft into market goods, collectible art, and tourism industries. Ethnographic and historical case studies included textiles, Shaker furniture, glassblowing, quilting, cheesemaking, industrial design, home and professional cooking, factory and laboratory work, CAD/CAM. Included demonstrations, field trips, and hands-on craft projects.
Anthropology of Sound Examined the ways humans experience sound and how perceptions and technologies of sound emerge from cultural, economic, and historical worlds. Considered how the sound/noise/music boundaries have been imagined, created, and modeled across sociocultural and historical contexts. Learned how environmental, linguistic, and musical sounds are construed cross-culturally as well as the rise of telephony, architectural acoustics, sound recording, multi-channel and spatial mix performance, and the globalized travel of these technologies. Questions of sound ownership, property, authorship, remix, and copyright in the digital age were also addressed.
Negotiation and Influence Skills for Technical Leaders Focused around the premise that the abilities to negotiate with, and influence others, are essential to being an effective leader in technology rich environments. Provided underlying principles and a repertoire of negotiation and influence skills that apply to interpersonal situations, particularly those where an engineer or project leader lacks formal authority over others in delivering results. Utilized research-based approaches through the application of multiple learning methods, including experiential role plays, case studies, assessments, feedback, and personal reflections. Concepts such as the zone of possible agreements, best alternative to negotiated agreements, and sources of influence were put into practice.
Entrepreneurial Negotiation Combined negotiation exercises and in-person lectures designed to empower budding entrepreneurs with negotiation techniques to protect and increase the value of their ideas, deal with ego and build trust in relationships, and navigate entrepreneurial bargaining under constraints of economic uncertainty and complex technical considerations. Completed scheduled weekly assignments, including feedback memos to counterpart negotiators, and met to discuss and reflect on their experiences with the course.
Introduction to Urban Design and Development Examined the evolving structure of cities and the way that cities, suburbs, and metropolitan areas can be designed and developed. Surveyed the ideas of a wide range of people who have addressed urban problems. Stressed the connection between values and design. Demonstrated how physical, social, political and economic forces interact to shape and reshape cities over time. Introduced links between urban design and urban science.

Spring 2025

Advanced Complexity Theory

Current research topics in computational complexity theory. Nondeterministic, alternating, probabilistic, and parallel computation models. Boolean circuits. Complexity classes and complete sets. The polynomial-time hierarchy. Interactive proof systems. Relativization. Definitions of randomness. Pseudo-randomness and derandomizations. Interactive proof systems and probabilistically checkable proofs

Includes personal research project (topic TBD for me).
Computation Structures Introduction to the design of digital systems and computer architecture. Emphasizes expressing all hardware designs in a high-level hardware description language and synthesizing the designs. Topics include combinational and sequential circuits, instruction set abstraction for programmable hardware, single-cycle and pipelined processor implementations, multi-level memory hierarchies, virtual memory, exceptions and I/O, and parallel systems.
Medical Device Design An intense project-based learning experience around the design of medical devices with foci ranging from mechanical to electro mechanical to electronics. Projects motivated by real-world clinical challenges provided by sponsors and clinicians who also help mentor teams. Covers the design process, project management, and fundamentals of mechanical and electrical circuit and sensor design. Working in a small team to execute a substantial term project, with emphasis placed upon developing creative designs — via a deterministic design process — that are developed and optimized using analytical techniques.
Electronics Project Lab Intuition-based introduction to electronics, electronic components, and test equipment such as oscilloscopes, multimeters, and signal generators. Key components studied and used are op-amps, comparators, bi-polar transistors, and diodes (including LEDs). Design, build, and debug small electronics projects (often featuring sound and light) to put their new knowledge into practice.
Writing and Reading Poems Examination of the formal structural and textual variety in poetry. Extensive practice in the making of poems and the analysis of both students’ manuscripts and texts from 16th- through 20th-century literature. Attempts to make relevant the traditional elements of poetry and their contemporary alternatives.

Other Stuff

Project Engineering Attended and participated in a four-day off-site workshop covering an introduction to basic principles, methods, and tools for project management in a realistic context. In a team, created a plan for a project in farm automation. Developed skills applicable to the planning and management of complex engineering projects. Topics included cost-benefit analysis, resource and cost estimation, and project control and delivery which were practiced during an experiential, team-based activity. Case studies highlighted projects in both hardware/software and consumer packaged goods.
Gordon-MIT Engineering Leadership Program Selective leader development program focused on being an effective member and leader of industry engineering teams. Actively practicing leadership, teamwork, and communication skills in an engineering context; complementing MIT’s technical coursework.
Undergraduatae Practice Opportunities Program Honed teamwork, problem solving, and communication skills through professional development themed workshops, discussions, modules, and mentorship. Collaborated with a team of six peers over the course of a 4-day workshop to ideate, research, and present a theoretical sustainable dorm at MIT to c-suite level executives.