Do you know of any online resource with ideas/projects for an Algorithms and Data Structures course? Topics in the course include: basic data structures (array, list, stack, queue, priority queue, graphs, trees), sorting, hashing, etc. Such a course is typically for freshmen and grading is based on: 1. Correctness 2. Documentation 3. Use of abstraction and design patterns. 4. Efficiency. It's becoming more and more important for assignments to be somehow auto-gradable, at least with respect to correctness and efficiency.
-
3$\begingroup$ This question really could use some work. For example, what criteria would you use to evaluate a project, or other resource? What's the level of the students? How would you pick a "best" answer? This site isn't so good with list questions. Although we're less strict than other sites, there still needs to be a bit more meat to work with in the question. $\endgroup$– Gypsy SpellweaverMay 27, 2020 at 16:20
-
$\begingroup$ I see no why to auto grade the use of patterns (you will only catch some implementations of the pattern, but not the pattern it-self). Also when you say design-pattern, are you meaning just the few in the GOF book, or any design-pattern? $\endgroup$– ctrl-alt-delorJun 3, 2020 at 11:10
1 Answer
I'm not aware of any singular, central repository for assignment ideas. My sources for project ideas when my own well begin to run dry are:
- Textbooks. Often, a problem in a problem set will trigger an idea for a full-blown lab assignment.
- Other similar courses posted by other professors. Obviously, it is important not to simply steal someone's idea. I will adapt the assignment and make it my own. If it is still substantively similar to the original when I am done, I will credit the original professor with a link to the original assignment. (I have also on a small number of occasions reached out to a professor directly for permission to simply use one of their assignments directly. It has been my experience that people have been very gracious in these situations, both granting permission, and sometimes providing additional supporting materials such as rubrics, exemplar answers, and autograder test cases.)
- I just generally keep an eye out for fun lab ideas and write them down when they come to me, even (especially!) if they are for classes that I am not currently teaching, because I have found this to be a useful resource when I begin to teach a new class.
- We assign a fair number of open-ended projects. I have not historically used these as source ideas for future lab assignments, but there is no reason that I couldn't do so, and thinking upon it now, I probably should. I would, of course, share this with the students in question. Most students would probably be flattered at the idea of their project being adapted to a full course lab, though if someone had objections, I would not press them. Ideas are hard to come by, but not that hard.