Please familiarize yourself with the information on this page.

Academic Integrity

Cheating or plagiarism will NOT be tolerated!!!

All students are expected to be familiar with, and to comply with, the UCR academic integrity.

[Sanctioning Guidelines] [Academic Integrity Student Guidlines]

Any work submitted as a homework assignment or examination must be entirely your own and may not be derived from the work of others, whether a published or unpublished source, the worldwide web, another student, other textbooks, materials from another course (including prior versions of this course), or any other person or program. You may not copy, examine, or alter anyone else’s homework assignment or computer program, or use a computer program to transcribe or otherwise modify or copy anyone else’s files. It is not acceptable to look at exams or homework assignment solutions from prior quarters.

It is not acceptable to share your solutions or codes with your friends, or anyone else (other than the course staffs) without the permission of the instructors. You are not helping your friends by doing so. It is not acceptable to read other students’ solutions or code. You cannot share the course material (e.g., exams, homework assignments and solutions) with anyone else without the permission of instructors after you have completed the course.

Penalties may be assessed after you have completed the course, and some requirements of the collaboration policy (such as restrictions on you sharing your solutions and standard solutions) extend beyond your completion of the course.

The minimum penalty for cheating (including plagiarism) will be a zero grade for the whole assignment; a typical penalty will be -100% on the assignment, or even more. All violations of this collaboration policy will be reported.

For Homework Assignments:

You can get help from the instructor and TA. You can also get help from textbooks (or relevant books), the Internet, or discussions with your classmates, but you must cite them fully and completely (i.e., provide citations to the book or website link, acknowledge the other students that had discussions with you). Again, you are NOT allowed to:

  • copy anything from the book or the Internet,
  • read or look at anyone else's solutions (write-up or code),
  • share your solutions (write-up or code) with any other students, during or after the completion of the course.
  • It’s OK to get inspirations from other sources, and citing the sources does not affect your grade. However, using any source without citing them will be treated as cheating and will result in unfavorable outcomes.

    If you use any AI-based resources (e.g., ChatGPT), you need to provide the full conversation with it to clearly specify what kind of help you received from it.

    When you write down your solution or code, it MUST be close-book. This is to make sure you truly understand and can recreate the solutions.

    We run automatic code comparison programs on student solutions. These programs are very good at detecting similarity between code, even code that has been purposefully obfuscated. Such programs can compare a submitted assignment against all other submitted assignments, against all known previous solutions of a problem, etc. The signal-to-noise ratio of such comparisons is usually very distinctive, making it very clear what code is a student’s original creative work and what code is merely transcribed from some other source. Cheating is simply not worth the risk.

    Grading

    Course Policy Test 1%
    Written Assignments (8% × 3 =) 24% + Bonus
    Coding Assignments (5% + 10% + 10% =) 25% + Bonus
    Project 1 15% + Bonus
    Project 2 15% + 5% Bonus
    Midterm Exam 20% + Bonus
    Candy Bonus up to 10%

    Projects

    There will be two projects, focusing on theory and practice, respectively.

    Project 1:

    This is an project that everyone will work on your own. As an entry-level project, you are going to implement a parallel sorting algorithm on your own. You can add any optimizations that you find useful, and your score will be based on the performance of your code (10pts), and the completeness of the report in experimental study (5pts). Bonus points are available for both parts.

    Project 2:

    You can work as an individual (if you choose the theory part only) or in teams of at most two people (if you also want to work on implementations). In this project, you are going to do in-depth study of one topic that we mentioned in class. There will be two tracks, the basic track focuses only on theory, and no implementation is required. The bonus track allows you to work in teams, requires a presentation. The bonus track requires implementing certain algorithms, can be much harder than the basic track, but also gives you up to 5 points bonus.

    Your tasks include the following:

    • Detailed lecture notes about the algorithm described in class, how it solves the problem, and necessary theoretical analysis for correctness and/or efficiency. Your lecture notes will be shared with everyone in class and future students of the class.

    • (Basic track) Survey at least one state-of-the-art algorithm on a related topic in recent research paper (either for the same problem or a related problem). You need to write detailed paper-reading note to summarize the idea. You should make it understandable to general audience with some background in parallelism (e.g., your classmates). This part will also be shared with the entire class for other students who might be interested in this problem.

    • (Bonus track) If you are interested in implementing the algorithm (either the algorithm in class or those from other papers), you can work in a team of at most 2 people to study the project together. If so, you have to specify this in the proposal of the project and make clear plans. You can get up to 5 points bonus if you choose this track. You will also need to present this part in class at the end of the quarter.

    A list of topics will be provided later. You can choose any one of them. General guidance in paper reading and suggestions in what paper to read will also be provided.

    Your grade includes the following parts:

    Proposal (5pts) The proposal should describe the topic that you would like to work on. Specify your 80%, 100% and 120% goals. Find initial related work and propose your plan.

    Lecture notes (3pts) As mentioned above, your first task is to summarize the content covered in class related to your project topic.

    Final Report (7pts) For the basic track, this report should contain the paper reading note. You are expected to summarize one or more papers on a research topic, discuss their advantages and limitations, compare them to other existing research work. For the bonus track, this report should contain experimental study of your implementation. You are expected to provide code, document, and experimental results in testing the performance (i.e., effort to make sure your implementation is reasonable).

    (Bonus) Codes/Presentation For the bonus track, you can get 5 points bonus based on your implementations. You are required to give a presentation of your experimental results in class if you choose the bonus track.

    • Up to 2 points will be assigned based on the code organization/benchmark design/documentation.

    • Up to 3 points will be assigned based on the presentation.

    Late Policy

    You have 5 grace days to use across the quarter, which apply to both written and programming assignments (per GradeScope submission entry). The number of grace days you use for each assignment must be an integer. For example, if you submit 12 hours late, that’s still 1 grace day, instead of 0.5. For each homework assignment, you can use no more than two grace days (no more than 48 hours late). You won’t lose any points by using grace days, but if you use up your grace days, you have no further late days to use (i.e., you won’t get any points if you submit late and have no grace days left).

    Other suggestions

    • You need basic knowledge about algorithms, data structures, and discrete math. Courses such as CS141 is helpful. If you don’t have some basic background in algorithms, you should take these courses first. If you don’t have such basic knowledge and you still want to take the course, you have to be aware that you need to spend more time on the course.

    • Start working on homework assignments as early as possible. You have about 2 weeks for each of the homework assignment. However, don’t start working on it on the last day. The homework problems can be hard and take a lot of time to finish. The programming homework may need a lot of time to debug. Also, before the deadline, the course server may become busy. Planning ahead would give you the best flexibility.

    • Please don’t underestimate the time you will need to spend on this course. You should expect to spend about 10 hours per week on this course (including lectures, homework assignments, programming assignments, preview/review, etc.)

    (Some policies are borrowed from CMU 15-210.)