1 of 11

Big Ideas in �Software Engineering

Fall 2024

2 of 11

Announcements

  1. Today at 5:00PM: Welcome Back Gathering (Sponsored by the CS+Math Departments)
  2. Readings for Tuesday are posted: Version Control. Please come Tuesday prepared to discuss.

3 of 11

Outline

  • Discussion of the Readings
  • Lab 1

4 of 11

Discussion of Readings

Preface | Ch 1. What is Software Engineering? | Ch 16. Version Control

What struck you in the reading? Your thoughts here…

5 of 11

How is Software Engineering different from Programming?

  • SWE considers time – long term, continual, over time, onforseeable future. You have to think about more stuff.
  • The management side of computer science
  • Cost
  • Scale!
    • Accessibilitity (internationalization)
  • Who is the user
    • Techies, average joe
  • Speaking across the divide

6 of 11

Is Software Engineering actually Engineering?

  • Yes:
    • Both are solving problems
  • How is it different:
    • Physical materials (tangible issues)
    • We can think outside the box
      • Less likely to kill people
      • Test it before someone uses it

7 of 11

Why Not Just Aim for "Nothing Changes"?

  • It’s impossible:
    • Consumer needs change
    • OS upgrades, language you’re writing in, new innovations
    • The “one thing better” problem
    • Technological revolution – your thing isn’t working on the same degree.
      • Ability to take advantage of efficiency gains

8 of 11

What is Hyrum’s Law?

Why doesn’t “We’ll delete the old widget on August 15th; make sure you’ve converted to the new widget” work?

9 of 11

How should decisions be made?

10 of 11

What do we mean by trade-offs?

  • Opportunity costs: we could spend two weeks on this, but that means we can’t do this other thing.

11 of 11

Today’s Lab

  • Code Editors
    • VS Code
    • SSH integration
    • Auto-Formatters
  • The Command Line + Linux
    • Why Linux? Why Vim / Emacs?
  • OS Environment Configuration (.zshrc file)
    • Where is your home directory
    • What does “sourcing” something do?