- 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
- My web site is https://homework.quest/
- Go there, and then click CS 4140
- Let’s look at the syllabus.
Tasks due Wednesday
- Sign up for Inkfish
- Request and get access to this class.
- Complete the Task 1.1 assignment.