CS2223. Introduction To Algorithms

Home Textbooks Assignments Schedule Additional Resources

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.