CS 61C Fall 2023 Calendar Extensions Staff Policies Resources Quick Links
Project 2: CS61Classify
Office Hour Policy
Debugging Videos Setup: Git
Setup: Java and Python Setup: Venus
Restoring Starter Files Part A
Appendix: Function Definitions Appendix: Calling Convention
Project 2: CS61Classify
Part A Deadline: Tuesday, September 19, 11:59:59 PM PT
Part B Deadline: Tuesday, October 3, 11:59:59 PM PT
In this project, you will write RISC-V assembly code to classify handwritten digits with a simple machine learning algorithm.
The goal of this project is to familiarize you with RISC-V, specifically calling convention, calling functions, using the heap, interacting with files, and writing some tests.
Lectures 7-10, Discussions 4-5, Labs 3-4, and Homework 4 are required for this project, and we highly recommend finishing those assignments first. Also, make sure you’ve finished the setup in Lab 0.
Office Hour Policy
Before coming to office hours, please make sure you have done the following:
1. Adddescriptionsforeachregisterinyourfunctionstoindicatetheirpurpose(“thisholdsi”istoovague,pleasebeasspecific as possible so it is easier for us to read and comprehend your code.)
2. Readthecallingconventionguide.
3. Usecallingconventioncheckerandresolveallcallingconventionerrorscaughtbythechecker(unlessyourquestionis
specifically about how to fix these errors).
4. Usememcheckandresolveallmemoryaccesserrors(unlessyourquestionisspecificallyabouthowtofixtheseerrors).
5. Watchthedebuggingvideos(linkedbelow).
Make sure to fill out the template on the OH Queue with as much description as possible. Questions that do not use the template or have very low-effort descriptions (such as “it doesn’t work”) will be skipped/deleted.
Debugging Videos
Check out this playlist for videos demonstrating how to debug memory and calling convention issues! Please make sure you’ve watched these videos before coming to office hours or posting a question on Ed.
Setup: Git
This assignment can be done alone or with a partner.
Warning: Once you create a Github repo, you will not be able to change (add, remove, or swap) partners for this project (both 2A and 2B), so please be sure of your partner before starting the project. You must add your partner on both galloc and to every Gradescope submission.
If there are extenuating circumstances that require a partner switch (e.g. your partner drops the class, your partner is unresponsive), please reach out to us privately.
1. VisitGalloc .LoginandstarttheProject2assignment.ThiswillcreateaGitHubrepositoryforyourwork.
2. Clonetherepositoryonyourlocalmachine(youdon’tneedthehivemachineatallforthisproject).Windowsusersshould
clone in Git Bash.
$ git clone 61c-proj2
(replace username with your GitHub username)
3. Navigatetoyourrepository: $ cd 61c-proj2
4. Addthestarterrepositoryasaremote:
$ git remote add starter https://github.com/61c-teach/fa23-proj2-starter.git
5. Pullfromthestarterrepo:
$ git pull starter main
If you run into git issues, please check out the common errors page.
Setup: Java and Python
Make sure that you followed the local computer setup directions in Exercise 2 of Lab 0.
Setup: Venus
We will use the Venus web interface for debugging. The procedure is very similar to the Venus setup in Lab 3.
1. Inthe61c-proj2directory,runbashtest.shdownload_toolstodownloadVenusforthisproject.(Youonlyneedtorunthis
2. Onyourlocalcomputer(notthehive),navigatetoyour61c-proj2directoryandrunthiscommand.Windowsusersshould run outside WSL (Git Bash is recommended).
$ java -jar tools/venus.jar . -dm
3. Inyourwebbrowser,openhttps://venus.cs61c.org (ChromeorFirefoxisrecommended).IntheVenuswebterminal,run mount local vmfs. In your browser, you may see a prompt saying Key has been shown in the Venus mount server! Please copy and paste it into here. You should be able to see a key (string of letters and numbers) in the most recent line of your local terminal output; copy and paste the key into the dialog.
4. NowtheprojectfilesfromyourlocalcomputerareloadedintotheVenuswebinterface.InVenus,youcanopentheFilestabor run ls vmfs in the Venus terminal to see all your files in your browser.
If you can see your files in Venus, you can skip the rest of this section. If the above steps didn’t work, you can follow the guide below to manually upload files.
Manually Uploading Files
Restoring Starter Files
To restore starter files, please check out the common errors page.
浙大学霸代写 加微信 cstutorcs