Syllabus

Goals

Successful course participants will:

Inclusiveness

You should expect and demand to be treated by your classmates and the course staff with respect. You belong here, and we are here to help you learn and enjoy a challenging course. If any incident occurs that challenges this commitment to a supportive and inclusive environment, please let the instructor know so the issue can be addressed.   The Allen School also has a variety of ways to report problems and give feedback you should be aware of and use as needed.

Grading

Late Policy


All homework is due at 5:00pm Pacific Time on the due date. 


You can use up to two late days (48 hours) for each assignment, except the last assignment.  No credit will be granted after two late days. Course staff will not be answering homework questions on the discussion board during the two day period after it is due. They will answer questions during office hours, but if a homework is due on a Friday there will not be office hours during the next two days.


You are strongly advised to turn homework assignments in early to avoid any issues due to emergencies. Do not skip class or section to work on homework — this will cost you time in the long run. 


If unexpected personal circumstances cause you to fall behind more than this lenient late-day policy allows, reach out to the instructor.

Collaboration Policy / Academic Integrity

You are encouraged to discuss the homework assignments with your classmates, but only at a high level. However, the work you submit must be your own:

If there is any chance you have violated any aspect of this policy, you must clearly indicate in your submission what work was not entirely your own. If you do, the worst that will happen is you may lose some points on an assignment. This is much better than the alternative.

Any attempt to misrepresent the work you did will be dealt with via the appropriate University mechanisms following the process described by the College of Engineering. Assignments that the university process concludes were a violation of academic integrity will receive a 0.

Challenge Problems

Attendance

Both lecture and section are designed for synchronous participation, i.e., you should plan to come to class and we expect you to be there.  We will record lecture for your review and in case you need to miss class, and we post all the materials we use in class and section.

As much as synchronous participation is in some ways irreplaceable, you should not come to class if potentially contagious.  

Based on many years of experience teaching this class, you will learn much more and enjoy the course much more if you attend every day and stay up-to-date on the material.  Searching around for the information you need to complete the homework minimally will set you up to do poorly on the exams and, more importantly, miss the opportunity to learn what this course is about -- the material builds a "grand vision" of computer programs; it's not a pile of facts to be searched.  The pacing of 3 meetings per week and how they are schedule with respect to homework due dates is optimal -- catching up is suboptimal.

More Advice

Accommodations

Please refer to university policies regarding disability accommodations or religious accommodations. 

Topics (in rough order and subject to modest change)


To learn these topics using real programming languages and well-suited for them, we will use:


There are thousands of languages not on this list, many programming styles not represented, and many language constructs and concepts that would be great to study, but 10 weeks is short! The languages above will serve as representatives for entire programming styles and paradigms.