This document is divided into the following sections:
Course Title: | Introduction to Computer Science I |
Instructor: | Joseph R. Shinnerl ("shin-AIR-ull"), Lecturer |
Mail: | shinnerl@ucla.edu Postal mailbox in BH 4732N. |
Office and Phone #: | BH 4731A, (310) 794-4752 |
Regular Office Hours: | TuTh 2:30--3:30PM in BH 4731A; subject to change. |
Virtual Office Hours: | Please send e-mail directly to a TA or to Professor Shinnerl as appropriate. Questions by e-mail are encouraged and will be answered promptly. |
Electronic Resources: |
Important electronic handouts are posted on the course home page: |
Lecture: | TuTh 10:00--11:50 AM, BH 5419 |
Teaching Assistant: |
TBA
|
Discussion Section: |
1A: F 8:00--9:50 AM, BH 5249. |
SEASnet Labs: | BH 3436, BH 4405, BH 4442; open M 10am--11pm, Tu-Th 8am--11pm, F 8am-6pm, Sat 9am-9pm; Sun 1pm-11pm; hours subject to change on holidays. The SEASnet Help Desk is in BH 2684. The official software platform for this course is Microsoft Visual Studio .NET on Microsoft Windows XP. If you wish to install the course software on your own computer, you may pick up your free copies of the installation CD's from Julie Austin at BH 2567, Mon--Fri 9am--4:30PM except 12--1PM lunch. |
Required Text: | Absolute C++ by W. Savitch. |
Recommended References:
(placed on reserve at Powell) |
C++: An Introduction to Computing,
3rd Edition, by J. Adams and L. Nyhoff.
The C++ Programming Language, 3rd Edition, by Bjarne Stroustrup. |
Exam Dates: |
Midterm: Tuesday, February 15th, during lecture. Final: Thursday, March 24th, 2005, 11:30am-2:30pm. site to be announced Do not take the course if you cannot take the final exam as scheduled. |
Grading Policy: |
30% Programming Homework 10% Written Homework 20% Midterm Exam 40% Final Exam To pass the course with grade C or better, you must
|
Prerequisites: | Mathematical tools and concepts will be used in this course. Although no mathematics beyond typical high-school algebra is required, a willingness to learn and use mathematical ideas is important. |
Wait-List Policy: | At present, overenrollment is not expected to be a problem this quarter. Detailed enrollment information is available from the UCLA Registrar's Web Pages. Please see Prof. Shinnerl if you encounter any difficulty. |
Cutoffs for letter grades at the end of the quarter
will be close to the scale of 85% or above
for an A-, 70% or above for a B-, etc. The cutoffs may be lowered
somewhat but will not be raised. Of students who receive grades,
usually about 25% receive A's, 35% receive B's, and 35%
receive C's. Exceptions are sometimes made for classes perceived
to be significantly stronger or weaker than the norm.
All scores and grades are posted online at
http://my.ucla.edu
as soon as they are known. Please check your scores frequently
and let the TA know at once if you believe any score to be in error.
Exam questions will be based on principles and examples
covered in lecture, discussion section, and the homework
assignments. Exams are written and may
include multiple-choice, short-answer, and coding
questions. Limited partial credit on short-answer questions will
be given only to answers that are substantially correct in some
aspect of the problem. Attendance at all exams is mandatory.
Bring an ID card with your photo on it to every exam. Arrive
early; seating at exams is assigned. You are allowed to bring
one two-sided 8.5" by 11.5" page of notes on white
paper to each exam, provided you prepare the notes yourself.
Remember that both the midterm and final exams are usually held
at locations different from the regular lecture location. Exam
locations are announced in lecture and posted online.
There will be no makeup exams. For students who are ill or have
other genuine, documented reasons for missing the midterm, the
final will count for 60%. If you believe you will not be able
to attend the midterm, inform Professor Shinnerl by e-mail
of the reason for your absence before the exam. You must attend
the final exam at the officially scheduled time. If you
can't, please take the course a different quarter.
You should carefully look over
your graded exams to make sure that no error has been made in evaluating
your work or in adding up your score. However, you must do this
in the presence of your TA or professor.
Once you leave your instructor's presence with your exam, no regrade
request can be accepted. Submit any formal regrade request by e-mail
to whoever gives your graded exam back to you.
This section is divided into the following subsections:
Programming assignments are posted as electronic
handouts called specifications ("specs")
on the course Web page. Helpful hints are also posted electronically
in "FAQ" (frequently asked questions) format. If you
believe you need more information than is provided in the initial
assignment specification, be sure to check the FAQ handout. If
you still need more information, let a TA, lab assistant, or Professor
Shinnerl know. Your question and its answer may be added to the
FAQ file to help others.
Most assignment specifications will be posted early in a
clearly marked preliminary form called a beta version
to encourage you to start early and to allow for early
correction or clarification of any possible errors or ambiguities
in the handout. Your constructive feedback on these beta versions
is appreciated. The final official version of each
assignment will always be posted at least
one week before its due date. As there is usually
no significant difference between the beta spec and the official
spec, you should not hesitate to start working on the assignment
from the beta spec. However, please
be sure that your submitted assignment conforms to the specs of
the official
assignment handout, not the beta version, to ensure that your assignment
is graded properly.
A page of frequently asked questions (FAQ) and
answers will accompany each specification. FAQ pages
provide useful hints and clarifications and are updated
frequently.
You are expected to learn the use of a
debugger program;
this will reduce your debugging time significantly.
A debugger allows you to run your program one line at a time, watching
how your variables change as you go. Alternatively, you can
set breakpoints and halt execution only at those points.
Try it. The TA and Lab Assistants can help get you started.
The Visual Studio package
includes a debugger.
Programming homework is usually due Wednesdays at 10:00 PM.
Late homework may be turned in until the following Friday
(2 days later after the due day)
at 10:00 PM. Late penalties are levied as follows.
In order to learn programming, you must program.
Most assignments are intended to require from 10 to 15 hours of
work. However, successful completion of an assignment often requires
more time than you expect. Start the homework early to allow yourself
time to receive help in discussion section and office hours.
Debugging
Due Dates
Formatting Programming Assignments
Grading of Homework
Homework Regrades
Software Platform and Working at Home
Less than 24 hours late | -10% of points possible |
Less than 48 hours late | -25% of points possible |
More than 48 hours late | -50% of points possible |
It is required that you complete every programming assignment by within 2 weeks of its due date or by the last day of instruction, whichever comes first. Any assignments that you complete but do not submit within two days of the due date must be given directly to your TA (e.g. by e-mail) before these deadlines expire. Please send all questions regarding late submission of homework assignments to your TA rather than to Professor Shinnerl.
Configuring and Formatting Programming Assignments
Before you begin coding, you must
configure the Visual Studio integrated development environment (IDE)
in a certain way.
Follow the
instructions given online.
To receive full credit for your work, you must follow the
Programming Project Requirements.
Please follow the link and read this handout carefully
before you begin.
If you regularly attend a discussion section other than the one in which
you are enrolled, you should list both of these sections
on your assignments and exams and specify which is which.
If possible, you should attend the discussion section in which
you are enrolled. If you can't, then you may attend any other
discussion section that has room for you.
Graded programming projects are returned to you by your
TA in discussion section about one week after their due dates.
Homework grades will be based both on the program's
operation (50--80%) and on its adherence to the principles of
good style and structured programming discussed in lecture and
the text (20--50%). Blocks of code should be separated by explanatory
comments. Partial credit will be given to programs that are substantially
correct. Programs which do not compile cannot be run and will
receive at most half credit. Programs which compile but do not
do anything sensible when they are run will also receive at most
half credit. As some of the grading process will be automated,
it is imperative that your program follow the specifications in
the assignment exactly. In particular, make sure data items are
inputted and outputted in the proper sequence and format. Failure
to comply with the assignment specifications may result in both
substantial penalty and significant time loss as you go through
the regrade process.
Because exceptional circumstances like illness or accidents sometimes
arise, and because grading mistakes are sometimes made, your lowest
program score of the quarter will be dropped. However, this courtesy does
not excuse you from completing any assignments. You must complete
and submit every assignment by within the final submission
deadlines if you wish to pass the course.
Please do not ask for permission
to submit homework late without penalty unless the circumstances
are particularly extreme, such as severe and prolonged illness
with documentation. If for any reason you are unable
to complete more than two programming assignments on time, you should drop
the course.
If you believe an error was made in the grading of
your program, you may submit a written request for regrading by
e-mail to your TA. These requests must be submitted no more than a week
after the graded project is made available to you to be picked up. Check
with your TA, and, if the regrade has not been resolved after
2 weeks from the time you request it, inform Professor Shinnerl.
No requests for regrades will be considered unless they meet these
deadlines. It is your responsibility to verify that the request
has been processed on time. Be forewarned that the whole piece
of work will be regraded, so the grade may go down rather than
up. Pick up graded work from your TA.
Software Platform and Working at Home
The compiler used for CS 31 is currently
Microsoft Visual Studio .NET
running on Microsoft Windows XP, as installed in the
SEAS Labs.
You are encouraged to work at home on whatever platform you
normally use, and as a registered CS 31 student you may obtain a
free copy
of Visual Studio from Boelter Hall 2567 (Mon.--Fri 9--4:30)
for your own personal academic use.
There are subtle differences
between different compilers and even between different versions
of the same brand of compiler running on the same or on different
operating systems. If your platform at home is at all different
from the one in the SEAS Labs, you should play it safe and test your
programs in the SEAS Labs before submitting them for grading.
Visit the SEASnet
Web pages to learn how to activate your seasnet account.
Human assistance is available Monday--Friday from 8--4:30PM at the
SEASNET Help desk in 2684 Boelter Hall.
You are both allowed and encouraged to discuss general
algorithms and approaches to programming problems with your classmates.
But these discussions must remain at a high level and not involve
actual C++ statements being exchanged. In particular, THE CODE
YOU SUBMIT AS SOLUTIONS TO PROGRAMMING ASSIGNMENTS MUST BE YOUR
OWN INDEPENDENT WORK. DO NOT SHARE CODE. Do not use any code
other than that which you write yourself or which is posted publicly on
the course web pages. Any algorithm, code, or idea that you adapt from
the course texts or any other text
must be explicitly attributed to that source in your documentation.
Please read the additional
academic integrity guidelines
posted separately. They are part of this policy.
Be aware that any detected activity bordering on
infringement of these academic honesty guidelines will be forwarded
to the Dean of Students for full investigation. The penalties
may be severe. In several recent cases, students have been suspended
and have had the incident permanently recorded. If you witness
any cheating by classmates, please report it to Professor Shinnerl
as soon as possible.
Before your programming projects will be graded, you must read
sign and submit the hardcopy
Academic Honesty Pledge distributed
in lecture the first day of class. The pledge simply states that
you understand the policy expressed here and agree to follow it.
Unauthorized copying of any proprietary commercial
software is a crime and is therefore strictly prohibited. Don't do it . Any
evidence of such copying will be reported at once to the Dean
of Students and may result in disciplinary action.
If you witness any such copying, report it at once.
We will cover most material in the course text by Walter Savitch.
On exams, you will be expected to understand everything covered
in lecture or discussion section. You will not be held responsible
for material in the text that is covered neither in lecture
nor in discussion.
You are encouraged
to consult the
references
listed above and placed on reserve at Powell library.
Lectures, Discussion Sections, and Notes
Regular attendance at lecture
and discussion section is strongly recommended.
You will learn best if you use all the sources of
instruction available to you. Participating actively in lectures
and TA-led sections is especially important. This means nodding
your head once in a while when you understand, and shaking it
when you don't. Pertinent questions help everyone. Please ask
them, and please pay attention when others ask them. If you can't
hear the question, ask for it to be repeated. It is ok to interrupt
if you do it politely and discreetly. It is also ok to whisper
to your neighbor, if you are trying to clarify a point being made
by the speaker.
Talking in lecture for any other reason is distracting, inconsiderate
of other students, and inappropriate. Please let
Professor Shinnerl know if someone else's conversation is distracting
you.
Please refrain from any activity in lecture that might be disruptive
to the learning process; for example, talking, eating and drinking,
reading, or leaving early from the center of the room. If special
circumstances require you to leave early, plan ahead and sit near
the exit. Thank you.
Taking notes is a good way to help yourself stay focused, but
it is probably best to take them selectively. As all programming
examples covered in lecture will be made available to you in the
online handouts (see "Electronic Resources" above),
copying down the code of each example is unnecessary. It is far
more important to understand the purpose and syntax of each program
presented.
If possible, you should attend the discussion section in which
you are enrolled. If you can't, then you may attend any other
discussion section that has room for you, but list both and
indicate which is which on all your homework and exams.
Professor Shinnerl and the TA will all hold
office hours
at various regularly scheduled times throughout the week.
Most of these will be held
in regular offices in Boelter Hall (BH).
but some may be held in the SEAS Labs.
Attending office hours now and then with your specific
course-related questions
is a great way to accelerate learning. Be advised, however, that
office hours tend to be rather crowded at peak times, like the
day before a tough homework assignment is due, or the day before
an exam. Preparing your questions in advance helps everyone. At
other times office hours are often empty, and you can receive
relatively detailed one-to-one help.
Please do not send questions through the
campus "virtual office hours" system. Instead, e-mail them directly
to a TA or to Professor Shinnerl. This ensures a more prompt response
and facilitates construction of the FAQ files.
You are encouraged to send questions, comments, and
requests via e-mail. Professor Shinnerl and the TAs usually check
their E-mailboxes several times a day for messages. Keeping your
message clear and concise greatly increases the chances of a prompt
response. Requests for help with homework projects should usually
be sent to your TA rather than to Prof. Shinnerl.
Do not send your entire program's source code for help with
debugging. To receive debugging help, you must do your part by
narrowing the error down to at most 5 or 10 lines of code.
Longer fragments received by e-mail are unlikely to be read.
If you cannot narrow the error down, try bringing a printout
of your code and a flowchart or other design diagram to
office hours.
When you e-mail Prof. Shinnerl, please specify your discussion
section and TA; your message may be forwarded to him or her on busier days.