CPSC 152 is a first course
in computer science. The programming
language used in this course is C++.
However, this is not just a course on how to program in C++. The point of the course is to learn
introductory computer science concepts (e.g., algorithm design and
introductory theory) in addition to learning how to program. Please note that if you have absolutely no
computer experience, you may need to spend extra time in the labs (the TA’s
will help you).
Lectures:
Section 101: Tuesday & Thursday from 08:00-09:30
in Angus 104
Section 102: Tuesday & Thursday from 15:30-17:00
in LSK 200
Please note that
tutorials and labs do not start until the second week of classes.
Instructors:
Section 101: Margaret Dulat
(mdulat@cs.ubc.ca); Office: CICSR 185 (building is at 2366 Main Mall)
Section 102: Ed Knorr (knorr@cs.ubc.ca);
Office: CICSR 337
E-mail:
In classes of
this size, it is simply impossible for an instructor to respond to all e-mail
requests. Please do not send e-mail for general questions. Such questions should be posted to the
course bulletin board. However, it is
acceptable to use e-mail if the question is of a more personal nature (e.g.,
illness).
Instructors’ Office Hours:
To be announced
in class. The instructors’ office hours
will be in their respective offices listed above.
Teaching Assistants:
|
Micheline Manske |
manske@cs.ubc.ca |
|
Brad Penoff |
penoff@cs.ubc.ca |
|
Lior Berry |
berry@cs.ubc.ca |
|
Mark Hancock |
mhancock@cs.ubc.ca |
|
David Sprague |
dsprague@cs.ubc.ca |
The only required textbook is: “Absolute C++”
by Savitch, 1st ed., Addison-Wesley, 2002.
It is available at both the UBC bookstore and the Discount Textbooks
store (just off of campus).
The publisher of
the Savitch book is shrink-wrapping (for free) 50 pages of another book
(“Engineering Problem Solving with C++” by Ingber & Etter, 1st ed.,
Prentice-Hall, 2003) with the Savitch textbook. A small number of copies of the Savitch textbook (and the
Ingber/Etter book) are on short-term reserve (2-hour loan) at the Main Library
and the Computer Science Reading Room.
Unlike the Reading Room, the Main Library is open on most evenings and
weekends.
A percentage grade will be
assigned. The marks for the course will
tentatively be distributed as follows:
|
Labs (10) Final Exam |
20% 50% |
To pass the
course, you must obtain at least 50% overall AND at least 50% on the final
exam. In accordance with the usual CPSC department
procedures, the highest grade that will be awarded to a student failing the
final exam is 45%.
If for any reason you are unable to write an exam,
you should inform your instructor prior to the exam. In the case of illness, a doctor’s note will be required. Other special cases should be discussed with
the instructor prior to the exam.
Also, please take careful note of the following drop deadlines
for this course: Tuesday, September
16th (final date for withdrawal without getting a ‘W’ on your transcript) or
Friday, October 10th (final date to get a ‘W’ rather than a potential ‘F’ on
your transcript).
The midterm exam is scheduled for Thursday, October 23rd during class. The exam will be different for each lecture section, but each class’ exam will be approximately equal in difficulty. To give students adequate writing space, an additional room is booked for section 102; but section 101 will likely have enough space, as is.
The final exam will be scheduled and announced on a date determined by the Registrar’s office. Please take note of the date and time of the final exam before finalizing your travel plans. There are no “early” exam sittings for this course, and the Registrar’s office does not consider travel to be a valid reason for deferring an exam. Students who miss the final exam due to illness, for example, will have to supply a doctor’s note to their home faculty office (usually Applied Science), and will write an alternate CPSC 152 exam in either April or August.
You should be registered for one tutorial section, although you are free to attend as many tutorials as you like. Tutorials should be your first line of query (after questions in class) about any aspects of the course material that you do not understand, or that need clarification. Do not wait until the day before the midterm to ask for help because the TAs could be very busy at that time! Tutorials do not start until the second week of classes. The schedule for tutorials is as follows:
|
Tutorial |
Day |
Time |
Place |
TA |
|
T1A T1B T1C T1D T1E T1F T1G T1H T1J |
Tuesday Thursday Friday Friday Tuesday Wednesday Thursday Friday Wednesday |
10:00-11:00 10:00-11:00 10:00-11:00 11:00-12:00 14:00-15:00 14:00-15:00 11:00-12:00 14:00-15:00 16:00-17:00 |
LSK 462 MATH 229 LSK 460 ANGU 33 CHEM 124 CHEM 124 MATH 104 ANGU 326 MACM 160 |
|
You will be given an account for your course
work. If you have any problems with
your account (e.g., if you forgot your password), please contact Moyra
Ditchfield in CICSR 389. You should
refer to any handouts given to you at the beginning of the semester for rules on lab use
(www.cs.ubc.ca/ugrad/Labs/Policies/index.html), rules on plagiarism
and collaboration
(www.cs.ubc.ca/ugrad/info/current/Plagiarism.html), and other rules on
academic conduct
(www.cs.ubc.ca/ugrad/info/current/policies.htm). These links provide additional detail. (Note that all of these links can be found by clicking on links
at www.cs.ubc.ca/ugrad. This is a good
URL to memorize.)
The lab TAs will be able to help you with initial
start-up problems and show you how to use the software needed for your first
lab. You must attend the lab that you
have registered for, unless you can find someone to switch with and you have
the approval of your respective TAs.
Even if you intend to do most of your lab work at home, you should still
come to at least the first part of your scheduled lab, just in case the TAs
provide announcements, tips, and instructions.
Also, this is the time when you will likely get your marked assignments
back. Since the scheduled labs are only
2 hours long, and most of the labs take longer than this to complete, you
should use your lab time wisely. Try to
get as much of the lab completed before the scheduled lab time as possible, so
that you only need to consult with the TA on the last details of the lab. When
you arrive at the lab, check the whiteboard for notes, because any last minute
corrections are likely to be posted there.
Labs do not start until the second week
of classes. The lab sessions are 1 hour and 50 minutes
long. Please respect your TA’s
instructions when he/she asks you to leave to make room for the next lab
session. You should make sure that you
leave some time at the end of the lab session for printing out any results.
Labs
are available during the evening, weekend, and generally anytime that there is
no lab scheduled there. Your account will not work on machines in the LSK or
CICSR buildings, just in CEME.
The lab schedules and due dates are as follows, all in room CEME 2212:
|
Lab |
Day |
Time |
Lab TA |
Due Date and
Time |
TA’s Helper |
|
L1A L1F L1G L1H L1J L1K L1L L1M L1N L1O |
Monday Monday Tuesday Tuesday Tuesday Wednesday Wednesday Wednesday Thursday Thursday Friday Wednesday Friday Friday |
10:00-12:00 16:00-18:00 08:00-10:00 10:00-12:00 14:00-16:00 10:00-12:00 14:00-16:00 16:00-18:00 10:00-12:00 12:00-14:00 10:00-12:00 12:00-14:00 14:00-16:00 16:00-18:00 |
|
Following Monday 09:45 Following Monday 15:45 Following Tuesday 07:45 Following Tuesday 09:45 Following Tuesday 13:45 Following Wed. 09:45 Following Wed. 13:45 Following Wed. 15:45 Following Thursday 09:45 Following Thursday 11:45 Following Friday 09:45 Following Wed. 11:45 Following Friday 13:45 Following Friday 15:45 |
|
Labs will be handed in on paper as well as
electronically (except for the introductory lab). Instructions on how to do this will be presented in lab
handouts. There is a Lab Cover Page
that you must download, fill out, and attach to the front of each lab except
for Lab 0. Marks for late labs submitted no more than 24 hours late will be
multiplied by 2/3. Marks for late labs
submitted 24-48 hours late will be multiplied by 1/3. Zero marks will be given for a lab received more than two days
late.
Remember
to keep an eye on your disk and print quotas. Failure to observe the limits can
result in you being unable to log in, or to print your files. Extensions
will not be given for either of these reasons. Ask your TA's for details on how to check your print and disk
quotas. Periodically, delete files
(e.g., executable files, but not C++ source code files), to free up some
space. (Delete the executable files
from your homework, but not the source files.
You can always re-create the executable files, as long as you still have
the source.) You can buy coupons for printing at the Copyright store in the
basement of the Student Union Building.
You should have a handout in class that explains the procedure used to
register them--or you can visit URL www.cs.ubc.ca/ugrad and click on the Frequently
Asked Questions (FAQ) page, and then click on the note about Print Quota
Policy, for example.
Check the course
outline to determine when your labs are due.
There are marked boxes in the basement of the CICSR building (also
called the ICICS building or the computer science building). This is where your labs are to be handed in.
Make sure that you put a title page on each lab that gives your name, student
ID number, lab assignment number, and lab section. A title page is available
with the online course material that you will access in the next part of the
lab. Please staple your pages
together. Make sure that you put your lab in
the correct box; otherwise, it may not be marked!
When is Each Assignment Due?
You should try to get each assignment completed
within a day or two after your scheduled lab ends. We realize, however, that you are busy with all kinds of courses,
and emergencies do come up, so we will allow you to hand in your lab up to 15
minutes before your next week’s lab.
Given this generous allowance, we request that you not ask for
additional extensions.
Home
Software?
If you already have a C++ compiler installed at
home, you are of course free to use it to do some work on the labs for the
course. The textbook publisher may include
a CD-ROM of an introductory edition of Microsoft’s Visual C++ compiler, which
you may use if you wish (note that this compiler does not fully support the
ANSI C++ standard, and hence a small number of things may not work exactly as
described in class). The preferred
option is the CD-ROM called “Home Suite Home” that has been packaged by the
Department of Computer Science. It
includes, among other goodies, a full Unix-like environment that sits on top of
Windows 95/98/2000/XP, etc. This
environment includes a C++ compiler.
You can buy the “Home Suite Home” CD-ROM for $5 from the Copyright store
in the basement of the SUB, or you can download it from the CS department’s Web
pages by following the Remote Computing links on the Frequently Asked Questions
page located at www.cs.ubc.ca/ugrad.
You will also find answers/links there to lots of other questions about
our computing facilities.
Please note that because of the great variety of
home PC environments, the TA’s may not be able to provide full technical
support for home environments. The course bulletin board may be helpful in this
regard, as other students are often able to share their advice and experiences.
You will have a reasonably complete set of services
through the World Wide Web. These
services include a set of lecture notes, a course glossary, a set of tutorials
covering C++ and your computer environment, and a bulletin board. Please note that the
WebCT bulletin board is required reading for this course.
You should plan to read new messages every day or two. Your undergrad
account will allow you to access WebCT, beginning a day or two into the
course. (For the first day or two, your
account may be denied access. This is
temporary, until we get the course content, etc. brought up to date.)
You’ll get an overview of the Web and an
introduction to the on-line services during your first lab. If you want to browse the material on the
Web in the meantime, sign on to your account and start up a Web browser
application, such as, Internet Explorer, Mozilla, or Netscape. Type the following URL:
You will be prompted for a user name and
password. Enter either: (a) your
NetInfo account ID and the corresponding password, or (b) your student number
and the corresponding PIN number. You
should then see a page that lists those courses in which you are registered
that have a corresponding WebCT course.
Click the “CPSC 152: Principles of Software Development” link to access
the on-line resources for this course.
The course notes available on-line are reasonably
complete, but they are also concise.
Expanded examples and notes will be presented during lectures. If time is short, some parts of the on-line
course notes may not be covered in class and will therefore not be
examinable. The on-line notes are
pretty good and are always undergoing (minor) changes/additions. We hope that you will point out errors and
omissions so that the notes can be updated.
The WebCT bulletin board will be used to mention important material that may not be mentioned in class. You can definitely use the bulletin board to ask questions about the lectures or labs. The TAs and instructor will check the board daily, as will most other students, so you can expect prompt replies. If you know the answer to a particular posting, feel free to respond to it. The idea of a bulletin board is to facilitate communication, thereby making everyone’s course experience better. Note that the bulletin board is divided into a number of forums (“Main” for lectures and miscellaneous questions, “Lab 0” for Lab 0, “Lab 1” for Lab 1, etc.) Before creating your note, choose the correct forum to post to; this will be pretty obvious from the context of your note.
Important: The bulletin board is where all general queries should be posted. The TA’s and instructors will not answer queries of a general nature by e-mail. Personal questions (ones that you do not want anyone else to see; for example, regarding illness, family emergency, etc.) may be sent to the instructor or a TA by e-mail. Never post your program on the bulletin board!
Submitting the work of another person as your own
(i.e. plagiarism) constitutes academic misconduct, as does communication with
others (either as a donor or recipient) in ways other than those permitted for
labs and exams. Specifically, for this
course, the rules are as follows:
o Labs are to be done alone. You may not submit code not written by you,
and you may not share your work with others.
There is one exception: you may build your solutions on sample code made
available by an instructor or TA.
o You are, however, encouraged to discuss
the approach you used to solve a problem with your fellow students. This discussion must not involve any coding
details -- only the approach used.
Violations of these rules constitute serious
academic misconduct, and they are subject to penalties ranging from a grade of
zero on a particular assignment to indefinite suspension from the
University. Years ago, it used to be
the case that students got a mark of zero for the assignment being plagiarized;
however, the tendency of the university is now going towards failure for the course,
or possible suspension from the university. It is simply not worth turning in
someone else’s work. Note that you will
get part marks for turning in your own work (on time), even if it is
incomplete.
More information on procedures and penalties can be
found in the Department’s
Policy on Plagiarism and Collaboration
(www.cs.ubc.ca/ugrad/info/current/Plagiarism.html) and in the University
Calendar. If you are in any doubt about
the interpretation of these rules, consult your instructor or TA.
Note about
updates to this document: An on-line version of this course outline is
available on the WebCT CPSC 152 Homepage.
The on-line version will be updated as necessary throughout the
semester. For example, once the TA
assignments have been finalized, we will state who does which tutorials and
labs.