Just the FAQs
Here are a bunch of questions that you might find
useful. We will update them over the course of the semester, and
if you have any suggestion hit the Contact button above
and send them along
If you do not have an EGRaccount, then you should be able to login
to the EGR laboratory computers using your MSU id and the PID as a
password. Remember to use a capital A when typing in your PID
Change Password : You have to take your ID and go to the
DECS office, 1325 EB. It is important to change your
password to something other than your PID .
How should I set up to do work at home?
Note: A lot of this is discussed in videos now on the first week page
There are many choices, going from easy to hard.
- Work in the labs. OK, that' isn't at home but it is a good
- Use the x2go application. x2go is a way to log into an EGR
server from anywhere with a good network connection and get, local
to your home screen, a window with the lab machine
environment. The whole environment: compiler, editor, mounting home
directory, everything. DECS provides a great link on how to get
your x2go setup running on your local
- Go command line. You can skip all the fancy environment stuff
and just run everything out of a terminal window. Even in this
scenario you can do it one of two ways:
- Run on the server. If you follow
these directions you can ssh into a terminal server at
EGR. All you get is a raw terminal this way, but from the terminal
you can run the compiler and a non-graphical (terminal oriented)
- Get ssh (everybody has it but windows, follow directions
- open a terminal
- type ssh firstname.lastname@example.org (hey, yourname is
what your CSE login is, not the string "yourname").
- You're in. See command line
below for using the terminal.
Lab Rules & Info
- You can miss two. Labs do not count toward
your grade, but they can hurt you. You can miss two labs for any
reason you like (from true emergency to oversleeping). However,
after two absences you lose 0.5 a point of your final gradepoint
. So show up to your scheduled lab. For the 730 students, you
can also miss two but the TAs will look each week at what you turn
in for the labs. If they deem it insufficient for "good faith
effort", you will not get credit.
- Go to your own lab. . If you signed up for a section,
that that is the lab you must attend.
- If you want to change sections, go to piazza and work it there. No other
way as the class is almost always full.
- Show up on time. . If you are late, then you will be
counted absent. I have informed the TAs to do this, so if you have
a problem with that you need to see me.
- Labs are done in pairs during your lab time. . You cannot
come to lab with the lab "done". You must do the lab during
your schedule lab time. One of the goals of the lab is to foster
collaboration, and you can't collaborate if you do the lab by
- I was marked absent but did attend a lab . Lab
attendance is marked at the end of each lab session (for 730,
after you labs are due) on D2L. Check it that week . Mistakes
from months ago cannot be checked; no one will remember. Check
it each week on D2L and get it fixed then.
Project Rules & Info
- On time. You turn projects in via Mimir . This is a web
page based turn-in program testing site. Each project has a due
date. If you turn it on time, you can get full credit. If you
are late by 1 day or less, Mimir will accept your code but with
a 50% penalty (you lose 1/2 your points you earned via the
tests). After that, there is no option to turn in the project.
- Compile. The project you turn in must compile. If it
doesn't compile then it cannot be graded and you will receive a
very small number of points. The TAs job is not to "fix" your
program so it compiles. One semicolon, one poorly placed comment,
and all your work is for nothing. Check that your project
- Your project may compile somewhere else (say, on visual
studio which is a particularly troublesome compiler) but that
doesn't matter. It needs to compile on Mimir or it
- On your own. Projects are homework, they are to be
done on your own. Labs are a collaboration opportunity,
but for projects you should write your own code. You can talk
"generally" about code, but don't copy or share code.
- We compare every project against every other project using
a sophisticated checker. The checker (called MOSS out of
Stanford, look it up) can "see" through variable name changes,
moving of lines etc. It is very good.
- If you copy code, you cheated. However, people are also
surprised to hear that if you gave code, you also
cheated. Don't share your code!
Here is some info about Mimir that might help you as you move
- Mimir accounts . There is a link off of
the D2L front web page to get to your mimir account for this class
- Matching output exactly It's important to try and
match the output format of a test as closely as possible. Mimir
can be somewhat forgiving (about white space, carriage returns
etc.) but it will otherwise say you passed a test only when you
matched the required ouput exactly . Look at the test
output to see what "exactly" means.
- Why are some tests "hidden" We hide some test
cases because we found that some students would write code that
simply printed the required output required by the test without
even trying to solve the problem. These hidden test cases are
not really different in what they test, only different inputs.
- Tests are ordered Try to address the Mimir tests
in the order provided. When we get to functions, each test is
examining the performance of a function. Getting the early tests
done is important because that ensures that some early
functions, which are needed elsewhere, work properly. Fail on
the early tests and it may be that nothing after works.
What's my grade
- D2L Your page on d2l gives you a very clear indication of your grade
at every point in the course. Your overall grade is the sum of:
your exam grades, your project grades, your prelab grades
(modified to be in the range 0-50). We will upload all grades as
we get them and you can check yourself at any time.
- Curve Is there a curve for the course? No, in all
the years I have taught 232 I have never offered a curve. Grade
cutoffs are as indicated in the syllabus. You can check yourself
on D2L to see how you are doing.
How to Study for the Exams
I get asked a lot of questions about the exams. Here are some
- Why are exams worth so much? This is usually asked
in the context of "Why have tests at all?" Two reasons:
You should be able to read code as well as write it. I
can't test you on reading code on your projects, but I can
on exams. It's an important skill, you need to hone it
while you can.
- Cheating Cheating can be a problem in this
class. The more we make the projects worth (and the less the
exams are worth), the more temptation to cheat on the
projects. Over time this present ratio appears to be the
- How to study for the exams . All the old exams are
available off of the front page of the the 232 web page. The
best way to study for the exams is to take the old ones, in
particular the most recent ones.
By "take" I really mean take the exam. That is, sit down, do
the test and after you finish see how you did. This
gives you a real sense of what you do and do not fully
understand, and allows you to focus on the things you are a
little shaky on.
Unfortunately there are lots of ways to get C++ depending on your
operating system. Furthermore, there are lots of versions of C++ and
we have some rather specific requirements as we are doing
C++11. Finally, as we grade your projects there are limits to our
ability to deal with all these possibilities. Read more below
- The rule of compiling
- Your code must compile
If your code does not compile, you get a 0 for the project. When
you turn in the code to Mimir it will compile it. If it doesn't
compile there, then it didn't compile and you can't pass any
- But it compiles for me
Irrelevant. Compiling on Mimir is the final deal. If it doesn't
compile there, then it doesn't compile.
- Can I used my own C++ on my computer
Sure, in fact it is a good exercise to figure this stuff
out. However, remember the rule of compiling
. Check your code before you turn it in!
- Do I have a compiler already
Unless you are using running a Linux operating system (and perhaps
not then either), you don't have a compiler. You have to do some
work to set one up.
- C++ requirements
You need to have a C++ compiler that can compile C++11 code. This is
a more recent addition to most compilers so you need something
fairly recent. Here are some tips:
- gcc/g++, should be at least g++ 4.7.2 or greater. On the
command line type g++ --version and see what it says
- clang, should be at least version 3.4 or greater. On
the command line type clang++ --version. If you are running OSX,
the Xcode version should be 5.1 or greater
- Visual Studio , should be VS 2013 or greater.
- Mingw , g++ should be 4.7.2 or greater.
- Where to get this stuff
- OSX You can go to https://developer.apple.com/downloads/index.action
but you have to register as a developer with apple. If you can't
get the versions described above, you version of Mac OS is too old
and you will have to upgrade or use something like macports
- Get Xcode
- Get command line tools
- Visual Studio
Visual studio for windows is a great environment and is free for
all CSE students. Go to
http://msdn.cse.msu.edu/ and click ELMS. Note VMWare is also
available from this page (top of the page link)
Use your package manager to download a g++ version greater than or
equal to 4.7
- Is there a Unix tutorial? Sure, there are many. We
have a simple one on the side of the front web page
Another popular one seems to be
tutorial at tutorialspoint. They have
pdf version if you prefer print.
- Command Line Compilation . The line to compile a file is:
g++ -std=c++11 -Wall filename.cpp
To compile all the cpp files in a directory:
g++ -std=c++11 -Wall *.cpp
Make sure every .cpp file is something you want to compile!
- Shell commands Each lab covers a small subset of the
shell commands. Here are two reference cards (pulled randomly off
the web) that might also help:
We have some rules about how the honors credit works for
CSE232. Take a look
for the rules on Honors Projects
DECS help guide
DECS, the Division of Engineering and Computing Services, is
responsible for the upkeep of the lab, the lab machines and its
software. They provide a lovely FAQ of their own. Please