On this webpage I provide some resources which are hopefully helpful for some students. Well, and of course the idea is also to save me (and my co-supervisors) quite an amount of time since students often write a thesis report for the first time, so we end up explaining the same thing over and over again. So instead I provide some of this material here, I hope it's helpful!
Please let me know if some of it can be improved. :)
There are several skills you need to master, e.g.,
In particular the writing part is quite challenging for a beginner as there are conventions that need to be learned. Please consider:
Presentations on Research Projects. This zip contains two presentations: (1) on literature research and (2) on scientific writing.
I devoted a page on thesis writing advice, including LaTeX templates. I strongly encourage everybody writing a research project (PhD, Honours/Bachelor thesis, small research project) to check it out, in particular the LaTeX template, since it also contains writing advice and commonly made errors.
(LaTeX) Tikz library for drawing AI plans, which has been used in several publications and presentations. Quite useful once you got used to it. :) Created by Mario Schmautz, a former student at Ulm University, Germany. I've put it into the same repository as all my LaTeX templates.
Beginner's Info on using git. Everybody uses github, and here at the ANU we also use our own git. We do this for pretty much everything, not just program code, but also research projects or for teaching in general. One info that I'd like to promote here is that temporary files should never be committed/pushed. That should be very obvious as they don't contain information that's worth keeping; they are just temporarily created for the specific use, like log files. This even includes (build) PDFs, although those are what we aim at! The reason why we don't push temporary files is (apart from the fact that it's just weird to force others receiving your trash when pulling) that this may very easily lead to conflicts, which wastes time. So in general just never add/commit just blindly everything, but carefully select each file to push by hand. On top of that, it will help to specify a global ignore file where you may list all these temporary files which just never have any right to be committed/pushed. You may use and extend my global git ignore. You will have to remove the file's prefix (without it, it becomes invisible on Linux, which is why I added this prefix so that it doesn't get lost :)). I assume you are able to find out (google it...) how to set a "global git ignore file". Also note that I would never put PDF files into a global ignore list since very often PDF files are used as source files, for example when creating plots for papers, so don't put "*.pdf" into this list. Instead, you should create a ".gitignore" for each new project that you create and put the name of your specific main file in there. That way, your compiled project PDF (paper, project report, thesis, or whatever) will not be pushed. This ignore file should of course be pushed to your respective repository. On top of that, the following scripts might be helpful to always keep your repositories up to date:
If you don't have any knowledge about planning at all, then start here, i.e., with classical planning, the base-case of planning. This is a planning problem class that's as simple as it could be. I.e., it uses basically zero extensions (no time, no hierarchy, no uncertainty, etc. etc.) -- perfect to get started!
Here are some recommendations for self-studying, listed in order of recommended reading:
You do understand the basics of planning already? Great! Then you can move on studying Hierarchical Task Network (HTN) planning. :)
Some recommendations, again listed in order of recommended reading: