What are some interesting summer programming projects that one can do?
If you are interested in applied math a little and where it relates to CS (e.g.puter graphicsputational science optimization AI) you could try implementing some canonical problems in these areas. I think it's a good idea for people to learn math. What's better is that you have a way of learning it that others may not--through programming a solution. Even better you get to see how other people did it too. More importantly mathematical literacy shows a great skill that people who know anything about anything will see as a plus so put it on GitHub. Here are some things Code up a Newton-Raphson gradient descent simulated annealing or genetic algorithm methods for optimization Write a simple diffusion equation solver on a flat 2D (or 1D) grid Implement k-means clustering some simple Markov model or linear SVM (you can cheat here a little and just use some optimization libraries) Write up a Fourier transform routine then do the fast Fourier transform. Or Walsch-Hadamard whatever. Write a simple linear algebra library (i.e. addition matrix-matrix matrix-vector multiplication inner and outer products tensor products matrix inversion solving linear systems and really however far you want to go with it. if you're really into it try eigendposition or variations on these other methods for particular matrices.. if you've gone this far would be advisable to pick up a numerical linear algebra book) Write a simple quantum circuit simulator (initial state apply gates (read operators) to it check results) and implement some basic cool algorithms. Might want to pick up a book on this but not necessary. n ** Bonus points if you do a multithreaded distributed memory GPU or low-level optimized (e.g. SSE) implementation. I think that would be a good thing for anyone to see. And don't forget to put it on your GitHub dammit! I think this is a great chance to get acclimated with mathematics. Lots of people use the above things or moreplicated versions of them. Math is all the same in your head you just need to start somewhere. Once you know how to reason about a Fourier transform you might further understand how to solve certain ODEs or if you understand eigendposition you might understand dimensionality reduction in ML. From there you can build towards a good understanding of mathematics and how you can exploit it in your everyday problems. Good luck! If you decide to tackle any of these problems feel free toment for books or further resources.