1 of 16

Big Ideas in �Software Engineering

Fall 2026

2 of 16

Outline

  1. Discussion of the Readings
  2. Lab 1

3 of 16

Discussion of Readings

Preface | Ch 1. What is Software Engineering?

  • What stood out to you?

4 of 16

Discussion Questions

  1. What is software engineering? How is it different from programming?
  2. Is software engineering actually engineering?
  3. Why not just aim for "nothing changes"?
  4. What is Hyrum’s Law?
  5. How should decisions be made?
  6. What do we mean by trade-offs?
  7. What does “shifting left” mean?

For each question…

  • Answer the question with examples from the readings
  • See if you can come up with your own examples of how this idea applies.

5 of 16

1. What is Software Engineering?

Programming integrated over time

  • Maintainability: other ppl can actually work on your code, modularity, organization, documentation, error handling, tests.
  • “Clever” –

6 of 16

2. How is Software Engineering different from Programming?

Your answers here…

7 of 16

3. Is Software Engineering actually Engineering?

Your answers here…

8 of 16

4. Why Not Just Aim for "Nothing Changes"?

Your answers here…

9 of 16

5. What is Hyrum’s Law? Give an example

Your answers here…

10 of 16

6. How should decisions be made?

Your answers here…

11 of 16

7. What do we mean by trade-offs?

Your answers here…

12 of 16

8. What does “shifting left” mean?

13 of 16

Intro to Lab 1

14 of 16

Interacting with your Operating System from the Command Line

The goal of today’s lab is to get you a little more comfortable doing “configuration things,” including:

  1. Working on the command line in a Linux-style environment
  2. Configuring your command line environment
  3. Working with command line code editors
  4. Installing VS Code and WSL (if you’re a windows user)

But before we begin, let’s do a quick review / recap of some stuff you may have learned in CSCI 235…

15 of 16

Important Concepts for Today’s Lab

  1. In this class, we’ll be using a Unix/Linux style operating system. Why do you think that is?
  2. What are vim and emacs? Why is it important to know basic editing commands using a command line editor?
  3. What is a shell?
  4. What is an environment variable? What is the purpose of these zsh configuration files: .zshenv .zprofile .zshrc .zlogin .zlogout
  5. Where is your home directory? How do you find it?
  6. What is your system path and why is it useful?

16 of 16