Programming in C#

News

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

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

Course Notes

The course notes are available in Powerpoint, a 640x480 flash video or a 320x240 podcast.

  1. Overview of the course, the .NET platform and C# (powerpoint)
    1. Read Chapter 1 and skim through Chapter .
    2. Introduction to the Course 2:51 (podcast 320x240)
    3. History of C# and .NET 10:40 (podcast)
    4. CLR, CLI, oh my! 11:49 (podcast)
    5. Assemblies and Manifests 5:47 (podcast)
  2. C# language basics (powerpoint)
    1. Read Chapter 2.
    2. Language Overview & Built-in Types 17:53 (podcast)
    3. Reference and Value Types 17:33 (podcast)
    4. Arrays 5:33 (podcasts) (powerpoint)
    5. Quiz 1
  3. (in-class) Visual Studio 2008
    1. Worksheet for the in-class exercise
    2. Creating a Console project
    3. Using Intellisense effectively
    4. Deleting and adding References
    5. Walk-thru of the IDE windows
    6. Using the debugger
    7. 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.
  4. Creating Types (powerpoint)
    1. Read Chapter 3.
    2. Object-Oriented Design 5:35 (podcast)
    3. Polymorphism and Inheritance 20:52 (podcast) (powerpoint)
    4. Properties 5:45 (podcast) (powerpoint)
    5. Interfaces 8:42 (podcast)
    6. Structs 4:11 (podcast)
    7. Class modifiers 6:59 (podcast)
    8. Fields and Methods 7:06 (podcast)
    9. Constructors 10:16 (podcast)
    10. Operators 6:48 (podcast)
    11. Quiz 2
  5. (in-class) Creating Interfaces and Classes
    1. Creating and using a Class Library (dll) in Visual Studio (Worksheet)
    2. Automatic implementation of Interfaces with Visual Studio
    3. Partial implementation with abstract classes
    4. Organizing your code with #regions
    5. Multiple projects in a Visual Studio Solution file and setting the StartUp project.
    6. Initial work on Programming Assignment 2.
    7. 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.
  6. Creating Types continued
    1. TypeCasting and Collections 8:59 (podcast) (powerpoint)
    2. Generics 32:15 (podcast) (powerpoint)
    3. Quiz 3 (due Feb 4 before class)
  7. (in-class) Continue to work on Programming Assignment 2 and Programming Assignment 3
    1. Help with Programming Assignments 2 and 3 will be provided.
    2. Attendance is not required.
  8. Collections
    1. Read Enumerations and Iterators from Chapter 4
    2. Read Chapter 7
    3. Enumeration 38:17 (podcast) (powerpoint)
    4. Lists, Queues, Stacks, and Sets 9:46 (podcast)
    5. Dictionaries 14:31 (podcast)
    6. Quiz 4 (due Feb 11 before class)
  9. (in-class) Windows Forms (powerpoint)
    1. Create a GUI (worksheet)
    2. Declarative programming using the designer and properties
    3. Work on Programming Assignment 3
  10. Collections continued
    1. Read Equality Comparison in Chapter 6.
    2. Read Chapter 7.
    3. Customizable Collections and Proxies 8:08 (podcast)
    4. Equality 38:20 (podcast) (powerpoint)
    5. Comparisons 3:32 (podcast) (powerpoint)
    6. Quiz 5 (due Feb 18 before class)
  11. (in-class) Windows Forms
    1. Work on Programming Assignment 3
    2. Attendance is not required.
  12. Advanced C#
    1. Read Chapter 5
    2. Plugging in Equality and Comparisons
    3. Delegates 17:46 (podcast) (powerpoint)
    4. The Observer Design Pattern 15:39 (podcast) (powerpoint)
    5. Events 15:17 (podcast) (powerpoint)
    6. Quiz 6 (due Feb 25 before class)
  13. (in-class) Windows Forms
    1. Work on Programming Assignment 3 - due Friday at midnight, Feb. 26, 2009
    2. Attendance is not required.
  14. Misc C# and Visual Studio features (powerpoint)
    1. Read the rest of Chapter 4.
    2. Extension Methods 7:01 (podcast)
    3. Initializers, implicit types and anonymous types 10:00 (podcast)
    4. Anonymous methods 9:16 (podcast)
    5. Lamda Expressions 17:46 (podcast)
    6. Quiz 7 (due March 4 before class)
  15. (in-class) Data Binding in a Windows Form (Worksheet)
    1. Data Binding (powerpoint)
    2. Simple Video Library entry application
    3. BindingList<T>
    4. Binding to enums
    5. Setting the DataSource
    6. Setting the DisplayName
    7. 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.
  16. Attributes and LINQ
    1. Read Chapter 8
    2. Attributes (podcast) (powerpoint)
    3. LINQ 29:39 (podcast) (powerpoint)
    4. Quiz 8 (due March 11th anytime)
  17. (in-class) Final Wrap-up
    1. Complete the on-line Student Evaluation of Teaching (SEI) forms.
    2. Work on Programming Assignment 4 (see 15.vii above).
  18. Extra Credit (in prep for Semester conversion)
    1. 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

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