FUNDAMENTALS OF COMPUTER SCIENCE III
CSc 103 COURSE SYLLABUS FALL 2009
| Instructor: Dr. John Dalbey | Office: 14-203 |
| Phone: 756-2921 | Office Hours: MTuF 1000, W 1400 |
| CSc Dept: 756-2824 | E-mail: |
Introduction to data structures and analysis of algorithms. Abstract
Data Types. Specification and implementation of advanced data
structures. Theoretical and empirical analysis and proofs of properties
of recursive and iterative algorithms. Software performance evaluation
and testing techniques. 3 lectures, 1 laboratory.
Prerequisites:
1) Grade C- or higher in CSC102 - Fundamentals of Computer Science
II.
You are expected to be knowledgeable and experienced in problem
solving and software development using an object-oriented programming
language.
2) Grade C- or higher in CSC141 - Discrete Structures I.
You are expected to know and be able to apply mathematical concepts,
formulas and proof techniques learned in CSC141
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, applying the concepts from
lecture.. At each lab meeting there will
be specific activities to complete.
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.
Homework
There will be homework problems required for each chapter.
Some problems require written solution, and some require computer
solution. Please follow these guidelines
for submitting your homework. 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.
Lab Activities
The purpose of the lab is to implement, test and analyze data
structures and algorithms introduced during the lecture. During the lab
hour you will complete structured hands-on activities
on the
computer.
Some of the labs have a "pre-lab" activity to be completed before
arriving at the lab. 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.
All labs activities are
completed by a team of two, and thus attendance is required during the
lab. Partners will be assigned each week by the instructor. 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 driver is the person
who operates the keyboard.
(Of course the driver may assist in solving the problem). If an
activity requires a solution to be submitted, the team will submit a
single solution with the names of both students.
Each lab team is required to bring a Java reference and the Weiss textbook to each lab activity.
Lab Notebook
Programming Projects
There are several programming projects to be completed during the
course.
The projects are where you will demonstrate your software development
skills and your ability to apply the course concepts.
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 work on the projects
outside of class time. You can use computing facilities of the
university, or you can choose to work at home.
You may choose to work on the projects as a paired
assignment or as an individual assignment. If you choose
to work individually,collaboration of any
kind is not allowed. If you work as a pair, you may
collaborate ONLY with your partner, and you must follow the Pair Programming
Rules and Procedures. In either case, keep track of your time
using a Time Log and follow the Pair Programming Process Script that
will be explained during lab.
You must complete all programming projects or you will receive an
incomplete in the course. (Regardless of what late penalties may
have accrued, you still need to submit a complete and correct solution
before the end of the course).
Exams
There will be a midterm examination and a comprehensive final
examination. The midterm exam has two parts. The
written part (closed book) takes place during lecture hour; the
practical part (on the computer, usually open book) takes place during
the lab hour.
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.
The department has a 1st year cumulative assessment that
takes place
during the last scheduled lab
meeting. This is a test of everything you've learned during the
first year CSc courses. It counts for only a tiny part of your
grade but may help you to identify any areas of weakness you want to
work on.
Extra Credit
There will be specific extra credit
opportunities announced which are optional assignments.
| Percent | |
| Participation |
5 |
| Homework |
6 |
| Lab Activities | 5 |
| Projects | 24 |
| Midterm | 20 |
| Final exam | 40 |
| TOTAL | 100 |
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 308.
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.
Most labs
and projects will be submitted
electronically to an online grading system called Web-CAT. Your
work
will be time stamped automatically when you submit it.
Late projects are subject to a penalty:
| Days Late |
Penalty |
| 1-7 |
33% |
| 8-14 |
66% |
| 15-21 |
100% but still must be completed |
Lab activities submitted late earn no credit.
Makeup exams are available only in the event of an emergency and
only when arrangements have been made with the instructor before the
exam.
Assignments submitted via e-mail receive no credit. The absolute deadline for submitting any course assignments, extra credit, etc. is 3pm of Friday of final exam week.
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)
Most 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. You may consult with other students on the lab activities.COMPUTER POLICIES
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 vogon.calpoly.edu to access
your files. If you do not already have an account, see the instructor.
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 Cal Poly mail account. If you don't use your Cal Poly account regularly, you should set it up 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 : ~graderjd
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.
GETTING ASSISTANCE
Study Groups:
The university organizes study groups for
this course.
Tutoring:
Computer Science department is organizing free tutoring for
CPE101/102/103 courses. Hours and days will be announced around the
second week of the quarter
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."
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."
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:
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. The policy for Fall 2009 is that if a cell phone rings during class, that person is required to bring cookies for everyone at the next class meeting.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.