For my programming courses–ISAT 252 and ISAT 340–I’ve developed a clean, simple, and consistent formats for weekly lab assignments. Here is an example:
Some things to note about the lab assignments I make:
- All labs require students to engage in significant problem solving and/or independent study. Labs are NOT cookie-cutter recipes for students to follow.
- Lab descriptions are short to increase the likelihood that students will read them thoroughly and completely, and also to reduce the chance for misunderstanding.
- Labs begin with a short description of my purpose for introducing the lab, followed by an explanation of why students should want to acquire this content. I don’t take it for granted that students will be able to grasp why the tasks I set for them are relevant and important.
- I leave as much room as possible for flexibility so that students can tailor the content of the lab experience to their own interests. For example, if students have to write a program, I let them choose what program to write, and only require that they incorporate target skills into the building of that program.
- Labs always contain a memorable description of “best practices” in the software development industry. These are usually nuggets of wisdom taken from luminaries or other well-respected practitioners in the field.
- Labs contain clear instructions about what to turn in and when. One of the deliverables is always a journal entry or reflective essay encouraging students to think about how the concepts they are acquiring are relevant to their lives or how they extend their capabilities in some way.
- Labs frequently contain “extra credit” or guidance on how students can take their efforts to the next level. The goal is to get them to go above and beyond the minimum required and really have fun with this stuff.
Readings and Textbooks
I HATE asking students to buy textbooks for programming classes. Here is an excerpt from one of my syllabi explaining my feelings on the subject:
CAVEAT: Most web development books are terrible and are usually out of date by the time they are in print. I try to never put a book on a syllabus that I would not personally want to have in my own library. That being said, here are two texts that I recommend that have some staying power:
Jeffrey Zeldman is one of the movers and shakers in the standards-based design movement that started in the early 2000’s. He has a web development shop called Happy Cog studios in New York. One of the reasons this book does not go out of date is that it provides a very good historical account of the evolution of web coding practices. It uncovers some of the few unchanging principles that you’ll find in this course. Also, he’s a businessman so there is a very nice balance between practical realism and idealism in this book. He’s also a pretty funny guy.
This book covers topics related to web page aesthetics such as layout, color scheme, and font selection. For the most part it stays away from the nitty gritty details of how to code these things (details which are constantly changing) and instead focuses on the design process itself. I like this book because the principles it covers don’t change. Also, I’m a pretty crappy designer myself and this book provides some really good rules of thumb that allow even design-challenged people like myself to turn out some halfway decent work. The book itself is also very pretty and has lots of great illustrations and pictures.
Here are some of my guidelines for choosing a course text:
- Minimizing cost for students
The prices students pay for textbooks are outrageous. I like to choose trade publications like the two above which tend to be cheaper, or to assign an older version of a textbook, such as the database text I used this fall, which students can find on Amazon for as little as $0.01 (+$3.99 S+H).
- Would I want this on my bookshelf?
If this is not a book that I would personally buy for my own book collection, I don’t recommend it to students.
- Is the book a good reference or source of excellent tutorials?
In my field, there are so many excellent online resources available for free online for students, and since the content goes stale so quickly, I tend to favor books that are better used as references, or cookbooks for learning specific tasks than as cover-to-cover manuals.
- Can a student team get by with one per team?
Whenever possible I try to get teams to share a book. This increases the interdependence of team members and also saves them money.
- I always explain why I want students to purchase a book
I know that students are careful with their money. I want to communicate to them that I’m not just asking them to buy a book for the sake of having a book. I frequently tell them that I recommend that they DON’T buy a book, but also suggest one if they do want it.
- I only ask students to buy a book if I plan to have them read more than half of it
If it’s only a chapter or two that I really want them to have, I’ll scan it and email it to them.