FAQs will be posted here. Keep checking this page.
Tips for productive office hours
- Be prepared to explain the tests you have written and tried to diagnose your problem(s) and do not expect significant help debugging if you have not tried such diagnosis.
- Prepare for office hours and have screenshots, your screen with code ready to share, your student VM up and running.
- Expect to have ~5 mins with the TA if other students are waiting.
- Do not expect TAs to debug your code or be able to interpret poorly-structured code. This is graduate-level class, and it is our expectation that you will write your own tests, experiment with approaches, and debug your code.
General
Gen.Q1: The project does not compile and I cannot run any tests.
Please follow the direction in the “Using Amazon Web Services” section to spin up an AWS instance with the development environment.The project setup should work within the AWS instance that we provided for the project, and you should have no expectation that it will work anywhere else. If you are trying to run it anywhere else, it probably won’t work and, even if it does, you must ensure your code works in the AWS instance as the instructors will use it to grade your work.
Gen.Q2: What is the autolab website for 746?
The autolab website is autolab.pdl.cmu.edu.
Gen.Q3: Do we get any grace days? How many?
Grace days are your automatic flexibility for the inconvenient time issues that arise during a semester, such as concurrent deadlines in other classes, minor illnesses, etc. You have a total of three grace days (i.e., unpenalized late days) for the entire semester. Each checkpoint has a due date and an end date. Grace days can be used to avoid late penalties for submissions past the due date. No submissions are accepted after the end date.
Gen.Q4: How many submissions do we have per checkpoint? Autolab shows infinite submissions remaining.
Autolab submissions are for submitting code that you have tested well locally and believe works correctly. It is NOT a test service and should not be used as such. You are allowed 25 submissions per checkpoint, which should be many more than required, if you are doing appropriate testing locally. Any additional submission after the first 25 submissions will incur a penalty of 10% of that checkpoint grade. Autolab shows infinite submissions because we do not impose a hard limit, but rather have a penalty per submission. You can easily check the number of submissions you have already made by scrolling down the checkpoint-submission page, as well as looking at your handin history via 'View Handin History' on the left panel.
Gen.Q5: Will we be graded on code quality for the checkpoints? Do we have a code style guideline?
You should always keep your code in good style, which is generally the requirement of CMU courses (and all jobs in the real world). The style for checkpoints will be inspected and graded after the entire project is completed. In general, you should follow 15213 guidelines for code style.Exceptions to the 15213 guidelines:
- You can leave print/debug statements for checkpoint 1 and 2 of the projects, as we understand it can be useful in the later stages. They should be removed for checkpoint 3.
Gen.Q6: What is the password for the user account in the AWS instance? I want to install a package.
We do not provide sudo permission for students in the project VM. There are ways to install packages without root privileges if needed. If you insist on using third party tools or library in your code, you adopt any risk of your code not working when it is submitted to Autolab. Please make sure it will pass the tests on Autolab, so that you are not surprised by your score.
Gen.Q7: How can we find out more about a particular aspect of the lab?
Have you carefully read the handout? :)
Gen.Q8: I can’t access to the course materials on the web page (“Access forbidden”).
Course materials are only accessible within the CMU network. You need to use CMU’s VPN services when accessing from off-campus.
Gen.Q9: I'm getting a "Connection Timeout" issue on AWS.
Go to your AWS web portal and click on your EC2 instance. Under security, inspect the inbound rules. Ensure that there is a source that includes your computer's IP address and if there is not add a rule with 0.0.0.0/0 as source.
Using Amazon Web Services (AWS)
Read the following guide before starting on any project development, and make sure your AWS account is working.You must ensure your code works in the AWS instance as the instructors will use it to grade your work.
aws.Q1: Setup and Billing
- Create a new AWS account here for
this class.
- Make sure you use a form of your Andrew email address when you create your AWS account, specifically AndrewID+18746@andrew.cmu.edu or AndrewID+15746@andrew.cmu.edu. For example, if your Andrew ID is xyz@andrew.cmu.edu, then your AWS account should be xyz+18746@andrew.cmu.edu or xyz+15746@andrew.cmu.edu.
- At step 2, select "personal" to the question "How do you plan to use AWS?"
- At step 5, you must select the Basic (Free) support plan.
- Your new account may come with 750 hours/month (for 12 months) of free instance time. You need to use the "Free-Tier" instances in order to take advantage of that promotion.
- To monitor your billing and usage, sign in to your AWS account, click on the drop-down menu with your account name and click on "My Billing Dashboard".
aws.Q2: Starting your AWS instance
- Sign into your AWS account.
- Click on EC2 under "Compute" to be taken to the EC2 Dashboard.
- On the right corner of the top bar, click the second drop-down menu from the right to select the datacenter you will be using. Select ""US East (Ohio) us-east-2.
- In the sidebar on the left, click on "AMIs" under the "Images" group.
- Click on the drop-down menu under "Amazon Machine Images (AMIs)" and select "Public images".
- Use the bar to the right of the drop-down menu to search for 'ami-0a3b7dc20c8ad6973'. Double-check that the image owner is '180007478173' and the AMI name is '746-ub22-v9'. This is the VM image for the course. Use the refresh button at the top right if the image doesn't show up right away.
- Select the AMI, and click "Launch instance from AMI".
- Make sure the "t2.micro" instance type is selected (which is also Free-tier eligible, if you are using a new account that benefits from that promotion).
- Click "Review and Launch".
- On the next screen click "Launch".
- Select "Proceed without a key pair", and click "Proceed without key pair". To access the instance, you will need this key. (If you get "access forbidden" message, make sure that you are on campus and using CMU-secure wifi, or you are connected to CMU VPN.)
- Remember to run "chmod 400 746-student.pem" to ensure your key pair file carries the right permissions
- Click "Launch Instance", and on the next screen click "View all instances"
- In the EC2 Dashboard Instances screen wait for your VM instance state to transition to "running", and the VM status checks to indicate "2/2 checks passed".
- Select your instance and check the 'Public IPv4 DNS' column. Make a note of the machine's FQDN, which will be of the form ec2-X.us-east-2.compute.amazonaws.com
- From your terminal, run:
ssh -Y -i "path/to/746-student.pem" student@ec2-X.us-east-2.compute.amazonaws.com
- Make sure the path passed to the -i option points to the 746-student.pem key pair you downloaded from the course website
- Run the ssh command to connect to your instance!
aws.Q3: Securing your AWS instance
It is a good idea to change the key you use to login to your AWS instance, and stop using the 746-student.pem which the AWS template comes configured with. To do so, we provide a simple script: make_secret_key.sh which will generate a new key and use it to replace 746-student.pem on your instance. Note that if you terminate your instance and create it again from the template image, you will have to run this script again.
aws.Q4: Terminating your AWS instance
When you are done using your VM, you can stop it or terminate it. You can stop your VM by running the shutdown command from within Ubuntu, or using Actions → Instance State → Stop.
Be warned that when your VM is stopped it still consumes resources, which will lead to usage charges for EBS storage (and you may run out of your credit faster). Instead of stopping your VM, make sure to copy out your source code when you're done, and then terminate your instance. You can do that via Actions → Instance State → Terminate.
aws.Q5: Using free tier
AWS free-tier accounts give access for free to a limited amount of AWS resources for the first 12 months of the account (complete information about these resources can be found here). To take advantage of these benefits, you will need to create a new AWS account, following the instructions in aws.Q1. For this class, you will need t2.micro and EBS volumes, which both are covered by the free-tier allowance.Warning: Using more than the allowed resources by AWS free tier or resources not listed on the AWS website will result in you being billed, so be careful.
Answers to common questions:
- I already have an AWS account using my andrew-id. Should I create a new one? Yes, follow the instructions in aws.Q1.
- Will I receive vouchers for AWS? No, we expect the free-tier access to be enough to complete the course.
- I have another class using AWS. Can I use the same account for both? We cannot guarantee that, between both classes, you will not go over free tier limits. For that reason, we highly recommend creating a new, separate account for this class.
Lab 1: myFTL
myFTL.Q1: Do we need to make the in-memory data durable?
You can assume the contents of DRAM is non-volatile by some mechanisms that we aren’t asking you to implement.
myFTL.Q2: Which GC policy do we need to implement?
You need to implement all four policies described in the handout (section 5.2). The configuration object passed to the constructor function can be used to get current GC policy (Appendix A.3.1).
myFTL.Q3: What is the age of a block for LRU / LFS cost-benefit policy?
The age of a block is how long it has been since you last modified that block. In other words, age of a block = current timestamp - timestamp of the most recently written page of block.Zoom
This is an in-person class. But, if circumstances dictate, some lectures for this class may be delivered through Zoom. As per our course policy, recording lectures or downloading lecture recordings is prohibited. See below for more information.Please follow the steps below to set up your Zoom account and your Zoom client. Do this well ahead of the lecture time and office hours, and if you face difficulties, post on Piazza or email us at the course mailing list for help.
Setting up your Zoom account
- Click "Sign in" at http://cmu.zoom.us/ to setup
- If you get a notification about adding your account to "EE-vendors@lists.andrew.cmu.edu" choose Yes
- Set your name at https://cmu.zoom.us/profile
- Go to https://cmu.zoom.us/account (and verify your email if needed). You should see that your Account Type is "Education" and your Account Name is "EE-vendors@lists.andrew.cmu.edu"
Setting up your Zoom Desktop Client
- Make sure you have completed the account setup above first
- Download the Zoom client for your OS at https://www.cmu.edu/computing/services/comm-collab/web-conferencing/zoom/how-to/launch-zoom.html
- For OS X: Give Zoom Accessibility access in Privacy and Security preferences of your Mac (to enable screen control if needed to, for office hours). You'll need to restart Zoom after doing so. See https://support.zoom.us/hc/en-us/articles/360016688031-Using-the-Zoom-Client-and-Zoom-Rooms-with-macOS for details.
- You must install the Desktop client, and not just use the web client.
- Select "Sign in via SSO"
- Fill in your company domain: cmu.zoom.us
- You will be redirected to the Andrew authentication page. Use your credentials and you will be redirected to your Zoom client.
- Join a test meeting (https://cmu.zoom.us/test) to check the software and audio. Be sure to test you can write to and read from the chat, and use the 'Yes', 'No', 'Raise Hand' buttons in the Participants window. Make sure to also test your microphone in order to be able to ask questions during the lectures and office hours.
Regrade Requests
We worked hard to grade the exam consistently and correctly for all students. If concerned about the points you received for any given question, please carefully re-read the question and the sample solution. The class policy does allow (and describe the process) for regrade requests, but such requests should be submitted ONLY if you believe that an error was made in grading your exam. BEFORE submitting such a request, consider these questions and make sure you’re your request addresses them. Historically, we find that few regrade requests result in changes, because the original grading was consistent with expectations and the rubrics applied to the entire class.- Do the words I wrote, as I wrote them, provide the answer for which I am arguing? We can only assign points for what was written in the answer, not what may have been intended. In some prior years, regrade requests from students offered detailed explanations of what they meant to say, even if that is not clearly indicated in the text they actually wrote. When important clarity or assumptions are left out of a written answer, the grader can not fill in the gaps with their own knowledge... they must grade the answer given as written.
- Does your written answer specifically address the question asked? We do not award points for simply mentioning facts about the question’s topic, even if some of those facts may also be part of a correct answer (e.g., as reflected in the sample solution). Full points are awarded for an answer that is clear, complete, and accurately responsive to the question asked. If the answer does not go beyond listing the generic information, by applying the information to the specific question asked, it will not receive full points.
- Does your written answer include some correct and some incorrect information? Answers that include some correct information and some incorrect information will not receive full credit; for example, 2 correct and 1 incorrect might average out to 2/3 correct. A regrade request should not highlight one aspect of an answer and ignore flaws with the answer as a whole.
- Does your written answer provide clear explanation? An answer that mentions the right aspect(s), but then does not provide clear explanations of how they apply to the specific question asked will not receive full credit.
- Was your correct answer marked incorrect or do you just disagree with the amount of partial credit? We try hard to make partial credit assignment consistent across the (large) class. In some cases, you may feel like you should receive more points for a particular incorrect answer, but we are not going to change the point assignments for a single person to be different than was the case for all.
Last updated: 2024-08-27 22:08:34 -0400