3 ms·
I'd love to see the entire course in the format of that first lecture linked above, i.e you start with a naive implementation and gradually improve it both algo
by helwr 15y ago
I'd love to see the entire course in the format of that first lecture linked above, i.e you start with a naive implementation and gradually improve it both algorithmically and with language-specific hacks until you get orders of magnitude faster version working on your machine, not on paper.
Make every homework a contest on the fastest implementation,e.g. see Tim Bray's Wide Finder benchmark: http://www.tbray.org/ongoing/When/200x/2007/10/30/WF-Results http://www.tbray.org/ongoing/When/200x/2007/10/30/WF-Results
Python is great for teaching, but I'd let them do the optimizations in any language.
Use problems from your current research as examples/assignments, rather than boring textbook problems.
Let them work with real data: http://www.quora.com/Programming-Challenges-1/What-are-some-good-toy-problems-in-data-science http://www.quora.com/Programming-Challenges-1/What-are-some-... , http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to-the-public http://www.quora.com/Data/Where-can-I-get-large-datasets-ope...
Add parallel algorithms to the mix. Ask to parallelize serial algorithms that you explain in the lecture. They should at least start thinking about programming for multicore and clusters, they will thank you for that later.