Topics

Software Design Process (Week 1)

What is the "Correct" way to design software? Ask a dozen designers and you will get two dozen responses. We will briefly explore some of the processes out there and discuss the tradeoffs between them.

Objectives

By the end of this section, students should be able to do the following:

  • Understand the stages of software design
  • Understand that the software design process is varied based on where you are and the type of work you are doing

Graphic Design 101 (Week 2 and 3)

The visual design of software directly impacts how users perceive the product as well as how software is comprehended and used. The course will start with a brief introduction to a few of the tenets of graphic design and some general guidelines for how to apply these tenets to the design of software.

Topics

  • Designing with a Grid
  • Typography
  • The use of color
  • Balance
  • Removing excess ink

Objectives

By the end of this section, students should be able to do the following:

  • Layout a screen based on the graphic design principles presented (grids, typography, color, balance)
  • Critique a good or bad design to explain why it is visually pleasing or visually appalling.

Designing With Real Data (Week 4, 5, and 6)

When designing experiences that require users to make actionable decisions, it is virtually impossible to evaluate the success or failure of a design without real data present in the mockup or prototype. This is why designing with real data is critical to evaluating the success of a design. During this section, we will look at how to gather real data, understand that data and how to integrate it into your designs

Topics

  • The importance of designing with real data
  • Real data has a story!
  • Basic Web Scraping using ScreenScraper and kimono
  • Basic Python, Excel, Sublime Text data modification

Objectives

By the end of this section, students should be able to do the following:

  • Gather real data from websites via screen scraping and other techniques
  • Identify the story that a dataset tells
  • Create a realistic dataset when a real dataset is not available
  • Integrate data into a design

Rapidly Prototyping Software Experiences (Week 7 and 8)

As software becomes more and more interactive, the modern software designer can no longer afford to hide behind the static mockup. Some experiences can only be truly evaluated by interacting with a prototype of a design or experience. But not all prototypes are created equally. We will look at how to decide when to prototype and what to prototype. We will also cover specific techniques for building interactive prototypes very quickly.

Topics

  • Determining the goal of a prototype
  • Choosing the correct tools for a prototype
  • Techniques and tools for building prototypes

Objectives

By the end of this section, students should be able to do the following:

  • Determine the appropriate fidelity and tools for developing a prototype of a specific workflow
  • Build a prototype of a small workflow

Data Visualization (Week 9, 10, and 11)

Data Visualization is becoming a critical part of modern applications so it is important for software designers to understand how to design successful and accurate visualizations. We will go through techinques for data visualizations, review Edward Tufte's principles of data visualization and look at some tools for building interactive data visualizations

Topics

  • Tufte Principles
  • Types of information and the different visualizations techniques for that information
  • How to critique visualizations
  • Tools for creating visualizations

Objectives

By the end of this section, students should be able to do the following:

  • Design a self-contained data visualization
  • Critique data visualization to identify if it is properly using techniques

Software Development (Week 12 and 13)

What you design doesn't matter until it is actually built. In the same way that an architect needs to understand how buildings are built in order to design them, software designers need to understand how software is built. During this section we will look at modern web and mobile architectures and discuss how these technology choices should influence the design process. Additionally, we will look at how to break down designs into a development plan

Topics

  • Common Application Architectures
  • Software Development Process
  • Technologies for building applications
  • Implementation Planning

Objectives

By the end of this section, students should be able to do the following:

  • Explain the difference from a technical and a user experience perspective of various technology architectures
  • Break a design up into functional chunks for implementation