ECE 391: Computer Systems Engineering

Fall 2025

Syllabus

Glycine max
Instructor Kirill Levchenko
Mondays 4pm in CSL 458
Dong Kai Wang
Mondays 3pm in ECEB 2066
Grad. TAs Sharvil Garg
Neil Ghose
Vinit Gupta
Pranav Rajpal
Hao Ren
Rudra Thakkar
Head CA Jacob Zheng
Lectures Tue & Thu 2 to 3:20 pm
ECEB 1002

Please read the course policies below carefully, we expect you to understand them.

Grading

Your course grade will be weighted as follows:

Late Assignments

All assignments (MPs) are due on the date indicated on the assignments page. No exceptions to the due date will be made. However, you have an automatic two-day extension for MP0 and MP1, and each checkpoint of MP2 and MP3. You do not need to notify us to use these extensions. They will be applied automatically to late assignments.

Group Work

We encourage you to discuss lecture material with other students. In addition, MP3 is completed in groups of up to three students. Assignments that are not specifically designated group assignments must be completed individually. You may not with work anyone else on these assignments.

Permitted Resources

In completing your assignments, you may use the following resources:

  1. Documentation, how-to guides, and tutorials about the software and tools used in class (Qemu, gcc, gas, gdb, etc.), that do not contain information about how to solve assigned programming problems;
  2. RISC-V instruction set manuals, RISC-V Platform-Level Interrupt Controller specifications, Virtual I/O specifications, and any other specifications that do not contain information about how to solve assigned programming problems;
  3. References listed on the course website; and
  4. Wikipedia articles.

You are not allowed to use any resource that does not fall into one of the categories above, unless you have obtained explicit instructor permission.

Prohibited Resources

You are not permitted to use the following:

The term use in the sentence above should be understood very broadly to prohibit: downloading another person's code, looking at another person's code, compiling another person's code, using another person's code to test your own code. Having another student's code on your computer, or having your code on another student's computer, will be considered a violation.

You are not permitted to discuss the technical substance of the programming assignments with anyone except the course staff and, for MP3, members of your group.

You are not permitted to use LLMs in any way unless explicitly permitted in writing by the instructors.

Academic Integrity

All work products of this course (machine problems and examinations) must be (a) your own individual work for individual assignments, and the work only of your team for group assignments, and (b) completed using permitted resources only.

You are responsible for all work your group turns in. You must take proactive steps to make sure that other members of your group do not cheat or plagiarize.

Historically, the most common academic integrity violation is this class has been plagiarism. Plagiarism means representing the ideas of others as your own. Note that plagiarism is not limited to copying another person's code. In the context of this class, plagiarism includes using the ideas expressed in another person's work in your assignments.

Academic integrity violations will be processed through the FAIR system, which retains a record of violations with the college.

If you violate the academic integrity policy on an assignment, you will receive no credit on the assignment and a 10 percentage point (roughly equivalent to a letter grade step) drop in your overall course grade. If you cheat on an exam, you will receive no credit on the exam and a 10 percentage point (roughly equivalent to a letter grade step) drop in your overall course grade.

Disintegrations

You are free to use any methods necessary, but I want them alive. No disintegrations!