Lesson 1: Introduction to Modern Software Engineering Flashcards

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/19

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards based on Lesson 1: Introduction of Modern Software Engineering, covering core definitions, historical milestones, paradigm shifts, and practical activity designs.

Last updated 3:12 PM on 8/22/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

20 Terms

1
New cards

Software

it is a system of learning, experimentation, and complexity management.

2
New cards

Scientific Thinking

An approach in software engineering based on observation, experimentation, and evidence-based decisions.

3
New cards

Engineering Discipline

A practice characterized by structured design, reliability, safety, and continuous improvement in software development.

4
New cards

Treating changes as experiments

when adding a new feature, observe the effect on performance or user behavior.

5
New cards

Controlling variables

fix test data, hardware environment, or random seeds when benchmarking.

6
New cards

Fast, reliable feedback

automated testing, continuous integration, and monitoring in production.

7
New cards

Software Engineering (Ford, 2022)

The application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.

8
New cards

Empiricism

A key aspect of software engineering that bases design and decisions on experiments and data rather than opinions.

9
New cards

Efficiency

A key aspect of software engineering focused on producing solutions that optimize resources and time.

10
New cards

Economy

A key aspect of software engineering focused on reducing unnecessary cost, effort, or complexity.

11
New cards

Practicality

A key aspect of software engineering focused on solving real-world problems that matter.

12
New cards

Build → Measure → Learn

The key principle for making real progress through experimentation using the steps: Hypothesize, Test in small increments, Measure outcomes, and Decide.

13
New cards

Software Crisis

A period in the 1960s when software projects were frequently late, over budget, and error-prone, prompting the birth of software engineering.

14
New cards

1960s

A period in which the software crisis emerged, leading to significant changes in software development practices.

15
New cards

Margaret Hamilton

The MIT Apollo Program lead who coined the term "software engineering" and developed fault-tolerant systems for NASA's lunar missions.

16
New cards

1968 NATO Conference

The conference that hosted the first formal discussion of software engineering as a discipline, marking the transition from "programming as art" to "programming as engineering."

17
New cards

Old Paradigm of Software Engineering

A development approach defined by big upfront design (waterfall model), rigid requirements, long delivery cycles, and late failure discovery, operating under a "predict & control" mindset.

18
New cards

New Paradigm of Software Engineering

An adaptive development approach defined by empirical iteration, feedback, complexity management, and continuous delivery, operating under an "experiment & learn" mindset.

19
New cards

ElectricityCalculator Class

A Java class designed with the attribute units (int) and methods computeBill() and checkUsage(double bill), using the formula Bill=units×rate\text{Bill} = \text{units} \times \text{rate} where rate is 12.512.5 pesos per unit.

20
New cards

GradeCalculator Class

A Java class designed with attributes prelim (double), midterm (double), and finals (double), computing final grades via FinalGrade=(prelim×0.30)+(midterm×0.30)+(finals×0.40)\text{FinalGrade} = (\text{prelim} \times 0.30) + (\text{midterm} \times 0.30) + (\text{finals} \times 0.40).