TAGLIATELA COLLEGE OF ENGINEERING Computer Science CSCI 2226-2 Data Structures and Algorithms Fall 2020 Meeting Times and Location(s): T 7:05-9:45 Credit Hours: 3 Faculty Contact Information: Eugene Lymar Email: ylymar@newhaven.edu Office Hours: N/A COURSE SYLLABUS This syllabus is informational in nature and is not an express or implied contract. It is subject to change due to unforeseen circumstances, as a result of any circumstance outside the University’s control, or as other needs arise. If, in the University’s sole discretion, public health conditions or any other matter affecting the health, safety, upkeep or wellbeing of our campus community or operations requires the University to make any syllabus or course changes or move to remote teaching, alternative assignments may be provided so that the learning objectives for the course, as determined by the University, can still be met. The University does not guarantee that this syllabus will not change, nor does it guarantee specific in-person, oncampus classes, activities, opportunities, or services or any other particular format, timing, or location of education, classes, activities, or services. Course Description: Prerequisite: CSCI 2212; CSCI 1166 is also recommended. The nature and application of the fundamental data structures and algorithms for arrays, growing arrays, lists, stacks, queues, priority queues, trees, and graphs. Algorithms include precedence parsing, heap-based priority queues, quicksort, radixsort, and hashing. Estimation of the time-efficiency of algorithms. Evaluation of the performance of different data structures for typical applications. Students will write and debug several projects in C++. Required Text(s): C++ Plus Data Structures | 6th Edition | Nell Dale | ISBN-13: 978-1284089189 Other (Optional): A Tour of C++ | Bjarne Stroustrup | ISBN-13: 978-0321958310 The Algorithm Design Manual | Steven Skiena | ISBN-13: 978-1849967204 Introduction to Algorithms | CLRS | ISBN-13: 978-0262533058 Course Structure/Course Format/Course Objectives: This class will follow the “reverse classroom” pattern. For most lectures, the recording of the lecture material will be available before the meeting time. It will be your responsibility to watch the recording before the lecture. This does not apply to the first lecture. We will then meet at the normal meeting time to go over the recording and to give you an opportunity to ask questions, and for me to quiz you on the material. 1 Student Learning Outcomes: • • • • • • • • • • Achieve fluency in C++ programming at the intermediate level. Explain what an ADT is and why it is a useful programming concept. Explain the structure and behavior of basic data structures: vectors, linked lists, stacks, queues, trees, search trees, heaps, graphs, and hash-tables. Implement, use and combine data structures and algorithms appropriately in applications. Use structures from the C++ Template Library. Using Big-O principles and notation, analyze and compare different algorithms for space and time efficiency. Relate Big-O principles to the design of programs. Explain the stack implementation of recursion. Write programs that use recursion. Hand simulate the basic search and traversal algorithms: hashing, sequential search, binary search, depth-first and breadth-first search. Hand simulate the basic sorting algorithms: quicksort, mergesort, counting sort, heapsort, insertion sort and characterize their efficiency in Big-O notation. Hand simulate and use several graph algorithms. Course Requirements & Assessment: Please see official University of New Haven Academic Policies located in the links below: Undergraduate Grading System Grading: Grades earned are based on your performance on homework, quizzes, exams and the final exam. Exams 30% Quizzes 10% Programs 35% Final Exam 25% Total** 100% **Final Grades are assigned with the following scale: Typical Undergraduate Scale Typical Graduate Scale Grades Scored Between 97 to 100 94 to Less than 97 90 to Less than 94 87 to Less than 90 84 to Less than 87 80 to Less than 84 77 to Less than 80 74 to Less than 77 70 to Less than 74 67 to Less than 70 63 to Less than 67 60 to Less than 63 Less than 60 Grades Scored Between 97 to 100 94 to Less than 97 90 to Less than 94 87 to Less than 90 84 to Less than 87 80 to Less than 84 77 to Less than 80 74 to Less than 77 70 to Less than 74 Less than 70 Letter Equivalent A+ A AB+ B BC+ C CD+ D DF 2 Letter Equivalent A+ A AB+ B BC+ C CF Expectations: This course will require significant in-class and out-of-class commitment from each student. A student should expect to spend 6 to 9 hours outside of class each week. All of the work I assign will help you master the subject matter; none of it is optional. You should expect to do all the work if you want a high grade. • • • • • Good style, clarity, good use of C++ and adequate testing will be needed for a grade of ‘A+’. A working program that follows instructions and is turned in on time will earn an ‘A’ For homework and programs, is important to follow my instructions because they will guide you through learning the things you need to know. You will need access to a C++ 11 compiler and development environment. If you own a Mac, use XCode. Otherwise, please download the Eclipse CDT package. (If you can configure Visual Studio Code properly, that is an acceptable IDE). In the end, your code MUST run on my system, that is, it must be standard C++-11. Late programs will be accepted but might be downgraded. Assignments must be submitted one at a time with at least a half a week between assignments. If you miss an exam, you MUST contact me within 48 hours to arrange a makeup. There are no makeups once I return the graded papers. Course Outline/Schedule: Please see schedule.pdf Reporting Bias Incidents At the University of New Haven, there is an expectation that all community members are committed to creating and supporting a climate which promotes civility, mutual respect, and open-mindedness. There also exists an understanding that with the freedom of expression comes the responsibility to support community members’ right to live and work in an environment free from harassment and fear. It is expected that all members of the University community will engage in anti-bias behavior and refrain from actions that intimidate, humiliate, or demean persons or groups or that undermine their security or self-esteem. (Reporting Options). University-wide Academic Policies A continually-updated list of University-wide academic policies and descriptions of key university student resources, can be found on Canvas. You can access them by simply clicking on the (?) help button. The University-wide academic policies include (but are not limited to) the University’s attendance policy, procedures for both adding / dropping a course and course withdrawals, an explanation for the sorts of circumstances where incomplete (INC) grades could be considered by the faculty, and the academic integrity policy (among others). Also in this location you will find information regarding the process for reporting bias and topics related to our maintaining a positive learning environment (including, but not limited to, discrimination and sexual misconduct). The list of key university student resources to enable learning include (but are not limited to) the University’s Center for Student Success, Writing Center, Center for Learning Resources, and the Accessibility Resource Center. 3