UMBC CMSC201, Computer Science I, Spring 1996 Section 0201 and 0202

Questions and Answers

This page will be updated frequently with questions and comments from the students via email.

Names have been withheld to protect the innocent.

Prof. Chang,
I am in your 10:00 am class and I am confused . I previously took pascal at a University in [...]. I am a cmsc major and hope this class doesn't break me.

Dazed and confused

Dear Dazed and Confused,
Hey, I'm not surprised if you are confused after today's lecture (9/27/94). We covered some difficult material. If you don't understand something, you must ask questions in class, even if it's just to say, "Can you explain this part again? perhaps differently?" If you don't ask questions during lecture, we will zip along and finish the entire book before Thanksgiving. Also, rest assured that you are not the only one who's confused.

Prof. Chang,
I appreciate your knowledge.. however just like Dazzled and Confused.. I feel like I am lost! What exactly do you expect from us for the exams and such? How do you suggest I study for the course so that I get the most out of it and get a successful grade? Thanks for any help you can give me.

Dear Also Dazzled and Confused,
It is OK to feel a bit lost in the beginning of the course. We are covering lots of material, and it may not make complete sense until we get through Chapter 8. Then, some of the earlier material will become clearer. I will encourage you to hang in there.

As for what is covered in Quizzes and Exams. You can browse through last semester's quizzes and exams (available on WWW) to look at the format and material covered in those exams. The best advice I can give about getting a good grade is to learn as much as you can from the projects. They help you focus on material covered in class. It really helps to do your projects a little at a time. If you rush to finish your projects in the last minute, you won't gain much from the experience.

Prof. Chang,
What if you submit your program and then find a small mistake. If you have submitted early, may you amend your program and resubmit, or is it a done deal?
Signed: Just sick about it.

Dear Just sick about it,
Yes, you can turn in the project up to 12 midnight on the due date. We will simply grade the final version, but please check your program before you submit. It gets confusing to have 5 versions of everyone's program lying around.

Prof. Chang,
I am a freshman and I am wondering if the lab sessions are manditory. They seen to be repetative, and I was wondering if I will loose points if I do not attend.

Dear Fresh Truant,
I will not force people to go to recitation, so you will not lose points. HOWEVER (in big ugly bold lettering), a lot of people in class need to go to recitation, because they didn't understand the material from lecture. We will also return quizzes and do reviews for the exams in recitation. So, if you choose not to go, you will miss some material.

Prof. Chang,
I am getting really impatient waiting for the grader to finish grading our projects. We are working on project 3, and we still haven't gotten project 1 back yet. I think it is unfair because none of us know how we are doing on the projects. I am going to be really annoyed if, when I finally get the projects back, the grader takes off points for the same mistake on every program. If we could get some feedback about how we are doing, we wouldn't have this problem. I have no way of correcting my mistakes on this program if I don't know that I made these mistakes in the first or second program. It's not my fault that you can't find a reliable grader. I feel that it is your responsibility to your students to return the projects in a timely manner. Most professors at umbc make sure that old assignments are returned before new assignments are given. We had a deadline to finish them, and I don't see why the grader shouldn't have a deadline to finish grading them. After all, you are paying him/her. Please return our papers.

Dear Really Impatient,
I agree with you completely that the projects should be returned as soon as possible.

However, it is also the case that $5/hour is not worth enough to ask someone to jeopardize his grades. I don't want the grader's academic performance to suffer because he is grading for our class. Our grader is reliable. He didn't say that he would have Project 1 back to me right away. He said he had exams right away. I said fine.

So, I want you to know that I am aware that this is not the ideal situation for grading.

Prof. Chang,
Why are we using a "watered down" version of C?? I take my projects home in hopes of working on them over the weekends, but we only have C++ at home and a lot of the functions I need are missing from C++. I understand that an easier version is more convenient for a first-semester course, but isn't it more difficult to have to re-learn the language than just to learn the "real" language the first time?? Don't get me wrong, I enjoy using some of Mr. Roberts' functions, but we won't always have them. Is there a particular reason we use this version?

Sleepless in Severna Park

Dear Sleepless,
I've been waiting for someone to ask this question. There are a few points I want to make:

  1. We are not using a "watered down" version of C. We are using a souped up version.

  2. If you are taking your work home, why by all means take the course library with you too. The complete source code for the library adapted for various operating systems are in the standard place ~chang/pub/cs201/. There are versions for xwindows (UNIX), Macintosh, Microsoft DOS, Microsoft Windows and a generic version. You have to find the right version for your computer and compile it on your machine. The course library is compatible with ANSI-C. There is nothing special about it. Of course, if something breaks on your system, it's your fault.

  3. It is not accurate to say that you will be re-learning the language, because you would not have "learned" in the first place. For example, if we used scanf instead of GetInteger you would not have understood how scanf works, because you would have to know about pointers and parameter passing by reference.

  4. Another point: the features of the functions in the course library are features that you want to implement. For example, GetInteger badgers the user until he/she enters an honest-to-goodness integer. To do this with scanf is not trivial. If we had you use scanf from the beginning, you would not be able to implement the features provided in GetInteger until the end of the semester. By that time, you would have gotten the bad habit of writing code using scanf that does not check the user's input and does not recover from errors. This is a bad habit.

The summary of my argument is the following. It is better to use the advanced (not watered down) features of the course library from the beginning and learn that these are desirable and convenient features. By the end of the semester, you should have learned enough about the C language to implement these functions yourself. The alternative is to have you use low-level and cumbersome functions like scanf and develop bad programming habits. Then at the end of the semester we could hope that you will want to write additional lines of code to implement the nicer more advanced feature. Yeah right.

Since you say that you like using the Roberts' Library, I consider our plan a success!

Last Modified: Fri Dec 2 17:17:01 EST 1994

Richard Chang,