Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Data Structures Instructor: Phil Tayco Class Hours: Mondays, Lecture 6:00pm – 8:25pm and Lab 8:35pm-9:55pm, Room T212 Website: http://randomlyphilled.org/ Email: [email protected] Recommended Text: Data Structures and Algorithms in Java 2nd Edition, Lafore. ISBN: 0672324539 Class Overview This course provides students with a language-independent treatment of topics including computer organization, data formats, recursion, and abstract data types. Data structures to be covered will include abstract data types, arrays, linked lists, stacks, queues, binary trees, heaps, hash tables, balanced trees, priority queues and graphs. Applications of recursion will be discussed in detail. Techniques for sorting and searching will also be presented as well as measuring algorithm performance and data structure efficiency using Big-O notation Prerequisites The prerequisites for this class are either CIS054 (C++ Programming) or CIS84 (Java Programming). You can still take this class if you have not taken these classes if you can demonstrate proficiency in programming fundamentals. As long as you've previously done some programming, you should be fine. Academically, however, you may need to consult with academic counseling to gain approval for registration. Please see me during the break on the first day so I can assess your programming knowledge and we can determine next steps from there for registration. Goals and Objectives At the end of this course, you should be able to able to do/know the following: Demonstrate an understanding of essential data structures including arrays, linked lists, stacks and queues, binary and advanced trees, graphs and hash tables Demonstrate an understanding of well-known algorithms including searches (linear and binary), sorting (selection, insertion, bubble, merge, quick and heap), and recursion (factorial, Fibonacci and Towers of Hanoi) Compare and contrast data structure and algorithm performance using Big-O terminology and evaluate best choices for software problems Apply data structure theory and algorithm development techniques to design programming solutions and consistently measure their effectiveness Explain fundamental and advanced data structure concepts and use this as a foundation for comprehending higher level data analysis Class Format My philosophy is that the best learning for data structures concepts is through discussion and exercise. As such, we will plan to meet each week for a quiz or in class exercise following the lecture. Lectures will be where we spend class time discussing concepts, walking through examples, designing solutions and working out problems. The lab portion is where we will have our quiz/exercise and perhaps have further discussion on topics discussed or work on programming projects. Attendance during the lab after the quiz/exercise is not mandatory. There will be no discussion of additional required material that has not been covered during the lecture. Participation during class time is to your advantage and encouraged. I will do my best to make the discussions by providing a comfortable yet challenging environment. Primary course material is posted on the class web site. All material you are required to understand in this class will be through the site. Supporting material is available in the text and is recommended to review for additional reinforcement of information. Class time is where much learning occurs and is designed to be interactive as you will see in the weeks to come. For participation, all I ask is that you enjoy yourself, think and get involved. Don't be shy. You don't have to worry about asking any questions considered "silly", just throw in your thoughts, even if it is as simple a question as, "I don't understand." Grading Given the grading material, the grade percentages are as follows: In class exercises - 60% 2 programming projects – 20% Final Exam - 20% Extra credit is allowed for the class outside of the normal grading material. This can be requested at any time and can be a research paper based on analysis of a topic or additional programming assignments. The maximum allowed for extra credit is 5% of your grade. This is to emphasize class material and not use extra credit as a factor to "save your grade". Office Hours and Miscellaneous Office hours are 1 hour before class at 5pm by request only. Location is to be determined and will start (and most likely be) in this room. Extra time is by appointment which I am happy to do. However, I am limited in time as I am a fulltime employee. Please let me know in advance if you want to meet outside of office hours and we will find ways to make it work.