Contents

Part 1: Designing Software

In taking on a software project, it's a good idea to create a sketch of what the software will look like (if it has an interface) and how it will function. This step will help you organize your thoughts, hash out details you may not have thought of or through, and come up with a way of implementing the project.

There are lots of ways to design software. I find that sketching out some kind of component flow chart is the most helpful. Sometimes, especially if you're dealing with user interfaces, it's more natural to draw mock-ups.

For this first part of the lab, think of an application you use everyday, like Twitter, your favorite email client, Facebook, Word, etc. Now I want you to make a mock up of that application's design and describe the functions of each of the components. You can draw/write this out by hand or use a program like PowerPoint. Your design sketch should be readable and clearly laid out. It should be easy for me to see what the components are and how they fit together.

If you draw it on paper, just take a picture with your phone (or a friend's phone) and submit that. I'll accept PDF (so if you use PowerPoint, be sure to save-as a PDF), JPG, PNG, or txt formats.

Part 2: Pseudo coding

When programming, you need to write a set of instructions for a computer to follow. Computers are less forgiving than most people, however, and they won't fill in the gaps, so you have to be very explicit. In addition, every programming language has different syntax, just like human languages (e.g., English vs. French).

Thinking specifically about how to program in a given language can be pretty daunting. To make it easier, there's a step you can take in between called pseudo coding. Pseudo code is a list of English (or whatever human language you want) instructions, much like a recipe in a cook book. Pseudo code can be very high level or very low level. In the planning phase, it's much easier to start at the high level. Once you go to implement it, you can start thinking of the more detailed levels.

Take the application you used in part 1 and pick three actions you perform with it. E.g., in an email client, you might pick sending an email as one of the actions. For each action, write the list of steps you have to take once you've opened the application to achieve that action. Make sure to label each action so it's clear what action goes with what set of steps. You want your steps to be detailed enough that you could hand them to someone else who isn't familiar with the application and they could perform that action. That's your pseudo code!

You can write you pseudo code in anything, but save it as a PDF or text file if you're using a plan text editor.

Submission

Submit your design in PDF, txt, PNG, or JPG format and your pseudo code in PDF or txt format to here. You can view the rubric here.

(Back to top)