CS 5010 is the mandatory introductory course for students in the MS program. The course has two distinct objectives. First, it will ensure that all MS students have the same background in designing programs. This encompasses the entire design cycle, from problem analysis to the development of test suites. Second, the course will also introduce students to programming as a people discipline. Students will work in pairs, present code to panels, and learn to cope with an evolving code base. The course will require a serious commitment to practical hands-on programming from the student. Students report typical time-on-task as upwards of 20 hours per week.
This website is available on github as https://github.com/mwand/cs5010f16. We recommend that you clone it and pull the changes every week.
WHAT YOU NEED TO DO NOW
- Sign into the course at the "I Am Here" form.
- Prepare your laptop
- Start studying the materials for Module 0 and Module 1. We expect you to have studied this material before the first class meeting the week of 9/14.
Be sure to sign into the course at the "I Am Here" form.
This class will use a "flipped-classroom" model, in which online exercises replace most lecture material.here. Windows, Mac, or Linux laptops are all acceptable. PLEASE HAVE THIS ACCOMPLISHED BEFORE THE FIRST LAB MEETING, AND BRING YOUR LAPTOP TO THE LAB. A laptop is not required for the course, but most students use them.
- Most of the online materials will be on this website. We will make efforts to make the materials readable on most modern systems and browsers.
- We will use Piazza as our primary platform for questions, discussions, etc. Please read this discussion about how best to communicate with us.
Syllabus and Problem Sets
Modules run Monday to Sunday. Problem sets are due Monday of the following week. Links to the online materials and the problem set for each module will appear below.
|0||9/5||How to Learn in This Course||No lecture this week; CS 5011 will meet.|
|1||9/12||The Function Design Recipe, Part I||HtDP/2e: Prologue and Part I||Set 01|
|2||9/19||The Function Design Recipe, Part II||HtDP/2e: Prologue and Part I||Set 02|
|3||9/26||The System Design Recipe||HtDP/2e: Prologue and Part I||Set 03||Codewalks replace 5011 from now on|
|4||10/3||Computing with Lists||HtDP/2e: Part II||Set 04|
|5||10/10||Generalizing Similar Functions||HtDP/2e: Part III||Set 05||Monday holiday, but problem set 04 is still due.|
|6||10/17||Trees and Other Branching Structures||HtDP/2e: Part IV||Set 06|
|7||10/24||Generalizing with Contexts and Invariants||HtDP/2e: Part VI||Set 07|
|8||10/31||General Recursion||HtDP/2e: Part V||Set 08|
|9||11/7||Objects, Classes, and Interfaces||No text for remainder of course||Set 09|
|10||11/14||Objects that Communicate via State||No text for remainder of course||Set 10||PS10 due after Thanksgiving|
|11/21||Thanksgiving Vacation, no class or codewalk|
|11||11/28||Sharing Implementation Using Inheritance|| ||Set 11|
|12||12/5||Additional Topics|| || ||final codewalks this week|
There will not be a final exam in this course, but you must appear for the final codewalks, which will be on December 6-9, 2016. Your final codewalk may be as late as Friday, December 9, 2016. Please plan your end-of-year travel accordingly.
Problem Sets 01-05 will be done by each student individually. Problem Sets 06-08 will be done with a partner. Problem Sets 09-11 will be done with a different partner. Partners will be assigned by the course staff.
Details on handing in homework, coding standards, etc., are here
Last modified: Fri Nov 18 16:05:04 Eastern Standard Time 2016