FUNDAMENTALS OF COMPUTER SCIENCE

CSc 101 COURSE SYLLABUS    SPRING 2007   

Instructor: Dr. John Dalbey Office: 14-203  
Phone: 756-2921  Office Hours:  M 10:00-12:00pm    W 10:00-12:00 
CSc Dept: 756-2824   E-mailjohn's email address

COURSE 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.

Prerequisites: MATH 118 (or equivalent) with a grad of C- or better, and basic computer literacy (CSC 100 or CSC 232 or equivalent). You do NOT need prior programming experience. Strong quantitative reasoning (e.g. math), good problem solving skills, and experience with computer applications such as e-mail, word processing, and using the Internet and the World Wide Web are appropriate prerequisites.

Knowledge of the C programming language will be expected of you in CSc 102, CSc 357, and CSc 453.

    REQUIRED TEXTBOOK

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

Chapters 1-9,11-13

     CLASS STRUCTURE

The class meets at two different times: lecture and lab. During the lecture component we will meet as a large group to discuss the course concepts. Sometimes we will break into small groups to work exercises. The lab meetings are for hands-on work with the computer. At each lab meeting there will be specific activities to complete.

COURSEWORK

Readings

There will be assigned readings in the textbook and other resources.   The readings are to be completed by the date shown on the calendar.  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.  Here are recommended reading strategies.

Homework

There will be homework problems required for each chapter (except Chapter 1).  Each homework assignment has two parts:

The due dates will be posted on the course calendar.  You will submit your written solutions and computer printouts in class on the due date.  These are individual activites.  It is permissible to ask for assistance from other students if you get stuck. However, each student must solve the problems themselves and turn in their own solutions.

In addition, students will be asked at random to present in front of the class their solutions to homework problems or answer questions from the readings.

Quizzes

Every two weeks or so there will be a short quiz over the readings in the textbook.  The quizzes will be "closed book."  The quizzes are usually, but not always, announced in advance.

Lab Activities

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. The assignments are designed to be completed during the allotted lab time, but 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.  Two students will share a single workstation, and each will be assigned a role, either "driver" or "navigator."  The navigator is the person who leads the problem solving effort.  The navigator has the responsibility of bringing a printout of the posted lab activity to class.  The driver is the person who operates the keyboard.  (Of course the driver may assist in solving the problem).

Lab Notebook

You will maintain a lab notebook according to these directions. The notebook is graded credit/no credit.   However, it must follow the required format, you must have it with you during every lab activity, and it must be kept current.  The penalty for a missing or inadequate notebook is 1% of your course grade.

Lab Quizzes

There will be four 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.  The lab quizzes are in addition to the lecture quizzes. Lab quizzes are closed-note, closed-source, closed-web, but open-book.

Programming Projects

There are four programming projects to be completed during the course. The projects are where you will demonstrate your software development skills. The projects are individual assignments and collaboration of any kind is not allowed. You will be given a software specification and you need to write a design and implement the solution.  You projects will be graded on their functionality as well as design and coding quality.  You must keep track of the time you spend working on the projects using the Time Recording Log Form (Word format).  (You may record your time in your lab notebook if you follow the log format).  After each project you will submit a Productivity Summary Form. The Summary submission is a required course component. You can't receive a grade in the course until they are submitted.

Midterm and Final Examination

There is a midterm examination and a comprehensive final examination.  These exams are written (not practical) exams.  The lecture final is a common final and will be held on Tuesday or Wednesday from 7-10PM of finals week. 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 elegible to take the final.

Extra Credit

There will be specific extra credit opportunities announced which are optional assignments.

     GRADING


# Points Subtotal
Homework
7
1
7
Lab Activities 10 1 10
Projects 4
6
24
Lec Quizzes 4-6 1-2 9
Lab Quizzes 3 5 15
Midterm 1 10 10
Final exam 1 25
25
TOTAL

100
The exact number of homework and lecture quizzes may vary slightly.

Letter Grades are determined on a straight percentage basis, as follows:

    A    90% - 100%,    B    80%-89%,    C     70%-79%,    D     60%-69%,    F    59% and below
 NOTE: You must earn a grade of C- or better to be able to enroll in CSc 102.

ALTERNATE GRADING SCHEMES
If you feel the above grading scheme will not provide the best assessment of your learning in the course, you may negotiate with the instructor for an alternate scheme. You must agree to an alternate scheme before the end of the second week of classes. Similarly students who desire special accomodations for their learning needs must make arrangements before the end of the second week of classes.

Advanced students might consider these accelerated course options.

 

    ADMINISTRATIVE POLICIES

DEADLINES

Due dates for all coursework are shown on the course calendar. Most labs and projects 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.  

If you anticipate illness, other academic burdens, or other emergency will prevent you from submitting your assignment before the deadline, you may request an extension. Send an email message to the instructor by 1 hour before the due time asking for an extension of the due date. You don't need to provide a reason or justification.  (Limit: 2 extensions).   The default extension is 24 hours, but you may ask for more.

Missed quizzes and exams can not be made up.

The absolute deadline for submitting any course assignments, extra credit, etc. is 5pm of Friday of the last week of classes.

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 plagarism 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 Judical 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 be assigned 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.

COMPUTER POLICIES

Students enrolled in this course are entitled to a computer account on the computer science department machine "Hornet". There are numerous software tools available on this system which you might find helpful.  You will be issued an account. Do not share the password or the account will be frozen and you will be failed from the course.

A number of important class documents will be made available in electronic form (e.g. assignments, due dates). They can be accessed via a WWW browser through the link from the instructor's home page. 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.  You may access documents on the course web site only via hyperlinks.  You are not authorized to view other documents that may exist but have no hyperlink to them.

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.

Students are expected to learn and abide by the principles of ethical use of computers as determined by the ACM (Assoc. for Computing Machinery) Code of Ethics and Professional Conduct, the Campus computing and Communication Policies, Calif. state laws (see Penal Code Section 502), and federal laws. 

Grader UNIX account (by section): ~cs101-7

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 user's accounts, regardless of whether the file permissions allow such actions, unless you have been given specific authorization to do so. The instructor hereby grants permission to read any file in the grader account for your section only whose unix file permissions allow public access.

Lab activities 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, jdalbey.


CLASSROOM CLIMATE
It is a core value of academic discourse to be tolerant of views different than our own and to treat others with respect. 

In addition, an atmosphere conducive to learning can be fostered by minimizing distractions for others who are trying to  concentrate.  Common courtesies include:

The use of audio-visual recording devices of any kind (camera, tape recorder, etc) is not allowed without the instructor's permission

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 out of 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 CAPTURE. Withdrawal requires you to document that some desperate situation has arisen after the drop day that you could not have reasonably anticipated.