Presentation on theme: "Introduction to Data Structures"— Presentation transcript:
1 Introduction to Data Structures COM S 228Introduction to Data StructuresInstructor: Ying CaiDepartment of Computer ScienceIowa State UniversityOffice: Atanasoff 201Office Hours: MW 3:00pm-4:00pm
2 Course Resources Course management tool: Blackboard Learn TAs Contact All announcement (e.g., assignments, due dates, and exam location), clarifications and answers to common questions about homework will be made available thereAll programming assignments must be submitted electronically via blackboard learnSo make sure you logon ( and check frequentlyMy slides:TAsShared with Dr. Jia and Dr. Fernández-BacaPlease check the syllabus posted on blackboard for the complete list and their office hours and locationContactIf you need to send an to the instructor or the TAs, please begin the subject line with “CS 228”
3 Text book (optional)We will mainly rely on lecture notes, which we may or may not post on line and/or on timeFor additional material you may look up books such as Simon Gray's Data Structures in Java, Addison-Wesley 2007 (textbook used for Com S 228 in Fall 2011 and Spring 2012).
4 What this course is about Object-Oriented ConceptsSome simple algorithms (e.g., sorting) and their run-time analysisAbstract data typesList, stack, queue, tree, heap, map, graph, etc.)Implementation of ADTGenerics in JavaCollection Interface and Iterators
5 Course Objectives At the end of this course, you are expected to Write and debug well-structured object-oriented programs of 2000 or more lines of Java codeImplement a Java class given a specification, and apply OO principles such as encapsulation and inheritanceUnderstand abstract data types (ADTs) and know common algorithms of manipulating these ADTsImplement basic data structures in Java including expandable arrays, linked lists, trees, heaps, and hashtablesUnderstand some basic algorithms (e.g., sorting and searching) and perform runtime analysis
6 Prerequisite: CS 227The hardest part of this course is to have solid knowledge of what you learned in CS 227No student is allowed to take CS 228 without taking CS 227 first
7 Grading (tentative)PointsGrade>=88A[83, 88)A-[78, 83)B+[70, 78)B[65, 70)B-[60, 65)C+[55, 60)C[50, 55)C-[45, 50)D+[42, 45)D[39, 42)D-<39FItemPointsExam 118Exam 2Exam 330About 5 Homework34Total100This is to give you a rough idea, subject to change ...
8 Homework We expect to give 5 programming projects Clarification thread All will be posted on blackboardThey will be more complex than those from CS 227Due dates may overlapClarification threadThe homework specification may include design issues that require further clarification and it is your job to identify such issues and resolved them, in advance of the deadlineClarification relevant to all students will be posted on Blackboard in the “official clarification”Check BB frequently: All clarifications posted more than 24 hours before the assignment deadline are considered part of the homework specification
9 Homework Grading Compilation and runtime errors Use JDK 1.6 compilerCode must compile; zero otherwiseYou lose additional points for runtime errorsDocumentation and style are importantCount for 10 to 20 percent of each assignmentEach class and method must have a complete and correctly formatted javadoc commentDuplicated code should be removedUse nternal (//-style) comments appropriately (a comment should precede the code it describes and indented to the same level)Use a consistent indentation and formatting style (Eclipse: Ctrl-Shift-F)
10 Submission and feedback Late assignmentsIn generally not accepted, except that programming assignments may be turned in up to 24 hours late with a 25% grading penalty. (weekends and university holidays are counted in the 24 hours)Results will be returned via Blackboard LearnIf you feel an error has been made in grading your assignment, you must make an appeal to the TA that graded it within one week of the date when the results were made available in Blackboard LearnThe appeal should be made during the TA's office hours, or by if you cannot attend the TA's office hoursCorrect submission of an assignment is your responsibilityDetailed instructions will be provided prior to the first due date.
11 Other Policies Academic Honesty Disability Students who plagiarize other work in any part of assignment/tests will receive F as the letter grade for this course, and will be reported to the university.DisabilityIf you have a documented disability and anticipate needing accommodations in this course, please make arrangements to meet with me soon.
12 How to do well in this class Attend all classes and recitationsDo all homework in a timely mannerUse your resources: instructors, TAs, class notesYou have to write and run your own programsAsk questions
13 Mutual Contract Instructor Students I will provide information about programming principles and practices to the best of my knowledgeI will uphold my professional ethicsStudentsI will participate in this course and practice concepts learned through lectures, assignments, and exams to the best of my abilityI will uphold academic honesty, professional ethics and be a good class and world citizen