Course
Syllabus
CPE 101: Fundamentals of Computer Science I Fall 2008 - Sections 01 and 02 |
Instructor |
Dr. Clark S. Turner |
Office |
14-222 |
Office Phone |
756-6133 |
Office Hours |
|
Email |
|
Home Page |
Course Text
Problem Solving and Program Design in C (Fifth Edition) by Hanly and Koffman, Addison Wesley
ISBN: 0-321-40991-4 (Fifth Edition)
The C Programming Language (Second Edition) by Kernighan and Ritchie, Prentice Hall
If you already own a book on C programming (not C++), and think you would like to use it as your text this quarter, ask me about it during the first week.
1) This
course will
have a common final. If you can't take this common final
then don't
take this class!
(A portion of your final exam will be held at the common final exam
period on Tuesday of finals week, from 7-10p. This final will be
common to all sections of 101, and is in addition to any final exam
your instructor may schedule.)
2) The
3) A
course grade of
incomplete is given only for reasons acceptable to the
University.
4) Labs
and Programs
must be submitted on or before the date and time
specified in the
assignment to receive credit. Late assignments will not be
accepted.
5) Labs and Programs will be graded on vogon (a specific computer where you will electronically submit your programs) and must compile using the gcc compiler and the compiler options -Wall -pedantic -ansi to receive credit. You are responsible for making sure your submissions compile and run as expected on vogon with this compiler and options regardless of where it was developed.
6) Grades for many assignments may be delivered via email to your CalPoly email account or to you in class. Any and all grading issues must be brought up with your instructor in person within one week of being provided the grade. You are responsible for checking your email regularly.
7) There
are no
makeup exams or quizzes except in documented and extreme
emergencies. The one exception is the first lab programming test
and note the specific constraints on receiving permission to take that
makeup in the information below.
If you
know you are going to miss an exam or quiz talk to me before the event as early
as possible and we may be able to work something out if
it is a serious emergency.
Many of your lab assignments, and possibly some of the projects, will allow work in pairs or teams. It’s easier for many people to explore difficult new material with a partner to work with.
However, you will be required in your professional work to be able to write programs on your own as well. For this reason several of the class programming projects will be designated as individual work only. You are required to do your own work on these assignments. Collaboration on such projects is strictly forbidden, and you must sign a contract (attached to this syllabus) agreeing to this standard.
If you're accustomed to a high-school environment where cheating is discouraged but not really punished, please become unaccustomed to it immediately. We're very serious about this rule, because we know that individual work is an essential part of what you need to be successful professionals. Cheating will not only be punished with an F for the course; it will also result in the 101 instructors collectively filing a request that you be expelled from the university.
If you feel you cannot complete the work on your own, the right solution is to come to one of us and ask for help or to use the resources described below. We will give you individual attention, and a student tutor to assist you as well, but we’ll make sure you ultimately are able to program on your own.
The penalties for cheating on individual assignments apply not only to the receiver of help, but also to the giver. Even well-intentioned help can seriously degrade a fellow student’s education if it is done incorrectly. Do not offer assistance to fellow students on individual assignments, and keep your own work secure.
If you are actively interested in learning how to tutor fellow students, please Email Dr Staley at cstaley@calpoly.edu. He runs our tutoring center, and teaches a course for students interested in tutoring (CSC 303). Once you learn how to help fellow students in a way that enhances their education, we’d value your assistance in the tutoring center. (And we’ll pay you for it, too.)
If you have any question regarding the cheating standards, please feel free to ask us. We don't mind such questions; in fact we appreciate them because they show that you're taking the standards seriously.
Lecture and Lab Attendance
Attendance, while strongly recommended, is required only on the days of quizzes and exams. If you choose not to attend lecture or lab you are responsible for obtaining copies of any handouts, lecture notes, and any important announcements from another student in the class. As you might suspect, your instructor likes to believe that regular attendance will help you perform better on your quizzes, exams, and programs. In addition, your attendance and participation with questions, observations, and opinions will result in a better learning experience for you and for your peers!
I may
send announcements to your Cal Poly email account. Expect to
check this account regularly so that you do not miss an announcement.
You are expected to
read the
assigned chapters prior to class. Not all material in the reading
will be
covered in lecture or lab but you are still responsible for knowing it
for
quizzes and exams. Come to class prepared with any questions from
the
reading that you would like addressed in lecture. Generally, we
expect to cover the topics from the required textbook (Hanly, Koffman)
from chapter 1, 2, 3, 4, 5, 6, 8 and parts of chapter 9. Of
course, what is addressed in lecture may be very different and the text
is considered an important supplement. You are responsible for
the readings and any information given in lecture.
There may be regular
homework assigned from the text in addition to your projects and
labs. The key to learning how to program is to practice!
NOTE:
You may
collaborate on homework exercises with as many people as you like but,
be
sure you
know the material well enough that, in the end, could do it
independently - you
will need to on quizzes and exams. Notice that collaboration is
normally considered cheating on exams and individual programming
projects.
Lab and Lab Exercises
Regular and frequent labs will be assigned and, together, will comprise part of your course grade. You are expected to work on the lab exercises during your scheduled lab time plus as much additional time as necessary to complete them. The lab exercises are designed to familiarize you with some of the concepts necessary to complete your programs and to help you do well on quizzes and exams. In addition, the three hours of scheduled lab time each week is the primary time your instructor will be available for questions and assistance, make wise use of this resource! You may work on your programs in lab after completing all currently assigned labs.
IMPORTANT: No late labs will be accepted.
NOTE: You may collaborate on lab exercises with as many people as you like but, be sure you know the material well enough that, in the end, could do it independently - you will need to on quizzes and exams.
Program Assignments
You will
write a number of
larger programs over the quarter that, together, will comprise a
significant
part of your course grade. The programs will require analysis,
design, implementation,
testing, and documentation. The grading of the programs is rigorous.
Credit is
giving only to solutions that compile and are, for the most part,
functionally
correct.
Programming Style
When you submit programs for grading, they’ll be required to comply
with a programming style sheet, which specifies layout of the code, use
of indentation, variable naming, etc. Your instructor will go
over this style sheet with you in class.
(See
http://users.csc.calpoly.edu/~cstaley/General/CStyle.htm)
A uniform programming style makes it easier for programmers to work together on projects, and we will require the same style for all 101 students this fall in order to promote uniform style within the major. Any code that varies significantly from the required style will be handed back to you to redo, possibly with penalties, until it complies with the style sheet.
IMPORTANT:
Quizzes and Exams
The midterms and final exams will be on-paper, cumulative and comprehensive, and will cover material covered in lecture, your text, as well as problems solving and programming skills.
IMPORTANT:
NOTE:
Grading
The following table presents the weighted value of all graded items based on a course total of 100%:
Graded
Item |
Value
(Each) |
Value
(Total) |
Length (Each) |
Four
programs |
5% |
20% |
Variable |
Labs |
1% |
10% |
Variable |
Homework |
1% |
10% |
Variable |
Three
Lab Exams TBD |
0% |
Pass
2 of 3 or fail course |
50 minutes or less |
Two
midterms |
15% |
30% |
50 minutes or less |
One
final |
30% |
30% |
170 minute |
Grading is on a standard scale where true excellence is rewarded
with an "A." Adequacy is indicated by a "C." The
instructors for 101 this quarter do not plan to issue any “D”
grades. Any performance lower than a C- level will result in an
F.
Many of you will be moving on to CPE 102 after this quarter, and that
class requires a C- or better in 101. If you haven’t reached that
level this quarter, you will be better served by retaking 101
before
going on.
CPE 105 and CSC Tutoring Center
There are two resources you may find especially helpful if you would
like tutorial assistance with this course. Both of these are
allowed sources of help under the noncollaboration agreement, even for
individual projects:
CPE 105X is a support course for 101 students, which meets twice
weekly, and is conducted by a carefully chosen and trained teaching
assistant. Enrollment for this course is available throughout the
add period, and we encourage you to sign up. In some cases, if we
feel it is important to your success (e.g. if you are failing the lab
programming tests), we may even require you to attend a 105 section.
The CSC department also runs a tutoring center. See
http://www.csc.calpoly.edu/resources/tutoring/ We recommend
this center if you are having difficulty in the course.
CPE 108
Some of you may already have prior programming experience. If you
do, we’d like you to take a brief 5 minute test of your programming
background, to see if you might find our CPE 108 course, which combines
101 and 102, a better fit. If you’d like more information
on CPE 108, please Email cstaley@calpoly.edu.