15-213/18-213/15-513/18-613 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?

    • If using vim, add the following to your ~/.vimrc:
      set expandtab
      set tabstop=4
      set shiftwidth=4
      

  • 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?

    • Try grepping for UTF-8 (common) characters in your code as follows:
      grep --color='auto' -P -n "[\x80-\xFF]" mycode.c
      

  • 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.
    • We can only guarentee that everything will work on the shark machines, many labs depend on things that are only installed on the shark machines.
    • You must complete bomblab and attacklab 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?

    • Yes.
    • 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!

    • Your editor is configured to use tabs as a certain width. Please use spaces instead of tabs.
    • To see what we'll see when we grade your submissions: run
      a2ps -s2  --pretty-print --landscape --columns=2 --rows=1 --tabsize=4 --chars-per-line=80 somefile.c -o someotherfile.ps
    • To replace all tabs with spaces, run
      expand -t4 file > otherfile 

    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.