Test Yourself

How well did you learn what's been taught in the previous lessons?

Scroll down...




Eye test chart

We've covered a lot of material that was probably brand new to you. Make sure that the concepts are crystal clear by answering the questions below:

The Principles of Software Engineering

  • How did software engineering actually begin?
  • What processes were early software engineering techniques modeled after?
  • What macro-scale trends helped define the arc of software engineering over the past half-century?
  • What specific advances have led to rapid change in the discipline since the 1990's?
  • What characteristics of the web make modern day web software development more flexible than traditional software?
  • Why are software engineers more like architects than builders?
  • Why are software engineers actually very similar to visual or UX designers in some ways?
  • What are the four steps of the high level engineering problem solving process?
  • What are the specific things you need to do to implement each of these four steps, particularly the first two?
  • Why is thinking about the user so important for engineers?
  • What does KISS stand for and why do engineers love it?
  • What does DRY stand for and why is it relevant to you?
  • What is "You ain't gonna need it?" (YAGNI)
  • What do you think are the top 3 themes of good software engineering?
  • Why do we say that the engineering approach covers both Product and Process?

Introduction to Agile Development

  • What is Waterfall Development?
  • Why does Waterfall seem to follow the core engineering problem solving steps?
  • What is Waterfall good for?
  • What is Waterfall not good for?
  • What is Agile Development?
  • What is Agile good for?
  • What is Agile not good for?
  • What is eXtreme Programming?
  • What development techniques does XP advocate?
  • What is SCRUM?
  • What are the common principles of XP and SCRUM?
  • What are User Stories?
  • What is the format of a typical story?
  • What are Acceptance Criteria?
  • What is a Burndown Chart and how is it useful?
  • What is Pivotal Tracker?
  • What are the 6 steps of implementing a typical new Agile project?
  • What is Software Testing?
  • Why do we need automated testing?
  • What does a QA department do?
  • What are the general characteristics of automated testing software?
  • What does Test Coverage mean?
  • What is Unit Testing?
  • What is Integration Testing?
  • What is Acceptance Testing?
  • What general types of behavior should you test?
  • What is TDD?
  • What are the advantages of TDD?
  • What does "Red/Green/Refactor" mean?
  • What is BDD?
  • How does BDD unite the ideas of User-Centered Design with TDD?

Pseudocoding and Good Software Design

  • What is Pseudocoding?
  • What is Whiteboarding?
  • Why is pseudocoding useful for a beginner?
  • Why is pseudocoding useful for an experienced engineer?
  • Why do we say that code follows "Sequence"?
  • What is Flow Control?
  • What is Iteration?
  • What is Modularity?
  • How does modularity help us think about systems?
  • What is an Interface?
  • How can the real world be modeled as a modular system?
  • How specific should your modules be?
  • How can you apply modules to your pseudocode "programs"?
  • What is SOA?
  • How was Amazon's transition to using SOA an example of high level modularity at work?
  • Why was it important for Amazon to make this transition?
  • What are the three characteristics of good modules?
  • What is Coupling?
  • How much coupling should good modules have?
  • What is Cohesion?
  • How much cohesion should good systems of modules have?
  • What is Encapsulation?
  • How much encapsulation should good modules have?
  • What are the SOLID principles good for?
  • (optional) What are each of the SOLID principles?

Sign up to track your progress for free

There are ( ) additional resources for this lesson. Check them out!

There are no additional resources for this lesson just yet!

Sorry, comments aren't active just yet!

Next Lesson: Where to Go From Here