.NET Programming with C#
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. 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 programming: Advanced 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|
|Cheney Office||CEB 305|
|Office Hours||TTh: 4:30pm, or by appointment|
|firstname.lastname@example.org||Class home page||http://penguin.ewu.edu/cscd371
Latest version or two of Andrew Troelsen's C# text from Apress (Pro C# 5.0 and the .NET Framework 4.5)
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.