California State University Stanislaus

CS 1500 Sections 5 & 6: Computer Programming I

Spring 2010

1500-5: MW   10:00 am - 11:00 am, C 202, Dr. Melanie Martin

1500-6: F        10:00 am - 11:00 am, C 202, Dr. Melanie Martin

[Basic Information]         [Announcements]         [Calendar/Assignments]       [Useful Links]        

Welcome to CS 1500, Computer Programming I

Course Objectives

Announcements and Upcoming Events


Welcome to CS 1500!           

Additional Office Hours:

Kristi Davis, an advanced CS major, will be available in the mornings from 8-9 am, by appointment.
Just email Kristi at     

Office Hours for this week:
           Tuesday 11:00  to  11:50 am
           Wednesday 3-4 pm
           Friday cancelled
Please email for an appointment, if these don't work for you.
Tuesday office hours changed to 10:30 - 12 noon (afternoon hours available by appointment).

Solo programs may be corrected and regraded for up to 1/2 of the points lost.
If you would like to take advantage of this option, please give me your original graded source code and your new source code (hard copies).

Basic Information

Textbook is Problem Solving with C++ (7th edition); by Walter Savitch, University of California at San Diego; published by Pearson Addison-Wesley, 2007;
                    ISBN 978-0321531346
                    Publisher Site

Recommended: Just Enough Unix (5th edition); by Paul K. Andersen; published by McGraw-Hill, 2006; ISBN-13 9780072952971, OR
                            Learning the Unix Operating System, Fifth Edition A Concise Guide for the New User By Jerry Peek, Grace Todino-Gonguet,                                         John Strang; published by OReilly, 2001;  ISBN 10: 0-596-00261-0 | ISBN 13:9780596002619

Instructor: Dr. Melanie Martin                           Office: Demergasso-Bava Hall 276

Email:                               Office Phone: (209) 667-3787

Web Page:

Office Hours:  
                           Tuesday      10:30 to 12:00

                           Wednesday   3:00 to 4:00
                           Friday           2:00 to 3:00
                           and by appointment.

Best way to contact Dr. Martin:  Email  Please put "CS1500" in the subject line of the email.

Prerequisite: Two years of high school algebra.

Corequisite: CS 1502 (aka CS 1500, Section 6).

Warning: I reserve the right to make changes to the syllabus at any time during the term by announcing them in class and on my web page.

Important dates:

(See Schedule of Courses or Academic Calendar)

Last day to add/drop a class:                        

September 20;

Last day to change grade options (CR/NC):

September 20;

No classes.

Sept 6, Oct 13, Nov 11, Nov 25, Nov 26, Dec 10.


We will cover chapters 1-7 in Savitch. We will also cover the basics of Unix as needed.

See the online class schedule for a complete list of weekly reading assignments.


This class is C++ oriented. You will be learning C++. You will be doing all your programming labs and assignments in C++.


For technical reasons, students in this class are required to sign up separately for CS 1500 (lecture, aka section 5) and CS 1502 (lab, aka cs 1500, section 6). In fact, each class session is a mixture of lab and lecture. Each day we do whatever we need to do: lab, lecture, or some of both. Often we will meet in the CS department laboratory (P-288) for one of the class hours in a week, and meet in the lecture room for the other two class hours. Many variations are possible, so check the online class schedule frequently.

My expectation is that everyone will attend all the classes and keep current with everything that is happening in class.


Your course grade depends on three components: laboratory, solo programming, and examination.

The laboratory component consists of work you do with a lab partner in the CS lab. You run commands, run applications, and write small programs. To show that you did the work properly, you turn in listings of source code, scripts showing your work sessions, listings of command outputs, and such. Your score on the laboratory component of the course will be the average of your scores on the individual labs.

The solo programming component consists of programming that you do all by yourself. Your score on the solo programming component of the course will be the average of your scores on the individual solo programs.

The examination component consists of several quizzes and an optional comprehensive final examination. Each quiz and exam will cover topics from lab, reading assignments, programming assignments, and lecture. Your score on the examination component of the course will be the maximum of

  1. the average of your quiz scores, and
  2. your score on the final examination.
To pass CS 1500 you must: If you meet all the criteria above, your course grade will be derived from the weighted average score of your course components. If the average is 90-100 you will receive an 'A' in the course; 80-89 earns a 'B'; 70-79 gets a 'C'; and 60-69 is a 'D'.

You don't have to take the final examination. You can take it if you want to try to raise your score on the examination component.

There will be no make-up quizzes.


Get started early on assignments. That way, if you run into difficulty, you can seek help in class and/or office hours in a timely fashion.

Please feel free to seek my help in office hours, lab, or lecture if you are having difficulty making progress on any programming problem. You are entitled to this service. Students need this kind of help from time to time, so please have the wisdom to use it when you need it. Also please get started early on assignments and come early for the help you need. I'll listen and do what I reasonably can to help.

You will be penalized 10% per calendar* day for a late programming assignment up to a limit of 6 days, or up until such time that I show a solution to the class, whichever comes first. Beyond that limit your submission will not be accepted, and unfortunately that will mean that you do not pass CS 1500 this term.

* A calendar day is any day -- including weekend days and holidays.

We can discuss due dates in class and I may be willing to move a due date back if doing so can be justified to my satisfaction. If you are uncomfortable with a scheduled due date, please bring this to my attention as soon as possible, and not at the last minute.


If you think you are going to be unable to take a test or turn in an assignment on time due to extraordinary circumstances beyond your control, then let me know at the very earliest time possible. I'll try to make some fair arrangement with you.


To optimize your likelihood of success, participate fully in the class: Attend all the classes. Faithfully listen and take notes. Finish all assignments on time. Review your notes before each class. Reply to questions or remarks addressed to you. Ask questions. When you are not getting anywhere on some problem, and it's not the kind of thing you can get resolved in class, seek my help during office hours.

Do all this, even when things are not going well. And have fun!


The work you do for this course will be your own, unless otherwise specified. You are not to submit other people's work and represent it as your own. I consider academic honesty to be at the core of the University's activities in education and research. Academic honesty is expected at all times in this course. Here are some ground rules for the work in this course:

Feel free to discuss anything about the lab assignments with your lab partner or anyone else. Feel free to give or accept any kind of help on these assignments, including the sharing of actual C++ code. (Of course, you are likely to learn more if you try to do what you can on your own.)

You must treat the solo programming assignments in a very different manner: On the other hand, when your purpose is to clarify the meaning of solo program specifications, you may discuss solo assignments with other people, including your classmates, as much as you like. You may also freely discuss the relative merits of various general approaches to designing and engineering solutions to solo programming assignments.

In your solution code for a solo program, you are permitted to use segments of code or algorithms that you find in:
  1. any printed material available for student check-out in our library,
  2. our course texts, or
  3. any programming textbooks to which you have access.
However, if you make use of such material, you must cite the source as comments in your program. You are permitted to share material of type 1-3 above with other members of this class.

You may ask me for help and hints on solo assignments. I prefer that you ask questions in class, so that everyone has a chance to benefit from the discussion.

During quizzes and exams, you are allowed to come forward and ask me to clarify the meaning of a test question. It will be up to me to decide how to answer, or whether to answer at all. I will tell the members of the class any new information that arises from such an exchange. Aside from that, you must write quizzes and exams without help from other people and without the help of any written materials that I have not explicitly approved.

I will withhold credit if there is compelling evidence that you did not follow the rules spelled out above.


During class time, your cell phone (including headsets) must be turned off and out of sight. Any use of a cell phone during class will result in confiscation of the phone until that day's class has ended or your removal from the class for that day. If you attempt to use your cell phone or leave it on during an exam, you will be considered to have finished your test, and I will collect your exam at that time.  Exceptions may be made only if you discuss your situation with me prior to the start of that day's class, in this case, your cell phone must be set to vibrate/silence.


You need to have an account that gives you access to all the Computer Science Department Apple computers. The computers have a network file system, which means you get the same home directory and "computing environment," regardless of which Mac you log on to.

You will learn much of what you need to know about the Unix based operating systems during our lab sessions.

The CS computers are located in the Computer Science Lab: P-288. P-288 is in the Professional Schools Building (aka Demergasso-Bava Hall), in the extreme northwest corner of the north wing.

I will test the programs that you write for this course by compiling and executing them on one of the Computer Science Lab Macs. Therefore you must write programs that will compile and run without errors on these machines. The only way you can be sure that your program compiles and executes properly on the Macs is if you actually perform test compilations and executions on them.

There are two ways to work using your account on the CS machines: to work on one of the machines in the lab or two login remotely:

Working in the lab:

While you are in the CS Lab, you will be able to access the Mac workstations by logging in directly at the console. P-288 will be usually be open from about 9:00 am until about 5:00 pm on weekdays.  During these times, you can be physically present in the CS Department Lab while using a department computer. This can be very beneficial because you then have the opportunity to work and communicate with fellow students and members of the faculty. Due to budgetary constraints beyond our control, the hours during which P-288 is open are subject to change on short notice. Please check the postings of the lab hours at the entrance to the lab and in the "message of the day" that is printed on your screen when you login to your CS account.

Incidentally, the CS Department often seeks volunteers and work-study students to help keep the lab open longer hours. For further information, ask our system administrator, Julie Gorman: P-288C, 667-3273,

Working remotely:

Generally, some of the Macs are available for access and use on a 24-hour basis. You can log into the machines remotely - from another computer lab on campus, or from an off-campus location (e.g. work or home) - and work on them at you convenience. Remote login also makes it possible for many people to use a given workstation simultaneously. We will have a demonstration of how to perform remote login. More information is available on the CS Department web page Resources.

(You can probably get help just by asking someone in the lab.) You can also access the CS via an "ssh" connection from most any computer on the campus local network, such as those in P-107, P-120, L-125 and L-145. Generally those labs are open during the same hours that the campus library is open. To get further information about the labs and their hours of operation, you may consult this web page:

You may also check postings at the labs or ask lab personnel for information. Lab assistants should be able to show you how to do a remote login to a CS Department workstation.