16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Why do you teach the course this way<br />

The material of the course is somewhat constrained by the department’s curricular needs. However, the<br />

arrangement represents my desires.<br />

In interleaving programming and algorithmic content to demonstrate connections between them, I am especially<br />

interested in ways in which programming techniques enhance algorithmic ones: for instance, the use of<br />

memoization to alter a computation’s big-O performance (and the trade-offs in program structure relative to<br />

dynamic programming).<br />

The course is revised every year, based on the previous year’s outcome.<br />

Students consider the course to be extremely challenging, and of course recommend it only for advanced students.<br />

Body of Knowledge coverage<br />

KA Knowledge Unit Topics Covered Hours<br />

AL<br />

Advanced Data Structures, Algorithms,<br />

and Analysis<br />

Balanced trees, graphs, string-based data<br />

structures, amortized analysis<br />

5<br />

PD Parallelism Fundamentals Parallel data structures, map-reduce 1<br />

PL Object-Oriented Programming All 3<br />

PL Functional Programming All 6<br />

PL<br />

Event-Driven and Reactive<br />

Programming<br />

All 2<br />

PL Basic Type Systems All 2<br />

SDF All All 10<br />

SE Software Design Design recipe 3<br />

SE Software Verification Validation Test suites, testing oracles, test-first development 3<br />

- 448 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!