Course
Syllabus
CPE 101: Fundamentals of Computer Science I Fall
2009 - Section 14 |
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. This final will be
common to all sections of CPE 101.
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, usually by prior notice to the instructor.
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. Exams and quizzes are normally
closed book and closed notes.
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.
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:
Midterms and Final Exam
The final exam will be on-paper, cumulative and comprehensive, and will cover material covered in lecture, your text, as well as problems solving and programming skills. The exact time and date will be given in advance. If you have a conflict, you must notify the instructor immediately so that proper arrangements can be made.
The midterms will be broken up into 3 "midterm quizzes" to cover important topics in manageable chunks. You will be given up to 30 minutes to complete each midterm quiz. You must receive a score of 70% or better to pass. They will be given on Mondays:
IMPORTANT:
Lab Programming Tests
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 Quizzes |
0% |
Pass all 3 or fail course |
50 minutes or less |
Three Midterm Quizzes |
10% |
30% |
30 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." Do note that in order to register for CPE 102,
you must pass CPE 101 will a grade of C- or higher. A grade
of D means that you must retake CPE 101 before proceeding to the next
course. Also, keep in mind that the College of Engineering
has instituted strict requirements concerning course repetitions and
continuing in "good standing" - just this year. Pay attention
to these policies, find yourself an advisor and take good care of
yourself in this regard.
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. We recommend
this center highly - you really should go there just to meet the staff
even if you have no trouble at all.
CPE 108
Some of you may already have prior programming experience. If
you
do, 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 immediately.