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

FALL 2009 OFFICE HOURS

Email

csturner@calpoly.edu

Home Page

www.csc.calpoly.edu/~csturner

 

Prerequisites

 

 

Course Objectives

 

 

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.

 

Policies and Advisories

 

1)      This course will have a common final.  This final will be common to all sections of CPE 101.

2)      The College of Engineering requires proof of unusual circumstances to withdraw from a course after the eighth day of the quarter.

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.
    

       * Name games - If you have a spare moment, we recommend you read this, a light guide to name etiquette at the university.


Individual Work and Academic Honesty

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!

 

Email

 

I may send announcements to your Cal Poly email account.  Expect to check this account regularly so that you do not miss an announcement.


Reading and Homework

 

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. 

    Basic Topics List

    We will cover the following basic topics in this course.  The "schedule" is tentative and subject to change and evolution due to interactions, needs of     the class and other imperatives.  The schedule is NOT the final authority on what goes on in class, the instructor's explanation during class is:            
    therefore, take notes and check the accuracy of the schedule regularly.  Check with others if class or lab must be missed, get copies of notes from         those days.

Topics (not necessarily covered in order):

  1. Introduction: what is a computer, what is software, what is computer science (software engineering)?
  2. Input/Output (I/O)
  3. Conditional statements
  4. Loops
  5. Functions
  6. Arrays
  7. Strings
  8. Pointers


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.