.NET Programming with C#

Syllabus

Course Description

This course will introduce you to .NET Programming using the C# programming language.  Emphasis will be placed on understanding not only the syntactical features of the language, but how to effectively use the design of the language to develop robust software.  The course assumes at least one year of programming in Java (if yo are fluent in C++ you can probably survive the class as well, but references will be made to Java throughout the quarter).  The course will be programming/project based with a midterm and a final project (quizzes and written homework are possible, but not likely).

An APPROXIMATE sequence of the topics that we will cover this quarter, and their correspondence to the textbook, are listed in the table below.  The list of topics is ambitious, but since you have (at least) a year of programming experience, I am confident we will cover the material below (at the very least).  We have ten weeks to learn a very large platform and language.  Some items will be left to the student -- you will be informed very specifically what these things are.

DISCLAIMER: DEPENDING ON VERSION OF TEXT YOU GET, THE CHAPTERS MAY BE OFF A BIT -- I WILL CLARIFY AS NECESSARY IN CLASS 

Ch. 1 Introduction to .NET:  What it is and why you'd want to use it.
Ch. 2 C# Application Basics: Command line and VS.NET compilation.
Ch. 3 and 4 C# Fundamentals: Basic classes, declarations, conditionals, loops, arrays, strings, enumerations, structures, and
Ch. 5 and 6  OOP in C#: Encapsulation, inheritance, polymorphism,
Ch. 7 Exceptions: Structured exception handling.
Ch. 8 Working with Interfaces: Understanding interface types
Ch. 10 Delegates, Events, and Lambdas: basics of each -- very important for event driven (GUI) programming
Ch. 13 Object Lifetime: Understanding the garbage collector
Ch. 12 LINQ
Ch. 14 Class Libraries: creating and working with .NET assemblies
Appendix A and Ch. 27-30 Windows Forms and WPF: Basic windows programming: forms, component class, control class, control events, menus, status bars, tool bars, interacting with the registry
  Drawing in Windows (GDI+): Paint sessions, the Graphics class, coordinate systems, color, fonts, hit testing.
Ch. 20 Input, Output, and Serialization: System.IO, Directory and File Types, StreamReaders and StreamWriters, working with binary data, configuring objects for serialization
Ch. 9 Collections and Generics: Working with and creating custom generic types.
Ch. 11 Advanced C# 5.0 Features: Indexers, Operator Overloading, Custom Type Conversion, Extension Methods, Anonymous Types, Pointer Types
Ch 17-19 Processes, AppDomains, Contexts, Threading, Type Reflection, Late Binding, Attribute-based programmingAdvanced topics from the text will be discussed as time permits.  We can decide as a class on what to explore if we get to this point.
FINAL PROJECT Due for presentation Tuesday, June 9, 5:30pm

Instructor Information

Instructor Jordan Bondo
Cheney Office CEB 305
Office Hours TTh: 4:30pm, or by appointment
Email rbondo06@ewu.edu
Class home page http://penguin.ewu.edu/cscd371

Required Text

Latest version or two of Andrew Troelsen's C# text from Apress (Pro C# 5.0 and the .NET Framework 4.5)


Grading

PROGRAMS: (including any written homework) will count 45%.  There will  be 4 or 5 "short" programs.
MIDTERM PROJECT: 25%
FINAL PROJECT: 30%
ATTENDANCE: attendance *and* class participation *will* positively affect your grade -- lack of attendance (unless pre-arranged) will earn you little or no favors from the instructor

FINAL NUMERICAL GRADE CALCULATION:

95% and above is a 4.0.  For each percent below 95, drop grade point by 0.1.  Thus 94% is a 3.9, 90% is a 3.5, and so on.

Policies