SI Algorithms & Programming

Sway

Limp Gawd
Joined
Oct 21, 2006
Messages
506
So coming up on my senior year of school and I have been afforded an opportunity to do student instruction for a optional problem set of algorithm and design problems. I am working on a plan for flipping the lecture for a portion of this instruction to make it more interesting. I find it easier for everyone to learn if they are participating. I am looking for interesting problems that would be appropriate challenges for some of our student's. These students may or may not have had much design experience. One of the first problems that I started with to gain design experience was the Collatz Conjecture. It is such problems like this that really drove me to love the idea of becoming a software engineer and I would like to inspire more students that are just starting out in lower division classes to aspire and suceed.

TLDR:
Student Instructing lower division computer science optional course, looking for interesting appropriate problems and suggestions to make it more interesting. This will be a 2 hour section twice weekly that will run about 3 weeks.
 
Personally, I would really look for a problem that doesn't have an already known googlable answer. Something that makes them really think about how it should be done.

You could also browse the Algorithms tag on StackOverflow to find some inspiration or search the previous IBM computer programming competition problems from years past (these vary in difficulty).

One of the more interesting problems I saw on StackOverflow recently was someone had a DAG, basically a flowchart with branch nodes (yes/no decisions) and other processing nodes. The question was how to create an algorithm to find the node, if it exists, where the two branches of the decision node must converge (the node from a branch in which all sub branches or paths will eventually lead to it). I believe if there is only one termination node, with zero outgoing edges, then there must be such a node
 
Last edited:
I would guess you are right about using material that has tons of known googable answers. People will generally choose the path of least resistance. I know that lots of times some of the problems I play with when I'm bored have tons of solutions are solved as well. I just don't like how they are solved so I solve them my way trying to improve and yet simplify. There is nothing that I like better than writing a better algorithm to solve a problem faster, with less memory and cpu usage with cleaner code. Although this is not always possible, I am able to take something away from it that I learn from trying new things. I really am hoping that I can generate this type of passion among the students that I get for my sessions, generating this type of impact would give me some sort of hope going forward.
 
Back
Top