The School of Computer Science offers several courses that mainly consist of research projects. While these courses are offered at several levels, including undergraduate, Honours, and (coursework) Masters courses, they are all similar. The aim of this page is to provide some advice to students who want to undertake such projects under my supervision. Some of the information may also be useful for postgraduate students.
Before you start a project, we need to agree on a topic and set the expectation. My interests are in system security and cryptographic engineering, with particular focus on the security implications of the interface between the hardware and the software. You can find some proposed topics in the School of Computer Science's projects page, but this list is not exhaustive and other project topics are available. I am also happy to consider topics outside my direct area.
Compared to the more common lecture-based courses, project-based courses tend to be much less structured. While there are some milestones built into the program, these are much less defined than those in lecture-based courses. Many students find the more flexible and less well defined character of these courses challenging. In particular, time management seems to be a common issue.
According to the University's Coursework Academic Programs Policy, the workload for each 3 units of course is 156 hours. Project courses are 6 or 9 units, hence the workload for them is 312 or 468 hours per semester, which translates to 26 or 39 hours per week. Of these, at most two hours per week are spent on meetings with supervisors and with the course coordinator. I expect you to spend the other 24 or 37 hours per week on the research project. Within these hours, in each week you should allocate some time for reading and for experimentation. Additionally, you should make some time to prepare the formal deliverables.
Reading: A review of related literature is an important part of the project. Reading the related literature is essential for preparing a literature review. At the start of the project, I will provide you references to one or two relevant papers. Your task is to find more related papers and read them. Two good sources for relevant papers are the references in papers you are already familiar with, and Google Scholar's list of citations of these papers. As a ballpark figure, I expect you to read a minimum of two papers in each of the first six weeks of the project, and one paper in each of the remaining weeks.
Experimenting: Experience shows that a significant number of students tend to delay the technical work on the project. This could be because those students find the project complex and hope that reading and learning more will make the task less daunting. Another possible reason is that the early formal deliverables for the course do not seem to require any technical work. Irrespective of the reason, this approach is wrong. To ensure sufficient progress, you should allocate at least half of the project time to technical work.
Formal deliverables: During the semester you are required to submit some documents and make some presentations. I am, usually, vaguely aware of what needs be done, but I do not keep track of those. It is your job to remember those and to make sure you submit them on time. I do require that you give me a complete draft for review at least one week before the submission deadline. I will then make some comments to allow you to improve the document before submitting to the course coordinator. All reports should be prepared with LaTeX and submitted as PDF files.
One of the main differences between research projects and lecture-based is how the students' work is evaluated and marked. A lecture-based course has clear boundaries between learning and assessment activities. Assessments, are typically well-defined with relatively clear goals and students are marked on how well they achieve these goals.
In research projects, assessment and learning activities are not well delineated. Students learn through performing the research and are evaluated on the results of this research. At the same time, while research projects tend to have goals, the assessment is not solely determined by how well the goals are achieved. The main reason is that the main aim of research is to discover something new, so when setting the original goals we often do not know what obstacles may be encountered. Consequently, the goals of the project may shift and change during the project, and students are evaluated more on how they achieved what they achieved rather than on whether they achieved the original goals.
At the same time, in project-based courses, the marking is, at least formally, tied to the submitted formal deliverables. As a result, some students tend to think that these deliverables are the assessment component of the course, and focus on these more than on the actual research activity. This is a wrong approach and may be detrimental for the students. The aims of these deliverables is to summarise the research activity done and to gain practice in sharing research results. However, the marking for these deliverables is mostly determined by how well you have performed your work.
During the semester, we will meet on a weekly basis. In those meetings we will discuss your progress and address any issues you may encounter. To help me prepare for the meeting and to ensure that you keep track of your progress, you should submit a progress report by Friday each week. The report should contain a short summary of what you have done in the week, a list of aims for the following week, short summaries of the papers you have read, and any issues you may want to discuss in the meeting. Progress reports format is email messages. Do not send them as PDF attachments.
Multiple Supervisors: In the case that there is more than one supervisor, all communication should go to all supervisors. This includes all progress reports, questions, notices, etc. Learn where the Reply All button is! Also, when listing supervisors on any document, use alphabetical order (by surname).
MIT CSAIL, The Missing Semester of Your CS Education
Srinivasan Keshav, How to Read a Paper
Gernot Heiser, Tips and Guidance for Students Writing Papers and Reports
Julian Togelius, The differences between tinkering and research