| 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
|