CSE 190: Working with Large Code Bases
A vital skill for a successful software engineer is the ability to work with large, pre-existing code bases. Often, in industry or research projects, you may be tasked with fixing a bug, adding a small feature, or implementing some major changes in pre-existing code bases. As a result, learning how to effectively navigate, understand, and contribute to a large code base can help you be prepared for the demands of a software engineering job. In this course, students will learn about the processes and tools for working with large code bases. We will focus on program comprehension techniques (such as code navigation, diagramming, using a debugger, etc.) and code management workflows (code review, Git, task managers, etc.) used when working with large code bases. By the end of the course, students will gain experience contributing to a large code base and may even contribute to an open source project (if they wish to do so). This course is recommended for students without internship experience, although anyone is welcome to register.
Learning Objectives
Students who successfully complete this course will be able to:
- Setup a development environment to build and work on software tools from source.
- Effectively navigate through a large code base.
- Read, understand, and modify parts of a large code base.
- Test and debug issues in a large code base.
- Understand the workflow to contribute to a large code base.
- Effectively Communicate how a code base works to others.
- Use documentation and Q&A websites to learn just-in-time.
- Explore Large Language Model tools for program comprehension and modification.
Grading Schema
| Course Component | Percentage |
|---|---|
| Lecture Participation | 10% |
| Exploration Activities | 10% |
| Individual Project I | 5% |
| Individual Project II | 10% |
| Individual Project III | 20% |
| Individual Project IV | 10% |
| Group Project | 25% |
| Code Walkthrough Presentation | 10% |
Lecture Participation (10%)
Lectures will be quite interactive, with a lot of in-class activities for you all to complete. For that reason, lecture attendance is mandatory. However, you are allowed to miss up to 4 lectures throughout the quarter without any penalty.
Exploration Activities (10%)
There are a lot of small activities that I have created for you to practice using the techniques we learn in class. However, we won’t be able to get to all of these activities during lecture. As a result, I will assign some “exploration activities” for you to complete after a lecture. These will be semi-open-ended activites and are graded based on completion. They are primarily meant for you to apply the techniques we learned in class on your own.
Individual Projects (45%)
All individual projects combined contribute to 45% of your final grade. These projects must be completed and submitted individually, but you are encouraged to discuss high-level ideas with your classmates.
Individual Project Late Submission Policy
As much as possible, I want to avoid the situations where you are scrambling to throw together the assignment quickly or end up getting an answer from a friend. I want to prioritize learning the material over simply completing the task for credit. Therefore, I will be flexible with the submission policy to encourage you all to spend quality time comprehending the code base and using different approaches to complete the task. Therefore, for each individual project, you will have a 24-hour grace period for late submisisons. You do not need to notify us ahead of time if you are using this grace period.
I do need to balance the flexibility of the submission deadline with giving timely feedback. Therefore, please note that timely completion of the individual projects is important for us to begin the code review process. If you need an additional day or two beyond the grace period, please post on Edstem to explain your circumstances
Group Project (25%)
In the second half of the quarter, you will be working on a group project in teams of three students. You are free to form your own groups, so start looking for group members as soon as possible.
Code Walkthrough Presentation (10%)
In the last week of the quarter, you will conduct an 8-minute “code walkthrough” with your project group on a specific part of the code base. You will briefly explain the technical details of the code and demonstrate two techniques your team used to comprehend that part of the code base.
Notes On Collaboration
CSE 190 is a project-based course. You will complete a set of individual projects during the first half of the quarter, and a large-scale group project in the second half. We have different expectations for student collaboration for these two types of projects.
Individual Projects
All students are assigned the same set of individual projects, and we would therefore like for each student to complete the projects independently, in order to maximize the learning outcome.
This does not mean that all collaboration is prohibited for these projects. In fact, you are encouraged to discuss project-related topics at a high level with your classmates.
For individual projects, share your thoughts, not your solutions.
Group Projects
Different groups will be working on different projects selected from a pool of project proposals curated by the course staff.
TL;DR: There are no restrictions on collaboration for the group project.
You are of course expected to collaborate closely with your group members and contribute as much as you can to the project effort. In addition to that, we also highly encourage cross-team collaborations. Even if other teams are not necessarily working with the same code as you are, you are still encouraged to openly discuss issues your group is facing with a certain part of your codebase. And feel free to share your code for your group project.
Students with Disabilities
We aim to create an environment in which all students can succeed in this course. If you have a disability, please contact the Office for Students with Disability (OSD), which is located in University Center 202 behind Center Hall, to discuss appropriate accommodations right away. We will work to provide you with the accommodations you need, but you must first provide a current Authorization for Accommodation (AFA) letter issued by the OSD. You are required to present their AFA letters to Faculty (please make arrangements to contact me privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.
Diversity and Inclusion
We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.). Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive.
Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course. If there is a way we can make you feel more included please let one of the course staff know, either in person, via email/discussion board, or even in a note under the door. Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input.
We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community. Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and feels comfortable.
If you experience any sort of harassment or discrimination, please contact the instructor as soon as possible. If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination.
Basic Needs/Food Insecurities
If you are experiencing any basic needs insecurities (food, housing, financial resources), there are resources available on campus to help, including The Hub and the Triton Food Pantry. Please visit The Hub for more information.

(Source: Random outdated picture off the Internet.)