Skip to main content
  1. /classes/
  2. Classes, Fall 2025/
  3. CS 4140 Fall 2025: Course Site/

cs4140 Notes: 08-25 Welcome

·405 words·2 mins·
  • This is CS 4140, Software Engineering
  • I am Nat Tuck

What’s This Class

“Software Engineering” is a silly idea.

Engineering is the discipline of solving specific instances of problems that people have already figured out how to solve in general.

When a civil engineer designs a bridge, the steps are:

  • Pulls out the “how to build a bridge” textbook.
  • Figures out which kind of bridge makes sense for the situation - span, bed size, carrying capacity, etc.
  • Calculates a correct bridge.
  • Gets someone else to double check the work.
  • Hand off the design to the construction team.

Software development looks nothing like that.

  • If someone already wrote a program to solve a well-defined problem, you typically can just use that program rather than writing a new one.
  • Unfortunately, problems tend not to be well-defined. The customer isn’t a developer, so they don’t know how to solve their problem with software. And the developer doesn’t know the customer’s problem domain, so they don’t know either. So a lot of software development is discussion between the customer and developer to figure out what the problem is and how software can help.

So we’ll be exploring:

  • How to write a large software project.
  • How to start when you haven’t figured out exactly what you want.
  • How to work together as a big team (this is a small class, but it’s big enough to run into most of the problems we want to try to deal with).
  • Procedures and tools to help manage all of this.

This semester we’ll be trying two crazy new things:

  • We’re all going to work together on one semester-long project.
  • We’re going to generate a lot of code using LLM tools. That’ll be both good and bad - it’ll help us write more code faster, which will give us more code to debug and code review.

Attendance

  • Today I’ll be taking attendance manually.
  • Starting on Wednesday, we’ll be using a tool called Inkfish to take attendance. Bring a device and punch in the code in the first 5 minutes of class or you lose attendance points.
  • Get at least one device (phone works) signed into Inkfish and signed up for the class before Wednesday.

Course Site and Syllabus

Tasks due Wednesday

  • Sign up for Inkfish
  • Request and get access to this class.
  • Complete the Task 1.1 assignment.
Nat Tuck
Author
Nat Tuck