I think the best way for them to continue their foray into programming would be to do a large project that would help me demonstrate the more advanced programming concepts like architecture, testing, and model design, and also some of the things closely related to commom programming work, like build tools, git, and basics of command-line.
My current idea is to group them to teams of two or three people and let the teams choose a project from a small selection of related projects. During the year they’ll be working on different parts of the project, with the lectures being mostly filled with discussion about that weeks’ “task” and maybe a short presentation on the topic by me. I’d also like to give detailed feedback on the code during the year (that’s the reason I want three teams rather than 10 individuals).
Firstly, do you think it’s a good approach to a programming course? And if so, which projects do you think would fit, considering they ought to be “iterative” in nature (so that we can split them up to parts), interesting and should demonstrate some common programming patterns?