Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.
Our course syllabus can be viewed at www.codeskulptor.org/coursera/algorithmicthinking.html.
Prior mathematical and programming experience at the level of "Principles of Computing" (PoC). Students that have not taken PoC are welcome, but should be comfortable writing intermediate size (300+ line) programs in Python and have a basic understanding of searching, sorting, and recursion. Students should also have a solid math background that includes algebra, pre-calculus and a familiarity with the math concepts covered in PoC. The first week of class will include material designed to help students accurately assess whether they have the necessary background to take this class.
The first part of this course will consist of two two-week modules. Each module is comprised of a set of video lectures along with three assignments. The first assignment, a homework, emphasizes the mathematical portion of the module. The second assignment, a programming project, covers the programming aspects of the module. Finally, the third assignment, a peer assessment, focuses on a practical application that ties the mathematical and programming aspects of the module together.