CSE 190: Working with Large Code Bases

Join the course EdStem using this link!

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:

  1. Setup a development environment to build and work on software tools from source.
  2. Effectively navigate through a large code base.
  3. Read, understand, and modify parts of a large code base.
  4. Test and debug issues in a large code base.
  5. Understand the workflow to contribute to a large code base.
  6. Effectively Communicate how a code base works to others.
  7. Use documentation and Q&A websites to learn just-in-time.
  8. Explore Large Language Model tools for program comprehension and modification.

Large code bases

(Source: Random outdated picture off the Internet.)


Table of contents