Download Spring 2017 Syllabus

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.