Programming assignments traditionally involve some problem analysis, algorithm design, and typing/testing code. While designing a new Level II course, I wanted to provide for a different way of thinking about problems and to integrate real-world context. I developed a two-part assignment on secure coding for database applications, specifically teaching students about SQL-injection attacks and how to defend against them. Instead of giving students a paragraph-long program description, I provided a couple of articles and links.
First, they write a paper, which forces the needed analysis (and the sources discuss algorithms and strategies--design). The coding is to demonstrate one or more of the defensive strategies in an existing program. This lessens the "busywork" and lets them apply what they've learned. It also should motivate testing or their code--they're protecting it from hackers!
Comments
Again, Renee, real-life experience in the classroom! That is a hallmark of the Learning College. Well done!
Especially with the recent news of hackers stealing information from some big name corporations, I think that students can really understand why this learning is important and get into it. I hope for my financial security safety that you and your students are successful! I'm looking forward to seeing how you will measure the effectiveness of this activity.