15-213/18-213/15-513 Intro to Computer Systems: Frequently Asked Questions
General Programming Issues
When I try to run an executable file included in a lab handout, I get a "Permission denied" error. What should I do?
- The executable bit is not set. You have two options:
- Reextract the files from the tarball (preferred).
- Run “chmod +x <filename>” to set the executable bit (risky—the file itself may be corrupted).
- This problem may occur if you extract the handout tarball on a Windows machine. Always extract the handout on a Linux machine.
How do I extract a tarball on a Linux machine?
- Run “tar -xvf <filename>” to extract it.
How do I avoid mixing tabs and spaces in my code?
How do I make sure I don't have any non-ASCII characters in my code?
- Look at your code on autolab -- it will complain if you have non-ASCII characters.
- Run “file mycode.c” You should expect to see: “ASCII C program text”.
My code has non-ASCII characters, how do I find where they are?
General Course Issues
Why can't I access Autolab?
- Did you recently join the course? It is possible you do not yet have an account.
- Use this form to notify us, and then check again in 24 hours.
Ask for help via a (private) post to Piazza if
you need an account created for you.
Why can't I access the shark machines?
- You should be able to access the shark machines with your Andrew credentials. Ask for help via a (private) post to Piazza if
you have trouble.
Must I work on the shark machines?
- Your work will be graded on the shark machines, so it is in your best interest to work there.
- For most labs, you may alternatively work on the Andrew Unix machines, which are nearly identical.
- You must complete bomblab and buflab on a shark machine.
I have trouble working on the shark machines because I'm uncomfortable using the shell or available editors.
- Consider attending the Linux Boot Camp at the beginning of the semester.
- Consult the quick-reference sheets posted on the Resources page.
Should I read the lab writeup before seeking help?
- Did we say, "Yes"?
- Yes, we did.
- Please read the lab writeups.
How can I get help?
- Post questions on Piazza (for assignments, exams, and logistics issues).
- Stop by during office hours.
- Schedule a 1:1 meeting with your instructors or TAs.
Must I attend a particular recitation?
- You may attend any recitation you wish as long as the instructor leading the recitation allows it.
- Please make sure the recitation you normally attend is the one specified on your Autolab account; if this is not the case, let staff know via a Piazza post.
I am working from a Windows machine. How do I connect to the Shark machines?
- Use the Cisco VPN client if you are off-campus: Cisco VPN client. There is a known issue with connection stability if you do not use the VPN client: your connection will randomly freeze or drop.
- Use the CMU recommended Windows SSH/SFTP client: Tectia SSH/SFTP . If you need a lightweight SSH client you can use PuTTY instead: PuTTY
- Avoid X-Windows (X-Term, XEmacs etc.) and the WIndows AFS client if you do not have experience with them. Instead open multiple Tectia SSH/SCP windows and use text-based editors on the Shark machine (emacs, vim or nano).
- There are other nice tools like a Windows AFS client (OpenAFS), X-Windows support (X-Win 32) and the Linux-on-Windows port (cygwin. They are powerful tools in the hands of experts but often very painful to set up and can be the source of a lot of frustration and painful data loss when not used well. If you have no experience with them, leave the finger from them.
I have some command line output that I'd like to send to the staff. Should I send it as a screenshot?
- No. Text (copy and paste) is fine.
How should I submit code when I need help?
- You can post it on Piazza, but be sure to keep the message private. Or, submit it via Autolab and notify us (via Piazza) that you have done so.
My editor shows me that my C code looks fine, but when my TA prints it out it looks different!
Why do I get the compiler error message “error: 'for' loop initial declarations are only allowed in C99 mode”?
You probably wrote something like: for (int i = 0; i < n; i++). With older versions of C, the declaration of i must occur outside of the loop.