CSE 231 FAQS (Spring 02)


Is it true that I only have to attend 12 labs?

Labs do not affect your final course grade unless you attend fewer than 12 of them. As long as you have credit for attending 12 labs, you will not lose any points if you do not attend the other lab sessions. However, labs cover material that will be on your exam, so you should work all the labs and be sure you understand them. The easiest way to be certain you learn what you are supposed to from these labs is to attend the lab session.


I burned a CD and it does not work.

The provided software is in ISO9960 (“ISO”) format, but CD burning software does not default to burning ISO format and finding the right settings can be elusive.  Often most, but not all, of the image is burned so software may begin to load, but not complete.   We provide detailed instructions for burning ISO format in EB3340.


My “profile” is bad and software no longer works.

The profile is what makes all CSE lab computers look the same to you.  If there are problems: (1) log off (2) get on someone else’s account, start SSH, connect to arctic.cse.msu.edu, and login as you (3) type “rm .w2kprofile/NTUSER.DAT” (note the “.”) and answer “yes” when asked if it is OK to remove it.  When you log back onto a PC and then off, your profile will be reset.  If problems remain, you will need help from a manager to remove your profile from a dotnet2 or dotnet3 server.


I get a link error when I build or compile within Visual Studio.

Your CSE account may be full (full quota).  A likely reason at the beginning of the course is that you have a CD ISO image in MyDocuments.  That gets copied into your profile so it moves from machine to machine.  Delete the file and then log off and then on again so it is removed from your profile. (Under Unix it can be found in your .w2kprofile/MyDocuments directory.)

Within Visual Studio you may have incorrectly set up your project to be something other than a console application.


I cannot connect to \\samba.cse.msu.edu\yourname or \\samba.cse.msu.edu\cse231 off campus.

You can copy any "samba" file using a web browser by substituting http://www.cse.msu.edu/~cse231 for \\samba.cse.msu.edu\cse231 and copying the rest of the path using / instead of \.

WindowsME/98 users: these operating systems authenticate using the name you are logged onto your PC with.  You need to change that name to exactly match your Pilot/CSE login name (all lowercase).  Alternatively, you might try opening up the MyComputer icon and choosing Tools→Map Network Drive.  For “Folder” enter the samba address (e.g. \\samba.cse.msu.edu\cse231 ) and click on  “connect using a different user name” (you probably do not want the “reconnect at login” box checked). 

Off-campus broadband users: the problem is with your ISP.  For example, ATT who is the most common local ISP does not allow smb connections that samba needs.  To get it you need a commercial connection that is out of reach of individuals, particularly students on a budget.

Off-campus DSL users: your ISP can flip some bits to allow smb connections.

Windows allows only one connection to any location so you cannot map to two that begin with samba.cse.msu.edu.  For a second connection try sargasso.cse.msu.edu which is a different name for samba.cse.msu.edu.


I want to learn about other software or operating systems.

The University subscribes to a set of online tutorials that cover a wide variety of software, computer languages, and operating systems.  It can all be found here.  Some of it is dated, e.g. VisualStudio 5.0, Windows95, etc., but it is free (use your Pilot password).


How do I transfer files between my home PC and the CSE IN system?

If you can connect to \\samba.cse.msu.edu\yourname (which is in the CSE IN system), you can simply open that link in Windows Explorer and copy and paste from your home PC to and from the CSE IN system.

Alternatively, download and install the free SSH software (remember to also download the license.dat file to the same directory and ensure that it is named license.dat (e.g. not license.dat.txt).  See instructions on how to use the file transfer software.


Inside of Visual Studio my program works fine, but if I simply run the .exe file, the program executes and disappears before I can see it.  Do I need to modify my program to work outside of Visual Studio?

In short, No.  To begin with, working within Visual Studio is fine.  If you wish to have it work outside of Visual Studio, try adding the following lines at the bottom (but before the “return 0”):

  char dummy;

  cout << "Hit the enter key to continue." << endl;

  cin.get(dummy);


Can I program in both VS6.0 and VS.NET? Yes: there are two ways.

  1. If you begin in VS6.0 and then open your project in VS.NET, you will be asked to convert the program to VS.NET format.  Conversion will allow you to still use VS6.0 on that project.  Unfortunately, the converse is not true: if you begin in VS.NET, your project will not be in a format that VS6.0 understands. 
  2. You can always move a .cpp file from one version of VS to another.  Also, you can always cut-and-paste.  However, this approach will be more difficult as projects become more complex.


My disk is full.

In Visual Studio under the Build drop-down list are Clean Solution and Clean Project that will remove the large files created by Visual Studio for building/compiling and for debugging.   Clean does not remove your C++ source code (.cpp).  Visual Studio creates large files: two in particular contain the linker information and a database of information for the debugger.  They are kept in a directory/folder named Debug within your Project.   Clean removes most of the files in the Debug directory (e.g. leaving only the small BuildLog.htm file).

You can check your quota within the CSE IN system (H drive) with the Unix command (e.g. click the SSH icon to get a Unix window) showquota.  Note that the quota displayed by the showquota command is not updated immediately so if you delete some files, the saved space does not show up with showquota for quite a while even though you have opened up space and can use the space.


When I try to use handin, it doesn't show the file that I want to hand in. What is the problem?

In all likelihood, you have not named the file as specified in the handout. Handin is set up to allow you to hand in specific files that are described in the problem specification. Sometimes the problem states the exact file name that you must use. Sometimes it gives a pattern that your file name has to match. If you call your file by any other name, Handin will not allow you to hand it in. Carefully check the project description. If you are convinced that you are following the specifications given for naming your files and Handin is still not showing the file, send email to your course instructor and indicate the names of your files. It is possible that a mistake was made in setting up Handin, which the instructor can correct.


How do I set up my CSE IN account to forward email to another email address?

Create a forward file in your home directory on CSE IN. The name of the file must be .forward (note that the file name begins with a 'dot', i.e., a 'period'). The file must contain the email address that you want your mail to forward to, and nothing more. You can create the file using a text editor. Or you can create it by typing the following at the Unix shell prompt:

       echo "forwarding-address" >.forward
with forwarding-address replaced with the email address where you want to read your mail. The shell will not execute this command if a .forward file already exists. In this case, therefore, you will need to use rm to remove the .forward file and then issue the echo command. You can check to see if you have a .forward file and list its contents using more:
       more .forward
Once you have created a .forward file, you should list its contents to be sure that you have entered the correct email address.

BE CAREFUL WHEN SETTING UP THIS FILE: If you give an incorrect email address or if your email server goes down, mail sent to your CSE IN account will bounce back to the sender. If your preferred mail server is not reliable, you are better to NOT forward your mail and just check for it periodically on the CSE IN system (or forward it to your pilot address and check for it on pilot). If you are not receiving your Handin confirmations and/or your grading sheets, this may be your problem. We have no way to contact you by email if you forward your mail to an address that does not work.

If you are not able to understand these instructions, you should ask for help from your course instructor during office hours or from a TA during lab or consulting.


What do I do if handin doesn't work (and how do I know)

If your project is successfully handed in, you will receive an email confirmation. The confirmation is sent to your CSE IN account, so be sure to check your mail on the CSE IN system or on whatever account you forward your email to. Be sure to save the confirmation until you receive a grade on the project.

If you do not receive an email, then something went wrong and most likely the project was not received. If several attempts fail, arrange to see your lab TA or go to consulting hours to get help from a TA. If you and a TA cannot figure out what the problem is, contact your course instructor.

If you finish your project in time, but miss a project deadline because of handin problems, DO NOT PANIC!! Be sure the file is copied onto your CSE IN account (you should copy your file to your CSE IN account BEFORE attempting to handin the project). Do not modify the file. Contact the course instructor. If the dates on the file show that the file has not been modified since the handin deadline, the instructor will email the file to your TA and your project will not be counted late.


What should I do if I find a question on an exam that I think is flawed?

If you find a question that you think is flawed and if no one has left the examination room, you should bring the question to the attention of the instructor. In very rare cases, the instructor will "fix" a flawed question during the examination. A correction will be announced during the examination only if it is an easily corrected typographical mistake and if no students have already completed the exam.

Typically, however, it is too late to fix a flawed question during the examination because it is difficult to get everyone's attention and to accurately communicate the correction. In this case, the question will not count against the student. Make your best guess at an answer. Be sure to mark SOME answer, even if you think a question is flawed. The grading program will accept any answer for a question that is flawed, but it will not give you credit if you do not mark any answer.


Yikes!! I accidentally deleted my file! What can I do?????

In your home directory, there is a subdirectory called .snapshot. Position yourself in this directory. There you will find subdirectories with hourly, daily, and weekly backups of your directories. Depending on how long the file existed and at what time the backups were done, you may find the file you want in one of those directories. If you find it, you need to copy it into a regular directory. You should do this as soon as possible because the .snapshot directories expire pretty quickly. The sooner you look for the file, the more likely you are to find it.


If I know about a C++ feature, but we haven't covered it in class, is it OK to use it in a project?

It is OK to use features that we haven't covered in class to solve a problem, as long as you satisfy the project requirements (in particular, be sure to use all language features that the specification calls for, and to use them effectively). However, you are on your own when you go ahead of the class. The TAs will help you to the extent that they can, but they are stretched pretty thin and they can't spend time tutoring individual students on material that the students are not responsible for.

We design the projects to reinforce the material that is covered in class and in your readings. All projects can be completed using language features that have already been covered by the Tuesday before they are due (in fact, usually, by the Thursday when they are handed out).


Will the grading scale in the syllabus be adjusted if the class average is too low?

We expect to use the formula that has been used in the past for deciding if the grading scale should be adjusted and by how much. This formula entails calculating the score of a hypothetical student, who receives the median exam scores and perfect project grades. The score of the hypothetical student then determines the cut off between 3.0 and 3.5. For my sections of CSE 231 in the past, a student at the mean received a 3.0.


I don't understand the grading sheet that I received. How are these supposed to be read?

The total points that you received for the project is shown in the upper right hand corner of the grading sheet. It is shown as a fraction of the total number of points possible. For example, 25/30 means that you received 25 points out of a possible 30 points. Some of the graders mark the the spaces along the left side of the scoring sheet only in cases where you did not receive the full points for that criteria. This practice saves the grader a lot of time, but is a bit confusing if you are not aware that a blank means that you received full credit. Thus, if all of the spaces along the left side of your grading sheet are blank, the fraction at the top of the page should indicate that you earned full credit for your solution to the project.


I have a question about the grading of my project. Who do I contact?

Send email to your grading TA. DO NOT REPLY to the grading sheet. This email is not seen by the graders, as the grading sheets are generated and sent by a program, not a person. You should contact your course instructor about the problem only if you and the grading TA are not able to resolve it.


I had to miss class! How can I find out what I missed?

Read the on-line overheads for that day. Download copies of any other handouts (at the same location), if any. Ask a classmate to make copies of his or her notes. Check the syllabus to see what was scheduled to be covered in the class period and read the material on it in your textbook. Do NOT send the instructor email asking what you missed. The instructor cannot "makeup" lectures for students who miss class.


How do you recommend that we follow the reading?

I recommend reading the material in the book BEFORE it is covered in class. You will get the most out of lecture if you've already read the material being presented. If there is something in the readings that you don't understand, the lecture should help to clarify it. If you understand everything in the readings, the lecture should help to reinforce it and help you remember it. If I do not clarify something you did not understand in the book, then you will know to ask about it.


Why can't I get more partial credit for a program that I spent hours working on, but that doesn't compile?

If a program does not compile, there is no objective criterion that the grader can apply to decide how many points the program is worth. In an attempt to make the grading of projects by different graders both consistent and objective, we give the graders strict guidelines for how to assign points. Many of assigned points are based on how closely the program meets the project specifications. The grader has no way to determine how closely your program satisfies the specifications if your program cannot be executed. The grader cannot evaluate how much time a student spends on a program, and could not base the grade on time spent, in any case. Graders are instructed that a student can receive a maximum of 5 points for a program that does not compile. To receive more than this maximum, a program HAS to compile. The grader has to be able to see what it does to evaluate how closely it meets the project specifications. A program that compiles may receive more partial credit, depending on how closely it meets the project specifications.


Why won't the instructor answer questions about the interpretation of exam questions during an exam?

Because of the size of the class, the instructor cannot move freely around the class and answer questions. It would be disruptive of students sitting on the aisle for the instructor to reach students sitting in the middle. Students cannot be allowed to walk about the room during an examination because of the disruption this would cause other students and because of the potential for seeing answers of other students who are taking the same exam. It would be unfair to answer questions of only students that are sitting near the aisle.

The large class size also makes it impossible for a single instructor to answer individual questions in a timely manner. If TAs are allowed to interpret questions for students, there is no guarantee that the TA's interpretation will be the same as the instructor's. Moreover, there is no uniformity in the answers given for the same questions to different students.

The time that a student would have to spend getting the instructor's attention is better spent thinking about the question or working on other exam questions.

Finally, even when conducted in hushed tones, a dialog during an exam distracts those sitting nearby. The conversation is necessarily terse and the instructor/TA does not have time to carefully consider the question; as a result, the answer given may actually mislead the student who asks it.


How can I possibly remember all the C++ keywords, operators (and their precedence and associativities), library functions, etc. for an exam?

You don't need to. You will be allowed to bring one 8.5 by 11 inch sheet of notes to exams on which you can record details about C++ that you find hard to remember.


How do I fix the getline() bug in VS 6.0? (The bug makes getline need an extra carriage return.)

Copy the following file: \\samba.cse.msu.edu\cse231\web\STRING into the following folder on your computer C:Program Files\Microsoft Visual Studio\VC98\Include Make sure that you do not end up with any extension on the filename. This file replaces a file in that directory.


Why does my grading sheet say that my project doesn't compile when it compiled for me under VS? (And what should I do about it?)

You have run into a classic problem of computer science, which the invention of high level programming languages, like C++, was meant to solve: how to make programs portable (able to run on different computing platforms). For the most part, they do a good job. You can write your program in C++ and, as long as you have a C++ compiler for your platform, the compiler translates it into code that is specific to the platform that you are working on. The hitch is that a compiler is a very complicated program and different compilers for the same language (in this case, C++) cannot be guaranteed to generate exactly equivalent programs. It gets worse: Because the language specification for C++ is ambiguous (try precisely specifying any small task and you will see how hard it is to remember to say everything about it in such a way that no one can misinterpret your words and everyone will end up carrying out the exact same actions), compiler writers have to make choices; odds are that different compiler writers will make different choices. So a program that compiles with one compiler may not compile with another. Specifically, your program that compiles using the VS compiler does not compile using the g++ compiler.

This is an unfortunate consequence of being "caught in the middle." There wasn't enough time over the Christmas break to convert all the infrastructure for CSE 231 from a Unix platform to a MS Windows platform, so we were stuck using one compiler in class (really, two, the VS.NET compiler and the VS 6.0 compiler) and a different compiler for grading. In future offerings of CSE 231, we should be able to do it all within MS Windows (but students running different versions of VS will still have some problems).

To reduce the likelihood of getting caught by compiler incompatibilities, you should use only those libraries that are used in examples in your textbook and in the coursepack, or that you write yourself. The libraries in the textbook and the coursepack are standard libraries, which all C++ compilers are supposed to support. You will lose points for using other libraries if your program does not compile under g++.

If the you have been the victim of a compiler incompatibility, you may ask to have your project regraded. You may lose some points, depending on the reason for the incompatibility, but you will not be penalized for handing in a program that does not compile in this case.