Programming in C#
News
- The submit directory for this class (Winter 2011) is c459ae.
- Make sure you put "CSE459" in the Subject line of all of your quizes. This will ensure it gets to the grader.
- The grader has been assigned for this class. See below.
Background
This is a 1 credit course on the C# programming language and can be used to satisfy your 459 requirement.
Description
Elementary language constructs of C#/.NET for students who are well versed in programming.
Level, Credits, Class Time Distribution, Prerequisites
Level |
Credits |
Class Time Distribution |
Prerequisites |
U |
1 |
1 cl |
321 |
Quarters Offered
General Information, Exclusions, Cross-listings, etc.
Intended Learning Outcomes
- Master using basic C# constructs.
- Master using C# delegates and events.
- Be familiar with using language interfaces, and inheritance.
- Be familiar with using .NET collections (sets, lists, dictionaries).
- Be exposed to the Common Language Runtime (CLR), garbage collection, and assemblies.
- Be exposed to exceptions, Windows Forms, .NET Remoting and Serialization.
- Be exposed to C# documentation and community web sites.
Topics (not in order)
Number of Hours |
Topic |
1 |
Overview |
2 |
Classes and objects; garbage collection |
2 |
Extending classes; programming to interfaces |
1 |
Generics; Collections (sets, lists, maps). |
1 |
Iterators; Exceptions |
2 |
Forms (GUI classes) |
1 |
C# documentation and resources |
Grader
The grader for this course is MATHEW OLINGER (olinger.26 -at- buckeyemail.osu.edu)
His office hours are Tuesdays, 10:30 am – 12:00 pm in CL 420.
Texts and Other Course Materials
Development Environment
- We will be using Visual Studio. The Professional version of VS 2008 is installed on all of the CSE lab machines.
- You can download and install VS on your own computers through the MSDNAA (free to CSE students).
- Note: Use the drop-down combo-box to select product. The images are an incomplete set and old.
- You can download and install VS on your own computers from Microsoft's Dreamspark web-site (free to all students).
Course Notes
The course notes are available in Powerpoint, a 640x480 flash video or a 320x240 podcast.
- Overview of the course, the .NET platform and C# (powerpoint)
- Read Chapter 1 and skim through Chapter .
- Introduction to the Course 2:51 (podcast 320x240)
- History of C# and .NET 10:40 (podcast)
- CLR, CLI, oh my! 11:49 (podcast)
- Assemblies and Manifests 5:47 (podcast)
- C# language basics
(powerpoint)
- Read Chapter 2.
- Language Overview & Built-in Types 17:53 (podcast)
- Reference and Value Types 17:33 (podcast)
- Arrays 5:33 (podcasts) (powerpoint)
- Quiz 1
- (in-class) Visual Studio
2008
- Worksheet for the in-class exercise
- Creating a Console project
- Using Intellisense effectively
- Deleting and adding References
- Walk-thru of the IDE windows
- Using the debugger
- Programming Assignment 1: Write a simple program that reads the text from the clipboard and prints out a sorted list of all the unique words or terms (ignoring case). (pdf) Due January 21 at 11:59pm.
- Creating Types (powerpoint)
- Read Chapter 3.
- Object-Oriented Design 5:35 (podcast)
- Polymorphism and Inheritance 20:52 (podcast) (powerpoint)
- Properties 5:45 (podcast) (powerpoint)
- Interfaces 8:42 (podcast)
- Structs 4:11 (podcast)
- Class modifiers 6:59 (podcast)
- Fields and Methods 7:06 (podcast)
- Constructors 10:16 (podcast)
- Operators 6:48 (podcast)
- Quiz 2
- (in-class) Creating Interfaces and Classes
- Creating and using a Class Library (dll) in Visual Studio (Worksheet)
- Automatic implementation of Interfaces with Visual Studio
- Partial implementation with abstract classes
- Organizing your code with #regions
- Multiple projects in a Visual Studio Solution file and setting the StartUp project.
- Initial work on Programming Assignment 2.
- Start work on Programming Assignment 2: Write a class library using polymorphism, abstract base class and interfaces that represents a (rather poor) logical scene graph. Implement the Visitor design pattern and write a console application that creates some scenegraphs and prints them out. (pdf). Due Feb 9 at midnight.
- Creating Types continued
- TypeCasting and Collections 8:59 (podcast) (powerpoint)
- Generics 32:15 (podcast) (powerpoint)
- Quiz 3 (due Feb 4 before class)
- (in-class) Continue to work on Programming Assignment 2 and Programming Assignment 3
- Help with Programming Assignments 2 and 3 will be provided.
- Attendance is not required.
- Collections
- Read Enumerations and Iterators from Chapter 4
- Read Chapter 7
- Enumeration 38:17 (podcast) (powerpoint)
- Lists, Queues, Stacks, and Sets 9:46 (podcast)
- Dictionaries 14:31 (podcast)
- Quiz 4 (due Feb 11 before class)
- (in-class) Windows Forms
(powerpoint)
- Create a GUI (worksheet)
- Declarative programming using the designer and properties
- Work on Programming Assignment 3
- Collections continued
- Read Equality Comparison in Chapter 6.
- Read Chapter 7.
- Customizable Collections and Proxies 8:08 (podcast)
- Equality 38:20 (podcast) (powerpoint)
- Comparisons 3:32 (podcast) (powerpoint)
- Quiz 5 (due Feb 18 before class)
- (in-class) Windows Forms
- Work on Programming Assignment 3
- Attendance is not required.
- Advanced C#
- Read Chapter 5
- Plugging in Equality and Comparisons
- Delegates 17:46 (podcast) (powerpoint)
- The Observer Design Pattern 15:39 (podcast) (powerpoint)
- Events 15:17 (podcast) (powerpoint)
- Quiz 6 (due Feb 25 before class)
- (in-class) Windows Forms
- Work on Programming Assignment 3 - due Friday at midnight, Feb. 26, 2009
- Attendance is not required.
- Misc C# and Visual Studio features (powerpoint)
- Read the rest of Chapter 4.
- Extension Methods 7:01 (podcast)
- Initializers, implicit types and anonymous types 10:00 (podcast)
- Anonymous methods 9:16 (podcast)
- Lamda Expressions 17:46 (podcast)
- Quiz 7 (due March 4 before class)
- (in-class) Data Binding in a Windows Form
(Worksheet)
- Data Binding (powerpoint)
- Simple Video Library entry application
- BindingList<T>
- Binding to enums
- Setting the DataSource
- Setting the DisplayName
- Start work on Programming Assignment 4: Take the ideas from the worksheet and create your own serialized collection. It can be anything except videos. Submit your solution along with an input file you created with your final solution. Due March 13 at midnight.
- Attributes and LINQ
- Read Chapter 8
- Attributes (podcast) (powerpoint)
- LINQ 29:39 (podcast) (powerpoint)
- Quiz 8 (due March 11th anytime)
- (in-class) Final Wrap-up
- Complete the on-line Student Evaluation of Teaching (SEI) forms.
- Work on Programming Assignment 4 (see 15.vii above).
- Extra Credit (in prep for Semester conversion)
- C# 4.0 features
Development Environment
We will be using Visual C# 2008. Students can also use any version of Visual Studio.NET or open source implementations (eg. Mono, Portable.NET). Visual Studio is one of the products Microsoft currently offers free to students on their Dreamspark web site. Microsoft has its own "shared source" version of .NET codenamed Rotor, which builds on Windows (and only Windows in version 2.0), FreeBSD, and Mac OS X. This will expose you to the internals of a fairly full (source code) implementation of the framework, but these versions may not have all the features you need to complete the assignments. If you get strange error messages for simple code, you may be using a version that does not support the particular language feature you are exercising. Visual C# Express 2008 and Visual Studio .NET 2008 are the only versions I know of that support everything we will do. You are welcome to try the new VS 2010 versions and I will hopefully catch up with you as the quarter progresses.
Representative Lab Assignments
- Simple lab involving a few simple classes
- Lab involving interfaces, extending classes
- Lab involving generic collection classes and a GUI.
- Data entry and presentation system
Grades
You must pass all quizes and pass all labs to pass. All due dates are relative. You will have a one-week grace period for all but the last lab. Please feel free to submit early.
Relationship to BS-CSE Program Outcomes/EC 2000 Criterion 3 Outcomes
a |
|
b |
|
c |
** |
d |
|
e |
* |
f |
|
g |
|
h |
|
i |
** |
j |
|
k |
** |
Last modified:
January 18, 2011 8:36 AM