Your term project in this course is intended to give you a chance to pursue more self directed work that explores and applies the material from the course in greater depth. For any undergrads in the class, this may mean implementing a nontrivial project or technique from a paper (I can provide some suggestions). For grad students, this should mean identifying a research problem to explore and tackle. In either case, the goal is that the outcome be worthy of adding to a CV/resumé. You may not complete the vision of the project during the course itself, but you must complete a substantive component of it that can be evaluated as to whether the idea/technique shows promise.
Term projects may be completed by individuals or pairs.
Before starting a project, you must submit a project proposal and have it approved by me. I recommend that you explore the different topic areas on your own in order to find something that you are interested in. It will be beneficial to begin investigating that topic even before we cover it in class in order to provide yourself enough time to get advice or help from me.
A good research proposal should have a few ingredients:
You should upload a proposal containing these main sections along with a title and the names of your group members to CourSys by the proposal due date. You should also schedule a time to meet with me regarding your proposal in order to get feedback and determine whether or not you need to modify your plans in order to have an approved project that you can start on.
If you are stuck in terms of finding something interesting, you might consider this advice from a few researchers at Facebook and UCL: From Start-ups to Scale-ups: Opportunities and Open Problems for Static and Dynamic Program Analysis.
By the end of the semester you also need to submit a term project report. This should carefully lay out in greater detail the problem that you worked on as well as the progress you made and possible future directions. You should treat this like the first draft of a paper that could be submitted to a conference or workshop.
If you put good effort into your proposal, you'll find that both completing and writing your paper becomes significantly easier. Where your proposal defines a plan for what you intend to do, your paper should discuss what you actually achieved. Fundamentally, the same questions come into play and must be answered. In answering these questions, you should demonstrate the knowledge and skills that you acquired within the course. Show me that you learned something and that you can put these skills to use while thinking critically.
There is no minimum paper length, however, it is unlikely that you can successfully write what you need to in fewer than four full pages. Most students require six pages in order to adequately include clear explanations of the problem, the methodology, the evidence, and its interpretation. The maximum paper length is ten pages.
For convenience, I recommend using the USENIX paper templates. If there are multiple people on your team, you can collaborate via Overleaf. SFU already has Overleaf licenses for all grad students, so you can simply register using your school email address.