Windows Presentation Foundation (WPF) in C# Syllabus



Prerequisites:
An intermediate or advanced level of proficiency with the C# programming language and the Microsoft Windows operating systems.
Internet access and an Email account.

Note for Visual Basic.NET Users: You are welcome to submit any assignment for this class using Visual Basic. The tests (True/False, Multiple Choice), however, all assume C#. Also please note that there are very few resources available for learning WPF in Visual Basic. So although we will do everything possible to accommodate the use of Visual Basic, it is advisable for you to learn C# as well.

Instructor:
Calvin P. Schrotenboer
Email: gotdotnet@lycos.com
NOTE: Always put CIS-019M in the Subject Box of your Email.

Weekly Minimum Workload:
Four hours lecture
Four hours lab time

Required Software:
Windows 2000/XP/Vista, Visual Studio 2005
File compression software (i.e., PKZip or WinZip)

Required Textbooks:
Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation, by Charles Petzold, Microsoft Press, First Edition, 2006 ISBN 0735619573

Windows Presentation Foundation Unleashed, by Adam Nathan, Sams, First Edition, 2007 ISBN 0672328917

Optional but strongly recommended: Pro WPF: Windows Presentation Foundation in .NET 3.0, by Matthew MacDonald, Apress, First Edition, 2007 ISBN 1590597826

The Petzold book should be available at the Foothill College Bookstore, Tel: (650) 949-7305.
All three books should also be available at most computer sections of larger book stores or from Amazon.com (Petzold) (Nathan) (MacDonald) , Barnes & Noble(Petzold) (Nathan) (MacDonald) or other on-line booksellers.

Lecture Notes Available From:
Course web site (you will need to be a registered student in the class to get access to a required User ID and password)

Supplies:
A flash drive for saving your work if you plan to do any work in the Foothill computer labs.

Exams:
Three Quizzes, a Midterm and Final Exams covering texts and lectures. All tests will be open book.

Lab:
Internet students will not be expected to come to Foothill College for this course. You are, however, welcome to use the Foothill Computer Center facilities or the tutorial center.

Course Requirements:


Grading:
Your final grade will be determined by performance on the following course requirements using a point system:

A = 90-100, B = 80-89, C = 70-79, D = 60-69

The instructor reserves the right to distribute final grades more favorably to students than the preceding distribution.

Pass/NoPass Option: You are registered for a letter grade unless you complete a Pass/No Pass form with the Registrar by the end of the second week of the quarter. Instructors are not notified that a student has changed to Pass/No Pass status, and must assign a letter grade to all students. With the Pass/Fail option a grade of A, B, or C translates to a Pass grade; a D or F grade results in a No Pass grade.

Drops: It is the responsibility of the student to drop or withdraw from the course if necessary. You should notify the instructor and follow the procedures to drop or withdraw indicated at the Foothill website. Please see the class schedule for more information on drop dates, etc.

Honor Policy: Foothill College expects the highest standards of honesty from all students. Any student who exhibits behavior which, in the judgment of the instructor, indicates dishonesty on an examination or assignment, including those electronically produced, or who aids in the dishonesty of another student, shall receive no credit for that work. Incidents of dishonesty may result in a grade of “F” for the quarter and will be reported to the Dean of Student Affairs. You are expected to work alone for assignments and exams. When in doubt ask the instructor.

Weekly Lectures, Reading Assignments, Lab/Homework and Final Project



Session: 1 (Jan 7)
Topics: Introduction to WPF, Application and Window Objects & Basic Brushes
Reading: Week One Class Lectures & Petzold pp. vii - xi, 3 - 44 (Chapters 1 - 2).

Session: 2 (Jan 14)
Topics: The Concept of Content, Buttons and Other Controls
Reading: Week Two Class Lectures & Petzold pp. 45-88 (Chapters 3-4).

Quiz #1 Jan 18 - 22 (Covers Lessons 1 & 2).

Session: 3 (Jan 21)
Topics: Layout Under WPF
Reading: Week Three Class Lectures & Petzold pp. 89-140 (Chapters 5-7).

Lab/Homework #1 due Jan 28.

Session: 4 (Jan 28)
Topics: Dependency Properties & Routed Input Events
Reading: Week Four Class Lectures & Petzold pp. 141-184 (Chapters 8 - 9).

Quiz #2 due Feb 1 - 5(Covers Lessons 3 & 4).

Session: 5 (Feb 4)
Topics: Listboxes and Menus
Reading: Week Five Class Lectures & Petzold pp. 257-316 (Chapters 13-14).

Session: 6 (Feb 11)
Topics: Toolbars, StatusBars, TreeView & Listview
Reading: Week Six Class Lectures & Petzold pp. 317-374 (Chapters 15-16).

Midterm Exam Feb 15 - 19 (Covers Lessons 1 - 6)

Session: 7 (Feb 18)
Topics: Introduction to XAML
Reading: Week Seven Class Lectures & Petzold pp. 457-522 (Chapters 19-20).

Lab/Homework #2 due Feb 25.

Session: 8 (Feb 25)
Topics: Resources, Windows, Pages & Navigation
Reading: Week Eight Class Lectures & Petzold pp. 523-604 (Chapters 21-22).

Quiz #3 Feb 29 - Mar 4 (Covers Lessons 7 - 8).

Session: 9 (Mar 3)
Topics: Data Binding & Styles
Reading: Week Nine Class Lectures & Petzold pp. 605-662 (Chapters 23-24).

Blogging Assignment #1 due Mar 10.

Session: 10 (Mar 10)
Topics: Templates
Reading: Week Ten Class Lectures & Petzold pp. 663-718 (Chapter 25).

Lab/Homework #3 due Mar 17.

Session: 11 (Mar 17)
Topics: Animation
Reading: Week Eleven Class Lectures & Petzold pp. 859 - 937 (Chapter 30).

*** Reminder - FINAL EXAM, Mar 24 - 27 (Covers the Entire Course) ***