CPE 101  Fundamentals of Computer Science



Course Information Grading Labs Programs Exams Policies Resources


Course Information

Instructor

Place and Time

Michael Haungs
email: mhaungs@calpoly.edu
office: 14-226
office hours:
TuTh 3-5pm

Grader: Matthew Schlachtman,
Jennifer Hughes
email: mschlach@calpoly.edu,
jhughes@calpoly.edu
Section 1
Lecture:
13-110
MWF 2:10pm-3:00pm

Lab:
14-301
MWF 3:10pm-4:00pm

Section 5
Lecture:
14-253
MWF 11:10am-12:00pm

Lab:
14-301
MWF 12:10pm-1:00pm

Description

Basic principles of algorithmic problem solving and programming using methods of top-down design, stepwise refinement and procedural abstraction.  Basic control structures, data types, input/output, arrays, and use of library packages.  Introduction to the software development process: design, implementation, testing and documentation.  The syntax and semantics of a modern programming language. Applications to various problems in math, science, engineering and business. Introduction to software development tools: UNIX, editors, and compilers.

Course Schedule

Here is a tentative lecture/reading schedule for the quarter.

Course Structure

The class meets at two different times: lecture and lab. During the lecture component we will meet as a large group to cover course concepts. The lab meetings are for hands-on work with the computer. During lab meetings you will work on your current lab assignment.

Required Textbooks

Hanly & Koffman. Problem Solving and Program Design in C. (4th or 5th edition.)

Recommended Textbooks

Kernighan and Ritchie. The C Programming Language.

Glass and Ables. UNIX for Programmers and Users. 3rd Edition (Chapter 2)

Prerequisites

Blackboard


Grading

Grading Distribution (approximately)

Lab Assignments 10%
Lab Quizzes 15%
Programs 20%
Midterm I 15%
Midterm II 15%
Final 25%
Total 100%

Grading Policy

Letter grades for the course will be assigned according to the following schedule:  100%-90% A, 89%-80% B, 79%-70% C, 69%-60% D, 59%-0% F.

NOTE: You must earn a grade of C- or better to be able to enroll in CSC 102.

Deadlines

Due dates for all coursework are shown on the assignment. Most labs and programs will be submitted electronically through a procedure called "handin." Your work will be time-stamped automatically when you submit it. Work which is received late, even by one second, receives no credit. Do NOT submit your assignments via e-mail.

Missed quizzes and exams can not be made up.

Regrades

Regrades must be submitted within one week after the grades have been posted.

Academic Integrity

This course involves both individual work and collaborative work. It is your responsibility to understand the guidelines that apply to each kind of work and to be clear about which assignments are individual assignments and which are collaborative.

Activities not designated as cooperative assignments in this course are to be done individually. Individual work is to be carried out entirely and solely by an individual. You may not "work together" on individual assignments. The content of the assignment is not to be discussed or shared in any way with other students.  There is to be no conversation about individual assignments except with the instructor or a department-designated tutor.  This policy will be rigorously enforced. 

Programs will be checked for plagiarism using both computer and human similarity checkers

Take extreme precautions that your individual work is not viewed by other students.  This includes deleting all your computer files from public workstations when you are finished, retaining private permissions on your Unix files, destroying printouts of source code, and not letting other students use your personal computer where you store your coursework.

In addition, the work you submit must be entirely your original creation. Using solutions from any other source is forbidden; in particular, using solutions (either instructors' or other students') from previous offerings of this or other courses is not allowed. Using solutions found on the Internet or getting help from online forums is not allowed.

Assignments which appear to be the result of a "group effort", or appear to have been copied from another student, will be considered plagiarized. Violations of this policy may result in being failed from the course and a letter placed in your record at the Office of Judicial Affairs.. See the campus statement on Academic Dishonesty: Cheating and Plagiarism (C.A.M. 684)

Certain laboratory activities will be designated as team activities.  Students will select a partner to cooperate with to complete the lab activities.  Be sure to use these cooperative activities as a chance to master the skills, as there will be quizzes in which each person must perform the skills individually.

I will report all suspected incidents of academic dishonesty to Judicial Affairs. If guilty, the student will receive an "F" in the course.


Labs

During the lab hour you will complete structured hands-on activities on the computer.  The lab activities assist you in learning the features of the C programming language and software development environments. Typically, the assignments are designed to be completed in 1 week (3 lab sessions).  You may occasionally find you need more time to complete them, in which case you may finish the activity outside of class time, at home or in some other lab.

With the exception of the first week's lab, all labs are cooperative activities, and thus attendance is required during the lab. You must arrive on time and participate fully in order to receive credit for the lab.  For collaborative lab assignments, two students will share a single workstation.

Lab Assignment Schedule

Assignment Due Points
Lab #1 (html) Jan 11 1%
Lab #2 (html) Jan 18 1%
Lab #3 (html) Jan 25 (changed to Jan 28) 1%
Lab #4 (html) Feb 1 (changed to Feb 4) 1%
Lab #5 (html) Feb 8 1%
Lab #6 (html) Feb 13 1%
Lab #7 (html) Feb 22 (**CANCELLED**) 1%
Lab #8 (html) Feb 29 1% (changed to 2%)
Lab #9 (html) Mar 7 1% (changed to 2%)
Lab #10 (html)

Mar 14 (**CANCELLED**)

1%

Lab Quizzes

There will be 3 lab quizzes. The quiz is an in-class practical hands-on exam administered during lab hour. The quizzes will be similar to the lab activities. You will be required to demonstrate some programming skill on the computer.

Lab Quiz Schedule

Assignment Due Points
Quiz #1 Jan 25 5%
Quiz #2 Feb 18 5%
Quiz #3 Mar 7 (changed to Mar 10) 5%

Programs

There are 5 programming projects to be completed during the course. The programs are where you will demonstrate your software development skills.  You will be given a software specification, and you need to create a design and implement the solution.  Your projects will be graded on their functionality as well as design and coding quality. 

Program Assignment Schedule

Assignment Due Points
Program #1 (html) Jan 18 4%
Program #2 (html) Feb 1 4%
Program #3 (html) Feb 14 4%
Program #4 (html) Feb 29 (Changed to Mar 3) 4%
Program #5 (html) Mar 14 4%


Exams

There are 2 midterm exams and a comprehensive final exam.  These exams are written (not practical) exams.  The final is a common final and will be held on TBD. Note: This is not the official time for the final exam for this class.  You must check your final exam schedule to be sure there are no conflicts.  If your cumulative score in the course before the final exam is so low that earning 100% on the final would not enable you to pass, you are not eligible to take the final.

Exam Schedule

Assignment Due Points
Midterm I Jan 25 15%
Midterm II Feb 18 15%
Final TBD 25%

Policies

Computer Policies

Students enrolled in this course are entitled to a computer account on the computer science department machine "Hornet" (hornet.csc.calpoly.edu). There are numerous software tools available on this system which you might find helpful.

A number of important class documents will be made available in electronic form (e.g. assignments, due dates).  These files should be considered as evolving documents, as they will be refined and updated as the course proceeds. Each document will have a version date so that you can determine if you are reading the most recent version. It is your responsibility to be sure that you are working from the most current document.

Occasionally the instructor will mail announcements to the entire class by using an alias which sends mail to your OracleMail account. If you don't use OracleMail regularly, you should setup your OracleMail account to forward your mail to your regular email account.

Computer Science majors are expected to be proficient with tools of their trade such as e-mail and backups.  Excuses such as "my email account was down" or "my hard drive crashed" are not likely to gain much sympathy.

The instructor will not read email whose "Sender" field is not an actual student name. Don't use nicknames in mail you send to the instructor or it will be returned to you unread.

Grader UNIX account (by section): TBD

This account contains certain documents and sample programs you will need to complete the class assignments. Campus computing policies (as well as state and federal laws) prohibit you from reading files in other users' accounts, regardless of whether the file permissions allow such actions, unless you have been given specific authorization to do so.

Lab assignments and programming projects will be submitted to this account for grading via "handin." To send a message to the instructor, be sure to e-mail it to the instructor's personal account, mhaungs.

Classroom Climate

It is a core value of an academic environment to treat others with respect.  Most importantly, an atmosphere conducive to learning can be fostered by minimizing distractions for others who are trying to concentrate.  Common rules include:

Lab Rules:

Drop/Withdrawal Policy

You may use CPReg to drop this course any time during the first eight days of class. Please carefully evaluate your schedule and determine if you will remain in the class before the end of the add/drop period. After the drop date, the only way to leave the course is called "withdrawing" from the course; this requires a documented "serious and compelling" reason, such as a medical emergency. You may not withdraw simply because you are earning a bad grade or you forgot to drop through CPReg. Withdrawal requires you to document that some desperate situation has arisen after the drop day that you could not have reasonably anticipated.


Resources