(Latest Revision -- 02/17/00)
02/17/00: Modified telnet and ftp info
Course Description
for Computer Programming I:
CS 1500
TERM: Spring 2000
CLASS CODES:
20535 CS 1500 002 Computer Programming I Lec 3.0 MW 11:15-12:13 P-101
20536 CS 1500 002 Computer Programming I Lab 3.0 F 11:15-12:13 P-288
INSTRUCTOR: John Sarraille, Professor of Computer Science
OFFICE: P-286, Professional Schools Building, Cal State Stanislaus
OFFICE HOURS: MWF 1-2; Tu-Th 11:30-12:30, or by appt.
E-MAIL: john@ishi.csustan.edu
HOMEPAGE:
http://www.cs.csustan.edu/~john/jsHomepage.html
BASIC SCHEDULE INFO:
For technical reasons, students in this class are required to sign up
separately for CS 1500 (lecture) and CS 1502 (lab). 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. Most Fridays we will
meet in the CS department lab (P-288) and do lab work. Most Mondays
and Wednesdays we will meet in P-101 and do lecture and whatever else
is needed.
My expectation is that everyone will attend all the classes and keep
current with everything that is happening in class.
REQUIRED TEXTS:
"Problem Solving in C++" by Angela B. Shiflet, PWS Publishing, ISBN
0-534-95139-2.
"Just Enough Unix, 3rd ed." by Paul K. Andersen, McGraw-Hill, ISBN
0-07-230297-6.
PROGRAMMING LANGUAGE:
This class is C++ oriented. You will be learning C++. You will be
doing all your programming labs and assignments in C++.
COMPUTER EQUIPMENT -- SUN Ultra Workstations:
Each of you will need an account that gives you access to all the
Computer Science Department Sun Ultra 10 and Sun Ultra 30 computers.
These computers have been specially networked so that you get the same
environment, including home directory of your personal files,
regardless of which Sun Ultra you log on to.
You will learn much of what you need to know about the Ultras during
our lab sessions on Fridays.
The Ultra's are located in the new Computer Science Lab: P-288. P-288
is in the Professional Schools Building, in the northwest corner of
the second floor of the north wing.
I will test the programs that you write for this course by compiling
and executing them on a Sun Ultra. Therefore you must write programs
that will compile and run without errors on these machines. If you
are accustomed to a different computing environment, you will have to
be careful about this.
Generally, the Ultra's are available for access and use on a 24-hour
basis. However the campus computer labs do not remain open at all
hours. Therefore sometimes network and modem connections will be the
only means available for connecting to the Ultra's. For more
information about network and modem connections, see the sections
below entitled "MODEM CONNECTIONS" and "INTERNET CONNECTIONS". Also
see the document entitled
loginDirections.
P-288 will be open basically mid-morning until about 5:00 p.m..
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 Sun Ultra 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, julie@siggraph.csustan.edu.
While you are in the CS Lab, you will be able to access Sun Ultra
workstations by logging in directly at the console, or by using
telnet from some other kind of computer in the lab, such as a
Macintosh or a "Wintel".
Telnet makes it possible for many people to use a given workstation
simultaneously. We will have a demonstration of how to get a telnet
connection. (You can probably get help just by asking someone in the
lab.) You can also access the Sun Ultra's via a telnet connection
from most any computer on the campus local network, such as those in
P-106, P-120, L-125 and L-145. Generally those labs are open during
the same hours that the campus library is open. Please check postings
at the labs or ask lab personnel in order to get further information
about lab hours. Lab assistants (wearing red vests) should be able to
show you how to telnet to a CS Department workstation.
MODEM CONNECTIONS:
Some phone numbers for making modem connections are: from Turlock
669-9834; toll-free from Modesto 523-2173; toll-free from Merced
723-2810; and toll-free from Stockton 467-5399. There has been recent
discussion of discontinuing the availability of some of these
connections. Check with the computer center's (OIT's) help desk to
get the latest information. The help desk is in L-150, and the
telephone number is 667-3687.
INTERNET CONNECTIONS:
You may want to purchase Internet connectivity. This is
not a requirement and not necessary for success,
but it can be a great time-saver and a convenience once you
have gotten past the hurdle of setting everything up.
There are several Internet service providers (ISP's) that serve
this area. Chances are that members of the class can make good
recommendations. We can devote some time to this topic on the
first day of class.
One can find many ISP's by using the site:
http://thelist.internet.com.
ISP's also advertise in the yellow pages and in newspapers.
If you get an Internet connection, make sure you gettelnet
and ftp capability. This will allow you to log in
remotely to your computer account at the college and also
transfer files back and forth. For doing telnet and ftp, you may
need to get some special add-on software. For more information
about this, read the
telnet and ftp help sheet. For additional information, ask
me or the CS Lab Administrator, Julie Gorman.
NETWORK AVAILABILITY OF COURSE MATERIALS:
Many course documents, assignments, supplements, and so on will be
made available via the world wide web. To access the on-line CS 1500
materials, you can open the URL
http://shalim.csustan.edu/~john/Classes/CS1500_Programming_I/
from any web browser on any computer connected to the campus network or
Internet.
Also, there is a miscellaneous collection of information that you will
probably need to make use of from time to time. It is located here:
http://shalim.csustan.edu/~john/Classes/General_Info/
COURSE OBJECTIVES:
The main aim of this course is to train you to do computer
programming. You will be learning the C++ programming language, but
that is only a part of the course. Once a person learns to program,
it's no big deal to learn a new programming language. It takes only a
few weeks.
The real objectives are to acquire good problem solving skills,
algorithm design techniques, and skill in choosing ways to represent
data. It will not be easy to gain these objectives, but you will do
well if you are patient and persistent.
Some other course goals are to learn the basics of program testing and
debugging, to find out how to use the Sun Ultra workstations
effectively, to gain facility with the JOVE text editor, to develop
self-confidence and self- reliance, and to acquire the ability to cope
with the inherent uncertainties and complexities of today's computing
systems.
COURSE COVERAGE:
We will cover most of chapters 1-11 in Shiflet, and most of parts I-V
in Anderson. See the
schedule
for weekly reading assignments.
TESTS & GRADING:
Your course grade depends on three components: labs, solo
programming, and quizzes.
The lab component consists of weekly work you will do with a lab
partner in the CS lab on Fridays. You will do things like, run
commands, run applications, and write small programs. To show
that you did the work properly, you will turn in listings of
source code, scripts showing your work sessions, listings of
command outputs, and such.
The solo programming component consists of programming that you
do all by yourself. You will have to turn in solo work about
every other week.
The exam component consists of three quizzes, and an optional
comprehensive final exam. Each quiz and exam will cover topics
from lab, reading assignments, programming assignments, and
lecture.
Ideally, you will do well on all the labs, solo programming and
quizzes, and your grade will be determined by giving a weight of
20% to your lab average, 40% to your solo programming average,
and 40% to your quiz average.
You don't have to take the final. If you feel that you need to
improve your grade, you may take the final, and I will replace
your lowest quiz score with your grade on the final (provided, of
course, that your grade on the final is higher than your lowest
quiz score.) There will be no make-up quizzes.
EXCEPTION:
In order to receive a passing grade in this course, you must get a
passing average in both the solo programming component and the exam
component. If you receive a failing average in either of these
components, you fail the course, no matter how well you did in the
other components. Also, you must turn in a working solution to each
of the solo programming problems. Late assignments are not accepted
beyond a certain time limit, so keep in mind that it is quite possible
to fail this course just by failing to turn in one program on time!
LATE ASSIGNMENTS:
Please feel free to seek my help in office hours, lab, or lecture if
you are having difficulty making progress on any programming problem.
According to university regulations, 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
on assignments early and come for the help you need early. You have
my promise that I will listen to you and I will do what I reasonably
can to help you.
Experience has shown that when students submit late assignments
and professors tolerate it, chaos sets in very rapidly. You will
be penalized 10% per calendar day (yes, including weekend days)
up to a limit of 6 days, or up until such time that I show a
solution to the class. Whichever comes first, after that time
your submission will not be accepted.
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 are not finished with an assignment on the due date, please
turn in what you have done. (It is possible to get up to about
half credit, depending on the quality of the work and the
circumstances.)
SPECIAL PROBLEMS:
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.
RESPONSIBILITY FOR YOUR OWN WORK:
Feel free to discuss anything about Friday lab assignments with
anyone. Feel free to give or accept any kind of help, 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.)
The solo programming assignments have to be treated in a
different manner.
On the one hand, I encourage you to discuss solo programming
assignments with your classmates or whomever you wish. It is
very appropriate and worthwhile for students to get together to
test their understanding of an assignment, to discuss advantages
and disadvantages of alternative approaches to solving the
problem, to talk over the pro's and con's of different ways of
organizing the program, and to give each other pointers to
helpful published materials.
You are welcome to use algorithms or segments of source code that
you get from me, from text books, or from publications available
in libraries. (Don't expect all of it to work perfectly! You'll
probably have to adapt and even debug some of it.)
Aside from the foregoing exceptions, you must be the sole author of
all the source code that goes into the solo programs you turn in
for this course.
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. The members of the
class will be told any new information that arises from such an
exchange. Aside from that, you must write quizzes and exams
without help from other people or from written material.
If there is compelling evidence that programs or tests were not
done according to the above criteria, credit will be withheld.
PARTICIPATION:
I hope to be accessible, helpful, and responsive to your needs
during this course. You can do well, and I want that.
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!