Download Course Syllabus Word document

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

Java ConcurrentMap wikipedia , lookup

Transcript
CS 222: Data Structures and Algorithms
Lecture: Tuesday, Thursday 12.45-14.30 LH-2
Laboratory: Friday 14.30-16.00 Lab
Lecturer: Edwin Kay
Office: Building 3, FO-04
Email: [email protected], [email protected]
Office Hours: TTh 9.30-10.30. I am readily available at other
times.
Expectations: We will follow the book fairly closely. You
should read assigned readings before class. You should arrive promptly
for class. You should not leave the classroom during the lecture.
AIM: The main goal of this course is to give students the ability to choose the
appropriate data structure and algorithm when solving a programming problem.
COURSE DESCRIPTION:
This course will cover fundamental abstract data types and their implementations
as data structures, such as lists and trees, as well as asymptotic analyses of
algorithms involving these data structures. Students will also learn about
searching (dictionaries, priority queues, and hashing); sorting (internal and
external); graphs and algorithms on graphs (shortest path, minimum spanning
trees); and pattern matching. The main goal of this course is to introduce
students to the basic data structures needed to efficiently implement common
programming problems. Students will also learn to analyze the run-time of the
algorithms that manipulate these data structures.
OBJECTIVES:
At the end of the course the student should be able to:
1. Implement a variety of algorithms in Java.
2. Analyze the complexity of a variety of algorithms.
3. Choose the optimal algorithm for a given problem.
Ashesi Learning Goals addressed in this course
.
Critical Thinking and Quantitative Reasoning: An Ashesi student is able to apply
critical thinking and quantitative reasoning to approach complex problems. Many class
assignments and practicals assigned in this course will require students to implement and
analyse the use of numerous data structures. Further, they will learn to choose the
appropriate data structure for solving a given problem.
Communication: An Ashesi student is an excellent communicator in a variety of forms.
In this course students will be required to provide robust documentation of their code.
Also, they will learn to articulate the reasoning for various choices of data structures, and
they will carefully describe various algorithms.
Curious and Skilled: An Ashesi student is inquisitive and confident, has breadth of
knowledge, and has attained a high level of mastery in their chosen field. In this course
students will master the design, use, and analysis of data structures and algorithms,
essential tools for success in computer science. The students will increase their skill in
using the Java programming language for expressing solutions to software problems.
Technology: An Ashesi student is an effective and flexible user of technology.
In this course the students will diversify their problem solving and programming skills by
mastering a variety of algorithms and data structures.
Lecture Topics
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Linked Lists
Binary Search Trees
Searching
Recursion
Sorting
“Big O” notation
Asymptotic behavior
Hash Tables
Stacks, Queues, and Deques
Heaps
B-trees
Graphs
Evaluation
Attendance……………………………...5%
Practical…………………………………5%
Assignments…………………………..20%
Tests…………………………………...30%
Final Exam…………………………….40%
Notes: (1) There will be two tests, the first on Friday 4 March, the second on Friday 15
April. “Attendance” includes both your presence and your prompt presence. (2) Much of
the time the practical assignments will provide a start on the programming assignments,
although there will be some practical exercises as well.
References: Data Structures and Algorithm Analysis in Java, Second Edition, by Mark
Allen Weiss, 2007, Pearson Addison Wesley, Boston, MA.
The Java API can be accessed at http://download.oracle.com/javase/7/docs/api/. You
can also download the API and the Java SDK 6 from the “Software and Documentation
Folder” of the Data Structures and Algorithms course from last year. I recommend using
Dr. Java for editing your Java programs. Google Dr. Java for a download from Rice
University.
Academic Integrity: See www.lehigh.edu/~ejk0/cheating.html. Replace “Lehigh” with
“Ashesi” and “University Committee on Discipline” with “Ashesi Judicial Committee.”