An Honours Project (COMP 4905) is a half-credit, single-term project that demonstrates the student’s ability to take on a task and complete it from start to end. Typically, an Honours Project involves the development of a software system or framework, implementation or prototype of an application, or an experimental comparison of similar algorithms or design/analysis of a new algorithm. (Note: The project may not solely be a survey-based investigation of previous work done in an area of computer science). You will be required to write a final report that describes the entire project from start to end. If the project involves a software implementation, you will usually be required to provide a final demonstration to your supervisor. Below are the steps towards completing an Honours Project:
- 1. Determine a Topic
Your project can be on any topic but must demonstrate computer science skills. Your project may be practical (involving the writing of software) or theoretical (involving the design and analysis of an algorithm). If you do not have a project topic in mind, you can browse through the Online Project Repository to get some ideas, or you can click here to find out what areas of projects faculty members have been supervising. If you are still unsure as to what to do, think back to courses that you liked and try to come up with an idea. Perhaps there is a topic that has always intrigued you, but you did not have an opportunity to look into that area of computer science. An Honours Project can provide an opportunity for you to investigate that area more in-depth. Remember that this is a 4th-year project. Your project topic must have sufficient complexity in order to be an acceptable topic, but your supervisor can help you with that (see next step). Keep in mind, however, that most faculty members do not have a list of topics available for you to choose from. Therefore, do not contact a supervisor and ask them to supervise you unless you already have some ideas that relate to their interests. You will not need to work out all the details. Your supervisor will help you ensure that the scope of the project and the amount of work are at the appropriate level for an Honours project.
- 2. Find a Supervisor
You need to find a supervisor who is willing to supervise your project. Keep in mind that even though you may have already chosen a topic and even started writing a proposal, it does not mean that the supervisor that YOU have chosen is guaranteed to supervise you at that time because faculty members have limitations on how many students they are able to supervise during one term. It is best, therefore, to start looking the “term prior to taking the project” so that you have plenty of time to find a supervisor. Contacting them by email is best. It is best to choose a faculty member who is working in an area of research that is closely related to your desired project topic. See the Finding a Supervisor page to read more about project areas that various faculty members are involved with). Choosing the right supervisor will ensure that you get proper guidance along the way and that your project is marked by someone who is well qualified to grade a project in that area. Once you have identified a potential supervisor, contact that faculty member (i.e., usually make an appointment via email) and then discuss the project with them and ask if they are is willing to supervise you. You do not have to have ALL of the details of the project worked out before you meet the faculty member. The faculty member may be able to help you fine-tune your idea into a well-defined project that has enough “meat” to it.
Your supervisor must be a member of the School of Computer Science. There have been rare occasions in which students have had a secondary supervisor (i.e., a co-supervisor) who was external to the school. It is ok to have an external co-supervisor. In this case, the external supervisor and the co-supervisor must both decide upon a grade for your final project.
What if I Cannot Find a Supervisor?
Sometimes the faculty member(s) that you choose may be unavailable (perhaps they are not supervising that term, or already has too many students that they are supervising). If that happens, you must be willing to work on a different topic for which you can find a supervisor, otherwise you should not take COMP4905. If a professor is not available during the term that you want, perhaps ask about their supervision for the following term. This is why it is good to find a supervisor perhaps one or two terms in advance of when you want to do the project. Please keep in mind that you are trying to convince a faculty member to spend time supervising you. It is wise, therefore, to put some effort in your email request, paying attention to grammar & spelling and in making clear what you would like to do. Supervisors prefer highly-motivated students that they sense will put in the effort to produce a high-quality project.
- 3. Prepare a Proposal
The proposal is usually a two-page document that defines the scope and schedule of the project. It represents a commitment between you and your supervisor in regards to what is expected of you. The proposal should be prepared BEFORE the term that you plan to register into COMP 4905. This will ensure that you have a project plan clearly in mind before the term begins.
You will need to put some careful thought into your proposal, which may involve some exploratory research into the topic. It is good to prepare the proposal within a day after you meet with your supervisor so that the details are fresh in your mind. The proposal should give a clear and concise overview of the project, indicating the motivation, main objectives, equipment requirements, a description of what will be implemented, what will be tested, and what analysis will be performed on the results. It must be clear as to what is expected at the end of the project, including the deliverables. You may include a diagram or two if it helps to explain. If you will begin the project with existing software, code or framework that has already been developed, make sure to indicate exactly which portion of the overall framework you will actually work on (as opposed to what has already been completed). At the time of the proposal, all project details are not always clear, and it is not easy to foresee all potential obstacles that you may encounter. It will be necessary, though, to be specific about which features you plan to implement and which ones “may” be added depending on how much time you have remaining. However, you must be careful in what you write because your grade will depend on the features that you actually “do” implement, not on the ones that you “wanted to” implement.
As part of the proposal, you MUST prepare a bi-weekly schedule that indicates project milestones throughout the term. Typically, the first few weeks are used to familiarize yourself with existing project frameworks, programming environments, and researching the area by investigating various algorithms. The bulk of your bi-weekly schedule should be spent on developing software, designing an algorithm or evaluating implementations. However, along the way, you may also be gathering data/statistics, performing testing and adding features to your code. Make sure to leave a couple of weeks for writing up a proper project report.
Prepare your project proposal with your supervisor. Keep in mind that your supervisor may require you to make a few changes to the proposal before it is finalized.
- 4. Register for COMP 4905
Submit your finalized project proposal to your supervisor (by logging in and filling out the COMP 4905 Proposal Form) before the registration deadline. You will need to include a PDF file of your finalized proposal in order to complete the form. Once you submit the form, it will be sent to your supervisor for their approval and then they will forward the form and proposal to the Undergraduate Advisors so that a spot can be opened for you to register into COMP 4905. Once the spot opens up, you must then register yourself into COMP 4905.
- 5. Do the Project
Try to follow the schedule that you prepared in your proposal. Make sure to give constant feedback to your supervisor throughout the term (usually via email) to inform them of your progress so far. If you have problems or obstacles along the way, make sure to get some advice from your supervisor. Make sure to keep all of your testing data and perhaps make written notes about various algorithms and coding decisions along the way, even if they were failed attempts or did not produce desirable results, as you will likely include this in your written report later. Make sure to get feedback from your supervisor by sending them testing results, screen snapshots, video clips or demonstrations of your project throughout the term.
- 6. Submit the Project
You should send a draft of your report (usually via email) to your supervisor at least a week before the final due date. Keep in contact with your supervisor and agree upon a date for sending them a draft version of your report because some supervisors may be away or very busy during the end of a term and may have a small window of time during which they are able to read your report and give you feedback. You MUST submit your project before the deadline into the Online Project Repository (by logging in and clicking submit final report). You will submit a pdf version of your report as well as a zip file containing all of your code/testing data/video files etc. Your supervisor will then grade your project.
Share: Twitter, Facebook
Short URL:
https://carleton.ca/scs/?p=1083