CSc 301 COURSE SYLLABUS

WINTER QUARTER 2016

Instructor: Dr. John Dalbey Office: 14-203
Phone: 756-2921
SMS to email: (805) 776-3543
Email: john's email address
CSc Dept: 756-2824 Office Hours: MW 1500-1600
Tu 1600-1700  Th 1400-1500

REQUIRED TEXTBOOKS

Humphrey, Watts.  PSP A Self-Improvement Process for Software Engineers. Available at El Corral Bookstore.

Any Java reference book such as Core Java or The Java Programming Language. Your CSc 102 text is probably adequate.

REQUIRED COURSE MATERIALS
A 3-ring binder (1.5") for lab and project work.  (Customizable cover page).  A paper hole punch.  Divider tabs. College ruled binder paper. A stapler. A four-function calculator for exams.
(Optional) Composition book for journal.

Course Goals
To meet the Computer Science Program Objectives.
To be able to follow a defined programming process for individual software development.
To be able to collect and analyze quantitative data about one's personal practices and interpret them to design improvement plans.
To be able to assess  improvement in one's programming skill based on empirical evidence.
To be able to customize and refine one's programming practices on the basis of concrete data.
To be able to create a formal process definition for a variety of software development activities.
To be empowered as a professional to apply process improvement techniques from having seen measurable results in one's own work.

COURSE OVERVIEW

REQUIRED COURSEWORK

READINGS
We will be assigned readings from the PSP textbook as well as supplemental readings from current articles.  The class calendar will be updated regularly with due dates for readings and homework assignments. The readings and homework are DUE on the day shown on the schedule.

HOMEWORK AND QUIZZES
There will be occasional written homework assignments. Your work must be typewritten unless otherwise noted (refer to these guidelines). There will be a small number of quizzes about the reading assignments and lecture topics. Some will be announced in advance, and some will be unannounced ("surprise"). There will be occasional in-class activities which will count the same as a homework.

LABORATORY ACTIVITIES
During the designated lab time there will be structured activities to complete. Students will work in individually.  Attendance is mandatory.  You must use the lab workstations, not a personal notebook computer.  Plan to spend the entire hour in lab. Lab activities are graded credit/no credit. 

WRITTEN EXAMINATIONS
There will be a midterm and a final written examination. The exams will assess your understanding of the principles and concepts from the lecture and your skills at using the process definitions learning in lab.

PROJECTS
There will be programming project assignments for you to use to practice using the process scripts and tracking your work. 
Project are graded credit/no credit. Projects that don't pass acceptance testing within specified number of attempts earn half-credit. Regardless of whether a project earns credit, it must be completed and the PSP data submitted before the end of the course in order to receive a grade.

JOURNAL (Optional)
The workload in this class is relatively light so that you will have time to reflect on its meaning for you and how you can apply it to become a better professional and a better person in general.  To that end you will maintain a journal of your reflections on the course.  Follow the journal guidelinesIf you absolutely can't stand to write you may arrange to have oral conferences with the instuctor as an alternative.

GRADING

Course Grade Computation

Percent Course Component
15
Homework and Quizzes
25
Lab Activities (cr/nc)
21
Projects (cr/nc)
4
Self-Improvement Project
9
Final PSP report
10
Midterm exam
20
Final exam


100 TOTAL

Letter grades are assigned on a straight percentage basis: A = 90-100%, B = 80% - 89%, C = 70% - 79%, D = 60% - 69%, F = < 60% . Borderline scores may receive a Plus/Minus grade.

CSc 301  vs  "official" PSP
Reading only 153 pages of 325 pg textbook.
Dalbey's PSP data collection forms are significantly simpler than "official" PSP forms.
Dalbey provides automated data collection support: Compile Logger, Time Logger, LOC counter, and web-based data submittal forms.
CSc 301 programming projects are much more completely specified than PSP projects, resulting in less confusion and wasted work.  They are also more interesting.
50% of the grading scheme is CR/NC.
Why?  Reduce student anxiety about grades so they can focus on how they can apply the course principles in their own lives.

ADMINISTRATIVE POLICIES

ATTENDANCE

Missed lectures and labs can not be "made up."  If you miss lecture, you get a zero for any quiz administered during that time. If you miss a lab, you get a zero for the lab. If you arrive more than five minutes late to lab, you get a zero for the lab.

You may obtain permission to be excused from class for valid academic or medical reasons, but it is your responsibility to secure permission from the instructor BEFORE the day you will be absent. The instructor may request appropriate documentation of your excuse. (Note that job interviews are unexcused absences).

The midterm and final examinations may only be taken during the scheduled exam period.

WRITING REQUIREMENTS and GRADING SYMBOLS
Follow these guidelines for written work.


DEADLINES

Due dates for all coursework are shown on the course calendar. Written homework is due at the exact class start time on the table at the front of the classroom.

If you anticipate illness or other emergency will prevent you from submitting an assignment before the deadline, you may be able to make alternate arrangements for submission by contacting the instructor prior to the due date. 

Notice:

Many labs and projects will be submitted electronically through a procedure called "handin" or Web-CAT. 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.

The absolute deadline for submitting any course-related work is 5pm on Friday of the last week of classes (not exam week).

FOLLOWING DIRECTIONS
The skill of following verbal and written directions is essential for programmers.  Computers are very precise, literal machines, and any deviation from the required operating directions usually results in failure.  Also, programmers need to follow directions provided by customers and other stakeholders regarding the required project specifications.  The instructor regards the directions for assignments as a kind of "specification" and expects students to follow them with the same precision and rigor as they would when communicating with a computer.  Failure to follow any directions provided in the course (including this syllabus) may result in penalties imposed at the discretion of the instructor, up to and include no credit for the assignment.

ACADEMIC INTEGRITY

All the coursework is considered to be individual work. 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. 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 which appear to have been copied from another student, will be considered plagiarized. Similarly, you must explain your homework solutions using your own words, not copying the answers from the textbook. Violations of this policy may result in being failed from the course. See the campus statement on Academic Dishonesty: Cheating and Plagiarism (C.A.M. 684)

PRINTED OUTPUT REQUIREMENTS
Don't use smaller than 12 point font without permission. Source code printouts may be 10 point font but must be monospaced.

PRIVACY POLICY

All files in computer accounts belonging to the instructor and students in this class should be considered private (regardless of the state of the unix file permissions). You may access only those files to which the instructor or account owner has specifically given you verbal or written authorization.

COMPUTER FACILITIES

Students enrolled in this course are entitled to a computer account in the computer science department labs. All the labs share a common file system, and your username, password, and home directory is the same in all labs. From outside the lab you can use secure shell to login to unix1.csc.calpoly.edu to access your files. 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 301 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. 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 Cal Poly Mail account. If you don't use Cal Poly Mail regularly, you should setup your Cal Poly Mail 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.

GETTING ASSISTANCE

Office hours:
One of the great benefits of attending Cal Poly, as opposed to a University of California, is the opportunity to interact directly with your instructors. You are invited to take advantage of this opportunity by visiting the instructor during office hours, even if you are not having difficulties with the course. Of course if you are having difficulties, you should see the instructor as soon as possible. If you need help with any form of programming activity, you should bring a current hardcopy of your source code. If schedule office hours are not convenient for you, other times can be reserved by arrangement.

Email:
The instructor will read his email daily (except weekends) and email is a good vehicle for certain kinds of communications. Use e-mail to report errors on the class web site, to report problems in your electronic submission, to clarify assignment requirements, to reserve an appointment, to ask concise technical questions, or to ask short questions that can be responded to with a short answer (a sentence or two). Complex questions or abstract questions are best dealt with in person. Many programming problems, including debugging, are best handled during office hours. It is probably not the best use of email to send your entire program and say "I can't figure out what's wrong."

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:

As a professional-in-training you should be mindful of your speech in class and labs.  Refrain from slang or profanity that would not be appropriate in a professional setting.

HOW TO ADDRESS THE INSTRUCTOR

Frequently I've heard students address me and other professors by last name without honorific.  They do this completely unselfconsciously even  when they aren't that comfortable with first name address.  (e.g. students will call me "Dalbey", not "Mr. Dalbey" or "Dr. Dalbey" when they would never  call me "John." ).

In "my generation", no-honorific last-name address is permitted only between people of common age and gender, between close friends or within a military or athletic context.  Buddies in college would call me "Dalbey", and fellow athletes would call me "Dalbey".  But that's it.  It's very analagous to "du" address in German, or second-person address in Latin languages.  Being addressed as "Dalbey" by students feels rude to me. My preferred form of address is "Mr. Dalbey.

CELL PHONES AND PAGERS

Cell phones present an annoying disruption in class and a distraction from course activities. You may not talk on a cell phone in the classroom or lab room for any reason.  Once you enter the classroom or lab, put your cell phone away where it is out of sight. You may not use a cell phone in the instructor's office.

RECORDING DEVICES

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

DROP/WITHDRAWAL POLICY

You may use CAPTURE to drop this course any time during the first two weeks 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 "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.

PENALTIES

Tardiness - Inform the instructor in advance if something will prevent you from arriving to class on time. You are allowed one unexcused tardy without penalty.  After that there is an increasing 1% grade penalty for each tardy.   Note: there is no penalty for being absent from lecture.  If you are tardy AND you walk in front of the class you have to bring cookies for everyone at the next class meeting.


The instructor has made every effort to eliminate errors in this document. If there are ambiguities, omissions, or mistakes, it is the student's responsibility to inform the instructor as soon as they are discovered.

Document History
Date Author Change
1/3/2016
JD
Updated for Wtr 2016
3/20/2011 JD Updated for Spring 2011
3/28/2010 JD Document Released