COEN 70 / COEN 70L | Fall 2016
Formal Specification and Advanced Data Structures
Department of Computer Engineering, Santa Clara University, California
Class meeting time: 12:10PM - 1:50PM Tuesday & Thursday | Alameida Hall 103
Dr. Behnam Dezfouli
Email: bdezfouli [AT] scu [DOT] edu
Office: Bannan Engineering, Level 3, Room# 323C
Office Hours: Tuesdays: 3:00PM - 5:00PM | Thursdays: by appointment
Phone (Office): 408.551.1634 (x1634)
Email: jhharder [AT] scu [DOT] edu
Office Hours: Monday 12:00PM – 2:00PM #608B
Data Structures and other Objects using C++, by Michael Main, Walter Savitch, 4th Edition
Data Structures and Algorithm Analysis in C++, by Mark A. Weiss, 4th Edition
• The lectures slides are provided by the instructor (refer to Camino)
Prerequisites: A grade of C- or better in either COEN 12 or CSCI 61 and in either COEN 19 or MATH 51. Co-requisite: COEN 70L
Changes to Syllabus: Any additions or modifications will be posted to Camino.
• 10 points: Attendance
• 90 points: Projects
o 20 points: Commenting and style
o 70 points: Correctness
You can discuss with other groups during the lab hours for debugging assistance. However, all changes to your code must be made by you. You are not allowed to share your solutions with other groups. You are allowed to share code with your group members. If you are aware of students violating this policy, you are encouraged to inform the TA and the professor of the course.
Lab grade does not directly affect the course grade. However, the material covered in the lab is meant to reinforce the material presented in class.
• 20 points: Assignments (see details below)
• 40 points: Midterm Exam (Date: 11/03/2016 - During the class hours [no exception])
• 40 points: Final Exam (Date: 12/6/2016, Tuesday - 1:30PM - 4:30PM Alameda Hall 103)
• 10 extra credit points: Based on class activity (answering questions, giving presentation) (see details below)
Total: 110 points
Assignments: There will be three assignments:
• Assignment 1: 6 points
• Assignment 2: 7 points
• Assignment 3: 7 points
Note: Assignments are to be done individually. Copying someone else's work or sharing solutions is considered as cheating.
No late submission is accepted. It is your responsibility to check each assignment’s due in Camino.
Extra Credit Points: At the end of each class session, you can talk to the professor to claim your extra credit points. For each class session, at most 0.25 points can be claimed if you have actively participated in class discussions. A presentation in the class can result in up to 5 extra credit points, depending on the topic, preparation of slides, quality of presentation, etc. Discuss with the instructor for more information.
Research Opportunity (Optional): If you are interested to work on a research project, discuss with the instructor to find out about possible opportunities. This is considered as a part of your course grade.
• Midterm: The midterm will be a closed-book exam covering all material up to that point in the course.
• Final: The final exam will be a closed-book exam, covering material from the whole quarter, with emphasis on the second half of the course.
Make-up exams: Make-up exams will be offered only if you have valid reasons, provided you have acceptable documentation for missing an exam. Not knowing the correct date, time or location of an exam are not valid reasons for missing an exam.
Re-grading: If you think that your assignment has been mis-graded and deserves a regrading: see the class TA first, and then the instructor, if you are unhappy with the TA's response.
Grades will be based on absolute scores, and there will be no curve.
If the highest achieved final grade is less than ‘A’, then the final grades will be shifted so that the highest grade will be ‘A’.
The outline of this course is as follows:
• The Phases of Software Development
o Specification, Design, and Implementation
o Time Analysis
o Testing and Debugging
• Abstract Data Types and C++ Classes
o Classes and Members
o Using a Namespace, Header File, and Implementation File
o Classes and Parameters
o Operator Overloading
o The Standard Template Library and the Pair Class
• Container Classes
o The Bag Class
o Interactive Test Programs
o The STL Multiset Class and its Iterator
• Pointers and Dynamic Arrays
o Pointers and Dynamic Memory
o Pointers and Arrays as Parameters
o The Bag Class with a Dynamic Array
o Prescription for a Dynamic Class
o The STL String Class
• Linked Lists
o A Fundamental Node Class for Linked Lists
o A Linked-List Toolkit
o The Bag Class with a Linked List
o Dynamic Arrays versus Linked Lists vs. Doubly Linked Lists
o STL Vectors versus STL Lists vs. STL Deques
• Software Development with Templates, Iterators, and The STL
o Template Functions
o Template Classes
o The STL’s Algorithms and Use of Iterators
o The Node Template Class
o An Iterator for Linked Lists
o Linked-List Version of the Bag Template Class with an Iterator
o The STL Stack Class
o Stack Applications
o Implementations of the Stack Class
o More Complex Stack Applications
o The STL Queue
o Queue Applications
o Implementations of the Queue Class
o Implementing the STL Deque Class
o Introduction to Trees
o Tree Representations
o Binary Tree Nodes
o Tree Traversals
o Binary Search Trees
• Balanced Trees
o The STL Priority Queue and Heap Algorithms
o AVL Tree
o Red-Black Tree
o Trees, Logs, and Time Analysis
o The STL Map and Multimap Classes
• Derived Classes and Inheritance
o Derived Classes
o Simulation of an Ecosystem
o Virtual Member Functions and a Game Class
Students shall study:
• The main text book (including “Self-Test Exercises” and the important projects at the end of each chapter)
• The slides provided by the instructor (Note: The slides include extra materials compared to the main text book)
• The lab projects (mostly selected from the end of each book chapter)
Academic Integrity Pledge
The Academic Integrity pledge is an expression of the University’s commitment to fostering an understanding of -- and commitment to -- a culture of integrity at Santa Clara University. The Academic Integrity pledge, which applies to all students, states:
I am committed to being a person of integrity. I pledge, as a member of the Santa Clara University community, to abide by and uphold the standards of academic integrity contained in the Student Conduct Code
Students are expected to uphold the principles of this pledge for all work in this class.
A student who is guilty of a dishonest act in an examination, paper, or other work required for a course, or who assists others in such an act, may, at the discretion of the instructor, receive a grade of “F” for the course. In addition, a student found guilty of a dishonest act may be subject to sanctions, up to and including dismissal from the University, as a result of the student judicial process as described in the Student Handbook. A student who violates copyright laws, including those covering the copying of software programs, or who knowingly alters official academic records from this or any other institution is subject to similar disciplinary action.
If you have a disability for which accommodations may be required in this class, please contact Disabilities Resources, Benson 216, http://www.scu.edu/disabilities as soon as possible to discuss your needs and register for accommodations with the University. If you have already arranged accommodations through Disabilities Resources, please discuss them with me during my office hours. Students who have medical needs related to pregnancy may also be eligible for accommodations.
While I am happy to assist you, I am unable to provide accommodations until I have received verification from Disabilities Resources. The Disabilities Resources office will work with students and faculty to arrange proctored exams for students whose accommodations include double time for exams and/or assisted technology. (Students with approved accommodations of time-and-a-half should talk with me as soon as possible). Disabilities Resources must be contacted in advance to schedule proctored examinations or to arrange other accommodations. The Disabilities Resources office would be grateful for advance notice of at least two weeks. For more information you may contact Disabilities Resources at 408-554-4109.
Accommodations for Pregnancy and Parenting
In alignment with Title IX of the Education Amendments of 1972, and with the California Education Code, Section 66281.7, Santa Clara University provides reasonable accommodations to students who are pregnant, have recently experienced childbirth, and/or have medically related needs. Pregnant and parenting students can often arrange accommodations by working directly with their instructors, supervisors, or departments. Alternatively, a pregnant or parenting student experiencing related medical conditions may request accommodations through Disability Resources.
Discrimination and Sexual Misconduct (Title IX)
Santa Clara University upholds a zero-tolerance policy for discrimination, harassment and sexual misconduct. If you (or someone you know) have experienced discrimination or harassment, including sexual assault, domestic/dating violence, or stalking, I encourage you to tell someone promptly. For more information, please consult the University’s Gender-Based Discrimination and Sexual Misconduct Policy at http://bit.ly/2ce1hBb or contact the University's EEO and Title IX Coordinator, Belinda Guthrie, at 408-554-3043, email@example.com. Reports may be submitted online through https://www.scu.edu/osl/report/ or anonymously through Ethicspoint https://www.scu.edu/hr/quick-links/ethicspoint/
Copyright 2016 - Behnam Dezfouli