- This is CS 4140, Software Engineering
- I am Nat Tuck
- Do your Inkfish attendance.
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 with a team.
- Procedures and tools to help manage all of this.
This semester we’ll be trying one crazy new thing:
- This is also GD 4000. The applications we’re building are going to be games.
Course Site and Syllabus
- My web site is https://homework.quest/
- Go there, and then click CS 4140
- Let’s look at the syllabus.
Demo
Show game demo.
Tasks due Friday
- We’ll frequently have multiple tasks to complete each week.
- Sign up for Inkfish
- Request and get access to this class.
- Complete the first homework.