ICS 621 Fall 2022 Assessment (Grading)

The grade in the course will consist of the following components (see below for details):

  • Class participation (20%): You must attend lectures on Zoom and participate in discussions.

  • Homework (40%): There will be 5-6 homeworks throughout the semester.

  • Research Project (40%): You will be expected to complete a research project.

Details

Class participation (20%)

You are expected to attend the lectures. Throughout the lecture, I will be asking questions and you are expected to participate in the discussions.

Homeworks (40%)

There will be 5-6 homeworks throughout the semester (more earlier in the semester, fewer once you start working on the research project). The purpose of the homeworks is to reinforce the material and sometimes to prepare you for the upcoming lecture. You may collaborate on the homework with anyone taking the class this semester. However, the final write up must be performed individually, in your own words. That means copying solution from each other is NOT permitted. You must write the names of everyone you discussed the solution with in your homework write-up.

Homework submission: Homeworks will be due at the start of the lecture on Fridays. Since homework solutions will be discussed during the lecture, no late homeworks will be accepted.

Research Project (40%)

Goal. Ideal outcome of the project at the end of the class is for you to obtain results that can be published at an (algorithms) conference. To receive full credit on the project, you do not have to achieve this goal (that's the nature of research), but that should be your goal. Your write-up should describe the ideas and approaches you took to solve the problem and where/why they failed.

Topic. The topic of your research project should be related to algorithms. I will be available for brainstorming during office hours for possible topic of interest. You should be interested in the topic, but I must approve it, so check with me first.

Format. Here is a list of possible formats of the project. This list is not exhaustive, so if you have an interesting idea that you don't see on the list below, please discuss it with me.

  • Learn about an open problem and try to solve it (and hopefully solve it).

  • Implement one or more algorithm or data structure presented in class and experiment with it. Example of outcomes: Understanding the behavior of an algorithm or data structure in practice; comparing two or more related algorithms or data structures in practice; determining whether a previously unimplemented algorithm is practical; finding a way to optimize the implementation of an algorithm to be practical, e.g. by optimizing the use of cache hierarchy or through the use of special instructions of the specific architecture. If a theoretically-efficient data structure's implementation is not practical (e.g., too slow or memory intensive) explore and describe the reasons/bottlenecks for its practical limitations. The submitted code should be well-documented (commented) - you will be graded on how easy it is to read and understand your code. The code should also be thoroughly tested, and the testcases should include comments, documenting what they are testing (testcases should be submitted together with code as part of the project).

  • Invent a good open problem. Here, the main contribution is posing the problem itself. But you should think about how it could be solved as well. Your final write-up should discuss the motivation for the problem, related work, and potential approaches for solving it and where the challenges lie.

  • Write up a set of related topics in more detail. The writeup should read like a book chapter, i.e., it should provide more extensive introduction, motivation and literature review of related results for the problems discussed, present all details, proofs and a full set of bibliographical references. Ideally, it should conclude with several exercises on the topic and/or a list of open research problems. If you decide to take on this project, talk to me first to agree on the set of topics that should be covered by your write-up. This type of project might potentially require longer than the 15-page limit.

Write-up. The project must be written up in a research paper format. It should be somewhere between 6 to 15 single-spaced pages with 1 inch margins and 11pt font. It should start with a title, author and a 1-2 paragraph abstract. The body of the write-up should consist of the introduction, body and conclusions. Introduction should describe the problem you are addressing, present a brief literature review of related results on the topic, and a summary of your results. The body should describe your solution, teachnique/approach to solving it and results. If you haven't achieved significant results, you should still describe the techniques/approaches you have tried and why they didn't work. The conclusions should summarize what you have presented and mention possible directions for future research, e.g. open problems that remain unsolved and/or possible approaches that you might have tried if you had more time. You are welcome to collaborate on the project with anyone (even outside the class), including me, but you should give credit to people you have collaborated with. This is the nature of research.