CSCI 112
Programming and Algorithms II
Spring 2006
Syllabus
Instructor:
Teaching Assistants:
to be determined
Prerequisite:
CSCI
111 (formerly 015A) (or approved
equivalent, check
with your advisor)
Students transferring from a California community college can check on
the assist website to find out
what
courses are equivalent to our 15A.
Required Textbook:
(available at the CSUC bookstore)
Data
Abstraction and Problem Solving with C++, 4rd edition
by Frank M. Carrano
(2005) Addison-Wesley Pub Co;
ISBN: 0-321-24725-6
If you want to save some money, the previous
edition of the book is very similar and sells on-line for about $3.00
Data
Abstraction and Problem Solving with C++, 3rd edition
by Frank M. Carrano and Janet J. Prichard
(2002) Addison-Wesley Pub Co;
ISBN: 0-201-74119-9
Optional
Reference Books:
(not listed as a textbook in the CSUC bookstore):
Provides a good
introduction/tutorial
to C++:
C++
From the Ground Up, 2nd
edition,
by Herbert Schildt,
Osborne Press, ISBN: 0-07-882405-2
A complete
reference
manual for C++ by
the creator of C++:
The
C++ Programming Language,
3rd
edition,
by Bjarne Stroustrup,
Addison-Wesley Pub Co; ISBN
0-201-88954-4
Attendance:
Attendance of
lectures is not required, but is highly recommended. You will be
responsible for all material covered
during lecture. Missing class can make the projects and exams
especially
difficult. If I verbally change the requirements of a project during
lecture, you are responsible for meeting the new requirements. If
you miss a class make sure you get notes from another student.
Attendance of
labs is
REQUIRED. For each 3 unexcused absenses, your course grade will
be lowered one notch. For example, if you get a B in the course
but miss 4 labs, you will get a B-. If you miss 7 labs you would
get a C+.
Grading:
Grading is
relative. The students that do the best work will get an A, the
students that don’t do as well will get a B,
and so on. I do not follow the traditional percentage grades of 90%
= A, 80% = B, etc., and I do not grade on a curve that defines how
many students will receive each grade.
I suggest you read my advice on how to
get an A.
Students will
receive
a letter grade A-F (4.0 – 0.0) for each category (1 for exams, 1
for
projects). The course grade will be a weighted average of the
individual letter grades (see category percentages below). This
mechanism allows for relative grading of each category (e.g., if the
best score on the exams is a 60%, that student will probably receive an
A for the exams, thus an A (not the 60%) will be averaged with the
student’s other grades). This grading mechanism means that
you
have to get an A on both the assignments and the exams to get an A in
the course.
I will routinely post the
grading spreadsheet (grades).
If you are not happy with a grade, talk to me
immediately. If you do not talk to me within a week of the posting
of a grade, I will assume you think the grade is fair and accurate, and
you will
lose your right to dispute the grade.
Grade category
percentages
Exams 50% of course grade (2
midterms and a final)
Programming Projects 50% of course grade
The midterm
exams and
final will have
equal weight. The final will be cumulative. All exams will cover
material from the lecture, the textbook and the programming
projects. The exam dates and exams from prior semesters is on the
exams page.
As an example of
how
I distribute grades, when I
taught 112 in Fall 2002 I gave the following percentages of each letter
grade. All the people that failed, gave up--they stopped turning
in assignments, and stopped attending lecture.
A
12%
A- 10%
B+ 13%
B 13%
B- 3%
C+ 3%
C 5%
C- 3%
D+ 5%
D 5%
F 28%
Programming
Assignments:
There will be 7
programming assignments
due at approximately 2 week intervals starting Wednesday February 8.
The easier
assignments will be worth a smaller percentage of your grade than the
harder assignments.
Late
Assignments:
Assignments
turned in 1-24 hours after the due date will lose 15%
Assignments will NOT be accepted more
that 24 hours after the due date.
E-mail:
I will routinely
communicate with the class via e-mail. I will use your ECC e-mail. If
you do not routinely read
your ECC e-mail, you should create a .forward file to forward
your
ECC e-mail to the account you routinely read. The size of your ECC
mailboxes is limited. If you let too much mail build up, you will
not be able to receive new mail and thus might miss some important
class information.
I will also post
e-mail I send to the class at e-mail sent to class.
You are required
to
read e-mail I send to the class. Due to the nature of
programming, e-mail is the best way to send updates on
assignments.
I suggest that you make sure your e-mail is working (by comparing
e-mail you've received from me to that posted on the class web site)
and that you check the class e-mail when working on class assignments
and before exams.
You can read ECC
e-mail through the webmail interface: http://webmail.ecst.csuchico.edu/src/login.php
Honesty:
I will
fail students who cheat. I do
not give second chances. It is not a good idea to cheat in my
class.
Don't underestimate my ability to catch people who cheat, I catch
cheaters every semester. I suggest you read my cheating
policy.
I expect all
students to understand and follow the University’s honesty
policies (http://www.csuchico.edu/prs/EMs/EM04/em04_36.htm).
I will fail students who do not follow these policies, even if they
don’t understand them. It is your responsibility to understand
these policies.
The bottom line is that you must do all the assignments on your own.
Turning in code that anyone else wrote
is cheating and will result in failing the course. Here are some
examples of cheating:
copying code from another student
copying code from a book
copying code from the Internet
paying someone else to write your code
buying code
stealing code
letting someone steal your code (e.g. giving out your password,
or using incorrect file protection)
giving your code to another student (both giving code and taking code
are forms of cheating)
getting so much help on an assignment that you are no longer doing the
assignment (this can come from one helper or many helpers)
On the other hand, you are allowed to discuss projects and you may
get help each other find bugs. Just make sure you don't get so
much help
that you are no longer doing the work.
I reserve the right to catch cheaters after the end of the semester.
Just because a cheater makes it to the end of the semester
without being caught does not mean he or she has gotten away with it.
Since I keep assignments it is possible for me to catch cheaters
after the fact. For example, assume your friend George gives you
his old program and you turn it in. Next semester George might
give his program to someone else and I could catch it. Now I will
look through all old programs to see who else George has given his
program to. One of my advantages is that I can use programs to
look for all instances of an assignment over the past several years.
And while I might not catch everyone, I am always amazed at the
people I do catch.
Course Goals:
· Introduce object
oriented design and implementation
· Introduce the concept
of abstract data types (ADT)
· Provide an overview of
algorithmic complexity
· Provide several
challenging programming assignments
Course Outcomes:
·
Increase
the students’
technical maturity level
· Increase the students’
programming ability