Class Project (Spring 2025)

1. Key Dates

Subject to change.
  1. 2/25: Project proposal due by 6pm on Canvas.
  2. 2/28: Project choice finalized
  3. 3/14: Grace period ends
  4. 4/24: Project due on Canvas by 6pm

2. General Policy

Subject to change.
  1. This project is optional and will count as your final exam score. You cannot choose the project and take the final exam simultaneously.
  2. Each team must consist of two students. We will accommodate a maximum of 15 teams, with no more than three teams assigned to any single project topic.
  3. There are five topic areas listed below. Please note that due to varying demand, we may not be able to accommodate your first choice.
  4. You are eligible to do the project only if your proposal is selected, which depends on the quality of your submitted proposal (details to be discussed below). Once your topic is selected, it cannot be changed.
  5. For the main CAD engines, only C/C++ and Python may be used. There are no restrictions on the programming languages or tools you can use for developing GUIs.
  6. If you plan to use commercial off-the-shelf software that could significantly reduce the amount of coding required, you must obtain prior approval.
  7. Each student will receive a grace period to decide whether to proceed with the project or opt out. After this grace period, opting out is not permitted, and choosing to do so will incur a 15% penalty on your final exam score.
  8. Using code from others constitutes cheating.

  9. DO NOT POST YOUR CODES ON GITHUB EVEN AFTER THE SEMESTER IS OVER.
  10. DO NOT POST YOUR CODES ON GITHUB EVEN AFTER THE SEMESTER IS OVER.
  11. DO NOT POST YOUR CODES ON GITHUB EVEN AFTER THE SEMESTER IS OVER.
These rules are not intended to deter you from participating. Many students have found that hands-on programming experience is incredibly valuable for learning. So, start discussing with your classmates now!

3. Proposal Format

I just need one submission per team.
I just need one submission per team.
I just need one submission per team.

You are to include the following in 1 to 2 pages. Upload the file as an attachment on Canvas (the site is open until the due date specified early).

  1. Names of the team members
  2. Project choice
  3. Alternative choice if the proposed choice is not granted
  4. Programming language and tools/packages to be used:
  5. Implementation scope: explain what will be vs. won't be implemented, and any extensions to be added
  6. Tentative schedule
  7. Special circumstance if any

4. Project Topics & Resources

I am open to other topics as long as they have physical design elements.

5. What to Submit (Final Submission)

I just need one submission per team.
I just need one submission per team.
I just need one submission per team.

The project submission portal will be available on Canvas. For full credit, please ensure you upload the following items as a single ZIP file:

  1. Source codes, scripts, makefiles, and a README file detailing how to compile and run the project.
  2. Any additional packages required for compilation, so we can build the project without needing to search for and download them.
  3. Presentation slides in PPTX format, including all tables and images related to the GUI.

    I need PPTX, not PDF.
    I need PPTX, not PDF.
    I need PPTX, not PDF.

Important note

  1. Ensure that your package is self-contained and avoid using obscure packages that could complicate the compilation and execution processes.
  2. Your project must compile and run successfully on ECE servers, as this is the sole platform we will use for testing your program.
  3. If your project relies on tools like MATLAB, ensure they are accessible and can be invoked from the ECE server paths, not from your personal computer.

6. Project Report Format & Grading Policy

Your final report should be formatted as a PowerPoint presentation, not as a Word document. Your slides should include the following sections:
  1. Title Slide: Include the project title, team members' names, and semester information. Please make sure to add the semester info!
  2. Problem Formulation: One slide summarizing the problem you addressed.
  3. Algorithm Discussion: One slide detailing the algorithm you used.
  4. Implementation Issues: Discuss in detail the challenges you encountered, how you addressed them, and any issues that remain unresolved.
  5. Experimental Results: This is the most critical section. Please be thorough and include detailed explanations of all tables and images.
  6. Extensions Added: (Optional) Describe any additional features or functionality you incorporated beyond the basic requirements.
  7. Conclusions: Summarize your findings and the impact of your work.
Your final grade will be determined based on the following criteria:
  1. Completeness & Correctness (60%): Evaluates how fully and accurately the project meets the specified requirements.
  2. Programming Style and Documentation (20%): Emphasizes clean, readable code and comprehensive documentation. Functions or sub-routines exceeding 30 lines will incur penalties for lack of conciseness.
  3. PowerPoint Presentation Quality (20%): Assesses the clarity, organization, and visual appeal of your presentation slides.
  4. Extensions (Bonus Points): Additional credit for any extra features or capabilities that enhance the project beyond the original specifications.
Important note
  1. Your project will be graded during finals week. Please monitor your email regularly during this time in case we need to contact you about any issues with compilation or runtime errors.
  2. It is your responsibility to ensure that your source codes can be successfully compiled on the ECE servers. Include detailed instructions in the README file to facilitate this process.
  3. We will test your executable using the benchmark designs we have provided, as well as some additional wildcard circuits. Your grade will be based on our ability to reproduce your results, both in terms of solution quality and runtime, and how your results stack up against the wildcard circuits. Your README file should clearly instruct how to run your executables and explain any command-line options.
  4. Furthermore, it is essential that you clearly highlight any extensions or additional features you have implemented in both your final report and project PowerPoint presentation. This will ensure that these enhancements are properly considered during grading.