FUNDAMENTALS OF COMPUTER SCIENCE III

CSc 103 COURSE SYLLABUS    SPRING 2015 

Instructor: Dr. John Dalbey Office: 14-203  
Phone: 756-2921
SMS to email: (805) 776-3543
Office Hours
CSc Dept: 756-2824   E-mailjohn's email address

Catalog Course Description

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.

Required Textbooks

Data Structures and Problem Solving Using Java by Mark Allen Weiss, fourth edition, Addison Wesley.  Available at University Bookstore.  Only a physical copy of the textbook will be allowed on open book exams.
Your CPE 102 Java textbook, or a Java reference book of your choice.  For example, Big Java, by Horstmann.  You will need a Java reference during each lab meeting.

Required Equipment

Scientific calculator (not a phone). In addition to basic arithmetic and algebraic operations, you will find log to the base two and modulo operators very helpful.
Standard 8.5" by 11" lined writing paper.  Spiral ring paper will not be accepted.

Course Objectives

Major Course Topics

Data Structure principles and Abstract Data Types (ADT)
Collections, Traversing a collection; iterators.
Algorithm performance analysis.
Stacks and stack operations. Queues and queue operations.
Priority queues and their implementation.
Trees, Binary Trees, and related linked structures.
Binary Search Trees and BST operations, AVL trees and AVL Tree operations. Tree traversals.
Hash Tables. Collision resolution strategies in a hash table.
Sets and Maps (including lookup tables).
Recursive algorithms for data structures.
Efficient sorting algorithms and their analysis.
Graphs and graph algorithms.
Object Oriented Design, Implementation, and Testing.

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, applying the concepts from lecture. 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 course 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.

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. Frequently the activities will require more than the allotted lab time and you must finish the activity outside of class time at home or in some other lab. 

Labs are graded credit/no credit.  To receive credit for the lab you must submit a solution before the deadline that

Update 4/15:  The student's lowest lab score will be dropped before computing the grade.

Exams

There will be three midterm examinations and a comprehensive final examination.  The midterm exam is a written exam similar to the lab activities; you are given a programming problem and must create one or more designs to solve it.  You will be permitted to refer to a physical copy of the Weiss textbook during the exam. The midterms will be scheduled at the end of the third, sixth, and ninth weeks.

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

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.

The department has a 1st year cumulative assessment that takes place during the last week of class.  This is a test of everything you've learned during the first year CSc courses.  It counts the same as a lab but may help you to identify any areas of weakness you want to work on.

Extra Credit

Students may complete optional assignments for extra credit.  Occasionally there will be specific extra credit opportunities announced.   In general you may visit the instructor any time to discuss extra credit.

Grading

Component
Percent
Lab Activities 25
Midterms (3)
50
Final exam
25
TOTAL 100

Letter Grades are determined on a straight percentage basis, as follows:
    A   85% - 100%,    B    75%-84%,    C     65%-74%,    D     55%-64%,    F    54% and below
 NOTE: You must earn a grade of C- or better to be able to enroll in CSc 357.
(The instructor may scale these ranges as appropriate). Borderline scores will receive a Plus/Minus grade. 

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 accommodations for their learning needs must make arrangements before the end of the second week of classes.

Administrative Policies

ATTENDANCE

Attendance is not required, but if you plan to attend, arrive on time.

DEADLINES

Lab activities are due at the start of the subsequent lecture meeting.  Late work receives no credit.  To be accepted, the physical printout of the student work must be on the instructor desk prior to the official class start time. 

Each student is allowed one "amnesty" for a late submission.   Write the words: "Late: amnesty, please" at the top of the paper and deliver it by hand to the instructor.

If you anticipate some unexpected circumstances will prevent you from submitting your assignment before the deadline, you may request an extension. Send an email message to the instructor before the due time asking for an extension of the due date.  (Use a subject line of "Extension request".) You don't need to provide a reason or justification.  (Limit: 1 extension)    The default extension is until the next class meeting.

Assignments submitted via e-mail receive no credit unless prior arrangements have been made.  The absolute deadline for submitting any course assignments, extra credit, etc. is 5pm on the last day of class.

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

The lab activities completed in this course are individual assignments.  For the most part you will be submitting computer source code, and related documentation and execution results.   You may discuss the assignment with other students.  You may discuss the algorithms you intend to use in your solution.  You may debate the merits of different data structures with other students.  You may discuss relevant features of the Java language that are used in the solution.  (E.g., "the constructor requires two arguments", or "I made the date field package-private".)

You may not obtain or look at another students source code, tests, or execution results. You may not share these artifacts with other students.  If you are looking at another students computer, and the screen shows their work in progress, you are cheating.  If you permit another student to view your computer display while you are working on an assignment, you are cheating.

It is permitted to obtain assistance from the designated tutors in the CSc tutoring center.

This policy will be rigorously enforced.  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)

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. You are prohibited 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.  You may access only those files to which the instructor or account owner has specifically given you verbal or written authorization.

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. 

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:

DROP/WITHDRAWAL POLICY. You may use PASS 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 PASS. Withdrawal requires you to document that some desperate situation has arisen after the drop day that you could not have reasonably anticipated.