Volker Maximillian Koch, Zurich, Switzerland

Home Resume Information Search Contact

Student Project Tips

 

I have supervised more than 20 student projects and I saw many times that although certain basic rules seem trivial, students (and basically everyone else including myself) forget them sometimes and don't follow them all the time. So I present the most important advice here as a reminder. I also link to some other useful sites regarding student projects (writing reports, giving talks, etc.). 

 

General Advice

  • Make a time plan and a plan of your overall goals and write them down. You don't have to follow your plans all the time and you can revise them as often as you wish but it's very important to have them (in written form). 
  • Prioritize by preparing a sorted list (a ranking) of tasks that are important to accomplish.
  • If you want to improve something, measure it first. For example, measure the time you spend on your project. If you don't cheat (subtract all breaks!), this will give you an important feedback. Another example is to make a (prioritized) list of things that you want to do during a day, a week, or any other period of time. Tick each item on your list that is done. This approach is psychologically very helpful.
  • Have a neat folder where you sort your thoughts, your math, your derivations, etc. 
  • Backup your data regularly on some external storage device. It is your responsibility that your files are safe, even after a major hard disk crash.
  • After a short reading stage, if you still don't know where to start, start somewhere, but start.

 

Programming

  • Think before you start with programming. Revising/debugging the code costs a lot of time.
  • Test every module (e.g., every node function) individually! After you have put everything together it is much harder to find mistakes. For example, place a main() function in every Java class to test this class.
  • Make the code work first (in a clean way) before optimizing for speed or computational efficiency. Ray Ozzie, chief technical officer at Microsoft, wrote nicely: "Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration."
  • Keeping the code neat requires some time and effort. But it's worth it. IDEs like Eclipse provide great tools that help you with refactoring your source code. Sometimes it's worth it to start from scratch.
  • Read my Java tips.

 

Setting up your Eclipse environment to work with my project

 

 

-Xmx600m -Xms600m -Dcom.sun.management.jmxremote -Dcom.imsl.license.path=C:\0koch_isipc\programming\eclipse\workspace\Common\lib\JMSL3.0_win\license.dat

 

Writing Reports

 

Giving Talks

 

General Information on Student Projects at ETH

  • Documents (access restricted; available only inside ISI) containing information on semester projects at the Signal and Information Processing Laboratory (ISI).

 

Various

 

10/2006