CS2223. Introduction To Algorithms
Class Meetings
Term: D-2017
Room: PH-LWR (Fuller Labs)
Date/Time: Monday, Tuesday, Thursday, and Friday, 2:00pm - 2:50pm.
Instructor/Office Hours
Prof.
Mohamed Eltabakh, FL-235, meltabakh@cs.wpi.edu
Office Hours: Monday, Tuesday 12:00pm - 1:00pm
Friday 3:00pm-4:00pm
TAs/Office Hours
Dongqing Xiao (dxiao@wpi.edu), Dongsheng Wang (dwang3@wpi.edu)
TA Office Hours (in FL- A22):
Monday & Tuesday: 3:00 - 4:30pm
Wed. & Thursday: 12:30
- 2:00pm
Regarding when and by what means to approach the instructor or TAs with
questions outside of class, please keep in mind the following. We are
always willing and eager to answer your questions, and would like you
to master the topics covered in a timely manner. There are different
venues for bringing questions outside the lecture hours:
(a) First we
suggest that you utilize the discussion boards on mywpi - as we will be
monitoring those daily, plus other students could likely benefit from
your questions and our answers. Other students may even be able to
answer your questions.
(b) Second, go to the office hours, as they are
set up solely for this purpose.
(c) Only when the above two means do
not work for you, then feel free to email to the staff of this course
explaining your problem.
Course Highlights (Catalog Info)
-- This course introduces
the student to the design and analysis of computer algorithms and techniques.
-- Four main aspects will be cover in this course, which are:
a) Algorithmic Strategies [Breadth-First Traversal, Depth-First Traversal, Greedy Algorithms, Dynamic Programming, Divide and Conquer].
b) Problem Types [Sorting, Searching, Graph Algorithms, Scheduling and Optimization, String Processing]
c) Data Structures [Arrays, Trees, Queues, Graphs, Strings, Hash Tables]
d) Analysis and Evaluation [Coding and running algorithms, Analytical analysis using big-O notation]
-- Undergraduate credit may not be
earned both for this course and for CS 507.
Coding and Programming Language
-- Students are expected to code
different algorithms during the course. You can pick one of the following programming languages Java, C, C++, Python language [Java is the recommended one].
Course Description
Building
on a fundamental knowledge of data structures, data abstraction
techniques, and mathematical tools, a number of examples of algorithm
design and analysis, worst case and average case, will be developed.
Topics include greedy algorithms, divide-and-conquer, dynamic
programming, heuristics, and probabilistic algorithms. Problems will be
drawn from areas such as sorting, graph theory, and string processing.
The influence of the computational model on algorithm design will be
discussed. Students will be expected to perform analysis on a variety
of algorithms.
Intended audience:
computer science and computer engineering students, and those desiring
a deeper understanding of algorithm design and analysis.
Recommended background: CS 2102 and CS 2022
Course Load & Grading Policy
See the "Assignments" tab at the top of this page.
WPI E-System
This course will use blackboard.wpi.edu. You can use this system for electronic submission of homeworks and/or projects, and for checking your grads.
Discussion Board
Please use the discussion board available at blackboard.wpi.edu. for any course-related posts and discussions.