CS 529: Advanced Algorithms for Scientific Computing

Winter 2013

Meeting Times: Lectures & Labs: M, T, W,  Th,  1:00 pm - 1:50 pm, HB 112 + Lab TBD
Jan. 3 - Mar. 8
Instructor: Jim Schwing
Office: HB 219-C
Phone: 963 - 1432
Web Page:
Office hours: 2:00 pm - 3:00 pm, Mon - Thurs. and by appointment.
Text: Introduction to Algorithms, 3rd Edition,
by Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein.
MIT Press, 2011

Homework and Class Presentations 40%
Programs 30%
Research Paper & Presentation 30%

Grading Scale
95 - 100 A
90 - 94 A -
87 - 89 B +
83 - 86 B
80 - 82 B -
77 - 79 C +
73 - 76 C
70 - 72 C -
60 - 69 D

Learning Outcomes and Course Objectives: This course is a continuation of the previous CS 528 Advanced Data Structures and Algorithms and has the role of  introducing more advanced topics. As part of the first pair of courses in the Computational Science Masterís Program, it will bring students which may come with different computational background to the same basic level. It focuses on the understanding and design of fundamental algorithms, with a more thorough presentation of time and space complexity.

Topics include:

Lecture Resources

Some excellent video lectures following this textbook are available from MIT's Open Courseware, along with assignments, readings, solutions, and so forth. The same videos are also available for download through iTunes University in iPod/iPhone-ready formats. MIT OpenCourseWare (MIT OCW) is an initiative of the Massachusetts Institute of Technology (MIT) to put all of the educational materials from its undergraduate- and graduate-level courses online. The lectures of many courses are available in video format, freely downloadable.

Very interesting are also the MIT Open Courseware on the mathematics of computational science. We are not going to focus on these topics, since they will be subject of other courses.

Final Research Paper
The Final Research Paper should be submitted as a technical report and will presented in class during the final exam period. You are encouraged - though not required - to demonstrate your topic with a program.
The report document should contain: problem description, benchmarking, figures, and discussion. Tables and a list of references are a plus. A prospectus for the paper should be presented in class on Wednesday, Jan. 30. Guidelines for writing such a research paper can be found at
The presentation should be made with 10-15 slides, in about 15 minutes, including questions and answers. Presentation guidelines can be found at
Submit the paper by email.

Honor Code: All work turned in for credit, including exams and all components of the project, are to be the work of the student whose name is on the exam or project. For all project components, the student can receive assistance from individuals other than the instructor only to ascertain the cause of errors. Thus you can get help if you need it to figure out why something doesn't work. You just can't get help from anyone, other than the instructor, to figure out how to make something work. All solutions turned in for credit are to be your individual work and should demonstrate your problem solving skills, not someone else's.

The following text should appear on all assignments:
I pledge that I have neither given nor received help from anyone other than the instructor for all program components included here.

The student should sign his or her name under the pledge. Any deviation from this policy is an honor code violation and will be treated as such if detected. It should be included as a comment in your source code and part of your written report.

Class Attendance: Class attendance is expected.

ADA Statement: Students who have special needs or disabilities that may affect their ability to access information and/or material presented in this course are encouraged to contact me or the Director of Disability Support Services, on campus at 963-2171.

Caveat: The schedule and procedures for this course are subject to change. It is the student's responsibility to learn of and adjust to changes.

Course Schedule




Readings - Item Due


Jan 3

No Class Dr. Schwing sick



Jan 7

Red/Black Trees

Reading: Ch. 13


Jan 8

Red/Black Trees Reading: Ch. 13


Jan 9

B-trees Reading: Ch. 18


Jan 10

Lab Day



Jan 14

B-trees & Multi-threaded Algorithms Reading: Ch. 18 & 27
7 Jan 15 Multi-threaded Algorithms Reading: Ch. 27
8 Jan 16 Multi-threaded Algorithms Reading: Ch. 27
9 Jan 17 Lab Day  


Jan 21

Martin Luther King Jr. Day (no classes)


Jan 22


Reading: Ch. 30


Jan 23


Reading: Ch. 30


Jan 24

Lab  Day  


Jan 28

Matrix Operations Reading: Ch. 28


Jan 29

Matrix Operations Reading: Ch. 28


Jan 30

Linear Programming Reading: Ch. 29
Research Paper Prospectus Due


Jan 31

Lab Day  


Feb 4

Linear Programming Reading: Ch. 29


Feb 5

Linear Programming Reading: Ch. 29


Feb 6

Number-Theoretic Algorithms Reading: Ch. 31


Feb 7

Lab Day  


Feb 11

Number-Theoretic Algorithms Reading: Ch. 31


Feb 12

Number-Theoretic Algorithms Reading: Ch. 31


Feb 13

String Matching Reading: Ch. 32


Feb 14

Lab Day



Feb 18

President's Day (no classes)



Feb 19

String Matching Reading: Ch. 32


Feb 20

Computational Geometry Reading: Ch. 33


Feb 21

Lab Day  


Feb 25

Computational Geometry Reading: Ch. 33


Feb 26

NP-Completeness Reading: Ch. 34


Feb 27

NP-Completeness Reading: Ch. 34


Feb 28

Lab Day  


Mar 4

NP-Completeness Reading: Ch. 34


Mar 5

Approximation Algorithms

Reading: Ch. 35


Mar 6

Approximation Algorithms Reading: Ch. 35


Mar 7

Lab Day



Mar 12

12 noon - 2 pm - TENTATIVE, Check registrar's schedule later in term

Research Paper/Presentation


Last updated: Jan. 4, 2013

JL Schwing
Department of Computer Science

All images and text are ©2013 Central Washington University
This material is subject to copyright and unauthorized use or copying is prohibited.