Software Engineering

Learning Resource Type

Classroom Resource

Subject Area

Digital Literacy and Computer Science

Grade(s)

9, 10, 11, 12

Overview

Software failures happen all the time. Sometimes it’s a little bug that makes a program difficult to use; other times an error might crash your entire computer. Some software failures are more spectacular than others.

In 1996, The ARIANE 5 rocket of the European Space Agency was launched for its first test flight: Countdown, ignition, flame and smoke, soaring rocket... then BANG! Lots of little pieces scattered through the South American rainforest. Investigators had to piece together what happened and finally tracked down this tiny, irrelevant bug. A piece of software onboard the rocket which was not even needed had reported a value that was too big to be stored. An error was stored instead, but other software interpreted the error as saying the rocket was 90 degrees off course. Thankfully, no one was on board but the failure still caused about $370 million of damage.

Software engineering is all about how we can create software despite this enormous size and complexity while hopefully get a working product in the end. It was first introduced as a topic of computer science in the 1960s during the so-called "software crisis" when people realized that the capability of hardware was increasing at incredible speeds while our ability to develop software is staying pretty much the same.

As the name software engineering suggests, we are taking ideas and processes from other engineering disciplines (such as building bridges or computer hardware) and applying them to software. Having a structured process in place for developing software turns out to be hugely important because it allows us to manage the size and complexity of software. As a result of advances in software engineering, there are many success stories of large and complex software products that work well and contain few bugs. For example, Google's huge projects (Google search, Gmail, etc.) are built by teams of thousands of engineers, yet they still manage to create software that does what it should.

Digital Literacy and Computer Science (2018) Grade(s): 09-12

DLCS18.HS.37

Evaluate the ability of models and simulations to test and support the refinement of hypotheses.

UP:DLCS18.HS.37

Vocabulary

  • model
  • simulations
  • hypotheses
  • phenomena
  • target system

Knowledge

Students know:
  • how to explain the use of models and simulations to generate new knowledge and understanding related to the phenomena or target system that is being studied.
  • how to explain the ability of models and simulations to test and support the refinement of hypotheses related to phenomena under consideration.
a.
  • that modeling and simulations are way to extrapolate and interpolate unrest situation and scenarios to help formulate, test and refine hypotheses.
b.
  • how to form a hypothesis.
  • how to test a hypothesis.
  • how to create a model or simulation.
c.
  • that simulations or models can be created to test a hypothesis but not provide the information expected or intended.
  • that it is vital to verify the data being generated by a model or simulation.

Skills

Students are able to:
  • use a diagram or program to represent a model to express key properties of a phenomena or target system.
  • research existing models and simulations and how they are used to test and refine hypotheses.
  • explain how existing models and simulations are used to test and support the refinement of hypotheses.
a.
  • create a model or simulation to formulate, test, and refine a hypothesis.
  • utilize a model or simulation to formulate, test, and refine a hypothesis.
b.
  • form a model of a hypothesis.
  • test the hypothesis by collecting and analyzing data from a simulation.
c.
  • examine a model or simulation to determine the correctness of the generated data.
  • examine a flawed model or simulation and identify areas in which it is providing incorrect data.

Understanding

Students understand that:
  • a simulation is based on a model and enables observation of the system as key properties change.
  • the accuracy of models and simulations are limited by the level of detail and quality of information used and the software and hardware used.
  • models and simulations are an effective and cost efficient way to understand phenomena and test and refine hypotheses.
a.
  • models and simulations are way to extrapolate and interpolate unrest situation and scenarios to help formulate, test and refine hypotheses.
  • models and simulations can be the only cost- ot time-effective way to test a hypothesis.
b.
  • Models and simulations can save money, are safer, usually requires less time, and do not have the environmental impact that a full experiment or operational test may induce.
c.
  • while a process may operate without errors, that does not guarantee that the process is providing accurate data to meet your needs.
Digital Literacy and Computer Science (2018) Grade(s): 09-12

DLCS18.HS.38

Systematically design and develop programs for broad audiences by incorporating feedback from users.

UP:DLCS18.HS.38

Knowledge

Students know:
  • it is vital to seek feedback from others on programs and products.
  • feedback can help make a program or product better.

Skills

Students are able to:
  • design and develop a program.
  • publish a program, seeking feedback.
  • make edits to a program based upon user feedback.

Understanding

Students understand that:
  • when designing a program, it is important to receive input from your target audience to ensure your product meets their expectations or need.
Digital Literacy and Computer Science (2018) Grade(s): 09-12

DLCS18.HS.40

Use an iterative design process, including learning from mistakes, to gain a better understanding of a problem domain.

UP:DLCS18.HS.40

Knowledge

Students know:
  • that creating an artifact is an iterative process.
  • that feedback serves to make products better.
  • that mistakes are teaching tools that help determine how not to solve a problem.

Skills

Students are able to:
  • create and publish.
  • process constructive feedback.
  • persevere through mistakes.

Understanding

Students understand that:
  • creating an artifact is an iterative process.
  • feedback serves to make products better.
  • mistakes are teaching tools that help determine how not to solve a problem.

CR Resource Type

Lesson/Unit Plan

Resource Provider

Other

License Type

BY-NC-SA

Resource Provider other

CS Field Guide
ALSDE LOGO