Northern Virginia Community College
Annandale Campus

Spring Semester 2012

ITP 136 Programming in C#
Section 001N - 4 Credit Hours
Syllabus

Course Description | Prerequisites | Instructor | Text | Class Hours | Office Hours | Important Dates | Course Objectives | Major Topics
| Grades | Class Schedule | Inclement Weather Policy | Academic Dishonesty | Attendance Policy | Learning And Growth Policy | Emergency Evacuation Procedures |
Fun Policy

Course Description:

Introduces students to the fundamentals of object oriented programming and the implementation of object oriented programs using Microsoft's C#.NET programming language and the .NET Framework.

Prerequisites:

ITP 153 Computer Program Design.

Instructor:
Rick Miller, MS Computer Science
California State University Long Beach
Phone: 703-207-0532
email: rick@warrenworks.com
web site: www.warrenworks.com

Text:

C# For Artists

Rick Miller. C# For Artists: The Art, Philosophy, And Science Of Object-Oriented Programming. Pulp Free Press, ISBN -10: 1-932504-07-9, ISBN-13: 9781932504071

Available in the bookstore or direct from Pulp Free Press

 

 

Class Hours:
Time: Thursday, 6:30pm - 10:20pm
Room: CT - 228
Dates: 12 January 2012 - 3 May 2012

Office Hours:
You can talk to me before, during or after class. You can also call me but I prefer email.

Important Dates To Remember:

Course Objectives:
Upon the completion of this course you will be able to:

 

Major Topics:

Grades:
Your grade for this class will be derived entirely from your performance on the projects. There will be four core projects and they have the weight of exams. They will be challenging.

I have a system of grading projects...and it goes something like this:

Mark
Translation
Roughly Equates To An...

check ++

Outstanding. You've exceeded all my expectations in some, perhaps intangible, way. Maybe it was the way you formatted your code, perhaps something else...in any case, I saw or felt the QWAN (Quality Without A Name) in your assignment and you deserve special recognition for your efforts.

A

check +

As compared to other similar projects yours stood above the rest. You exceeded one or perhaps several of my expectations.

B

check

Good job! You met all minimum project requirements and your program runs flawlessly. This is what I expect of every student.

C

check -

Your program may run but just barely. It suffers from a major or perhaps several minor bugs.

D

check --

Your program does not run, or, worse yet, it runs but you cheated! In either case, you are missing the big picture and need serious remedial help. If you get too many check --'s you should start exploring other areas of study or repeat the couse at a later date.

F

 

Notes:

 

Turn in the following with every project:

- Printout of all source code files
- Source code files on disk or thumb drive
- Executables (.exe) files on disk or thumb drive

Anything you hand in to me must be clearly labled with your name, this includes disks and thumb drives.

I will grade each project according to the following criteria:

  • It MUST execute in such a way that satisfies the minimum project requirements
  • Source code printout must be neatly formatted and readable
  • Submitted project MUST include executable file, source code on disk, and source code printout
  • Each source code file MUST begin with a comment header that clearly identifies ownership

Class Schedule:

Week
Topics Covered
Notes

Week 1

  • Course Introduction & Ice Breaker
  • Review Syllabus
  • Web Site
  • Text review
  • Recommended References
  •  Project organization & formatting
  • Review projects and due dates
  • General discussion of procedural vs. Object-Oriented Programming
  • C# programming in the macro
  • Student Project Management
    • The student as analyst
    • Why being a CS student is so difficult
      • The overwhelming complexity of it all
    • How to start a project
      • OK...you've been handed a project, now what?
      • Where do you start?
    • The many roles you play as a student
      • Requiremets Analyst
      • Designer
      • Implementor
        • Programming
    • Checklist for starting a project
      • Decomposing the project
      • What files do you need?
        • How do you determine?
    • The act of programming
      • Don't start at the computer
      • Set the mood
      • Concept of The Flow
      • Be Creative
      • You're an artist
      • Be Extreme
        • The Programming Cycle
          • Plan
          • Code
          • Test
          • Factor
          • Repeat

     

  • Compiling C# Programs
    • Command Line
    • IDE
  • Week 1: First Class
  • Hour 1:
    • Welcome
    • Icebreaker
    • Syllabus Review
  • Hour 2:
    • C# Overview
    • Creating simple project
      • Hello World Example
    • Setting up your development environment
  • Hour 3:
    • Getting Help
      • Where To Find Resources
        • Warrenworks Website
        • Microsoft Website
  • Hour 4:
    • Roll Call
    • Review Assignment
      • Read Chapters 1-4
      • Access Warrenworks Website
      • Access Microsoft Website

All students send me an email so I can add you to the class email list. I will use the list to notify you of updates to this website and other class business.

 

Project 1: Robot Car - Due Week 6

 

 

 

 

 

 

 

 

Week 2-3

  • Week 2: C# Fundamentals
  • Hour 1:
    • Quick Review
    • Computer Basics
      • How A Computer Works
      • Memory
        • Heap
        • Stack
    • Procedural Vs. Object Oriented Programming
      • Dependency Inversion
      • Liskov Substitution
      • Open-Closed Principle
  • Hour 2:
    • C# Program Structure
      • Create simple program in IDE
      • Compiling A Simple Program from the command line
        • csc
    • Types
      • Value Types
      • C# Type Alias
      • int - System.Int32
      • Enumerations
      • Reference Types
      • Pointer Types
      • Reverence Types vs. Value Types
      • Type copying semantics
    • Control Structures
      • if
      • if/else
      • while
      • do/while
      • switch
      • for
      • foreach
  • Hour 3:
    • Important API Classes
    • Assignment Discussion Robot Car
  • Hour 4:
    • Roll Call Review
 

Week 3-4

  • Week 3: Arrays - Robot Car Detailed Discussion
  • Hour 1:
    • Review
    • Compiling Source Files From Command Line
    • Arrays
  • Hour 2:
    • Enumerations
    • Robot Car Candidate Data Types
    • Menu Display
    • Menu Processing
      • switch Statement
      • Stub Methods
  • Hour 3:
  • Robot Car
  • State Machines
    • Implementing SetSprayerOn() & SetSprayerOff()
  • Hour 4:
    • Roll Review
Week 4: More Robot Car
  • Hour 1:
    • Review
    • Robot Car Move Considerations
    • Processing multi-dimensional arrays
    • Processing movements using switch statement
  • Hour 2:
    • Converting data types
      • System.Convert class
      • String to integer
    • Other helpful .NET packages
  • Hour 3:
    • Student One-on-one time
  • Hour 4:
    • Review Roll

 

Week 5

  • Week 5: Intro to GUI Programming
  • Hour 1:
    • Review
    • Project 2: Photo Database General Discussion
    • Review project 2
  • Hour 2:
    • Simple GUI programming
      • Form class
      • TextBox class
      • Button Class
    • Processing button Click events
      • Button.Click event
      • Writing event handler method
      • Tying event handler method to Button.Click
      • event System.EventHandler
  • Hour 3:
    • Processing Strings
      • Split method
      • foreach keyword
  • Hour 4:
    • Review
    • Roll

 

 

 

Week 6
  • Week 6:
  • Hour 1:
    • Review
    • Creating multi-file projects
    • Compiling multiple source files on command line
  • Hour 2:
    • Properties
      • Read-Only
        • get
      • Write Only
        • set
      • Read-Write
        • get
        • set
  • Hour 3:
    • Project 3 Discussion
    • Separating GUI from Application
    • Registering & Handling Events
  • Hour 4:
    • Review
    • Roll
    • Student one-on-one help

Project 2: GUI Controlled Robot Car

Serialized Object Example Code

Alternative Project 2: Computer Simulator

Week 7

  • Hour 1:
    • Review
    • Handling Events in Separate Classes
    • Last week's problem revisited
    • The solution
  • Hour 2:
    • Stepping through Multi-Class Event Processing A critical skill
    • Delegates
    • Events
    • Registering event processing methods with events
  • Hour 3:
    • Object-Oriented Programming Macro View
    • What set of problems is OO trying to solve
    • Object-Oriented terminology
      • Inheritance
      • Base Class
      • Derived Class
      • Abstract Methods
        • The purpose of abstract methods
      • Interfaces
        • The purpose of interfaces
  • Hour 4:
    • Review
    • Roll

 

 

Week 8

  • Hour 1:
    • Review
    • Delegates
    • Multicast Delegates
      • Only compilers and tool can inherit from MulticastDelegate class
      • A linked list (called invocation list) is used to hold list of delegates.
      • Delegates are called in the order in which they appear.
    • Tracing the Event-Handling Sequence
  • Hour 2:
    • File I/O
      • Text
      • Object Serialization
  • Hour 3:
    • Collections
    • Project 3 Overview
    • Student one-on-one
  • Hour 4:
    • Review
    • Roll

 

 

Creating .Net Code Modules Presentation

Week 9

  • Hour 1:
    • Review
    • Project 3 Detailed Discussion
  • Hour 2:
    • Inheritance
    • Interfaces
  • Hour 3:
    • Project 3 discussion continued
  • Hour 4:
    • Review
    • Roll

Project 3: Robot Controlled Objects

 

 

Week 10

  • Hour 1:
    • Review
    • Project 3 Review (Continued)
  • Hour 2:
    • Obtaining Polymorphic Behavior
    • Specifying behavior in interface
    • Arrays of base class reference types
    • Referring to derived class objects
  • Hour 3:
    • Student One-On-One
  • Hour 4:
    • Review
    • Roll

 

Week 11

  • Hour 1:
    • Review
    • Networking Fundamentals
    • Physical and Logical Application Distribution
  • Hour 2:
    • Networking API Overview
    • Sockets
  • Hour 3:
    • Project 4 Discussion
  • Hour 4:
    • Review
    • Roll

 

 

Week 12

  • Hour 1:
    • Review
    • Project 4 Discussion (Continued)
  • Hour 2:
    • Project 4 Discussion (Continued)
  • Hour 3:
    • Student One-On-One
  • Hour 4:
    • Review
    • Roll

Project 4: Client-Server Robot Car

 

Client-Server Example

Client-Server Example with Graphics

Week 13

  • Hour 1:
    • Review
    • Project 4 Discussion (Continued)
  • Hour 2:
    • Project 4 Discussion (Continued)
  • Hour 3:
    • Student One-On-One
  • Hour 4:
    • Review
    • Roll

 

Week 14

  • Project 4 Discussion (Continued)
  • Student One-On-One

 

Week 15

  • Student One-On-One

Individual help with projects

Week 16

  • All Projects Due

All Projects Due!!!

 

 

 

 

 

 

 

 

 

 

 

Inclement Weather Policy

Check the NOVA website for inclement weather announcements. http://www.nvcc.edu/depts/homepage/closing.htm#faq

Academic Dishonesty:

I expect the work you do in this class to be your own. I encourage the free exchange of ideas between students, however, the work you ultimately hand in to fulfill course requirements must not be simply copied from another student or other sources. It's easy to be honest; here are a few rules to help guide you:

From the NVCC Catalog

When College officials award credit, degrees, and certificates, they must assume the absolute integrity of the work you have done; therefore, it is important that you maintain the highest standard of honor in your scholastic work. The College does not tolerate academic dishonesty. Students who are not honest in their academic work will face disciplinary action along with any grade penalty the instructor imposes. Procedures for disciplinary measures and appeals are outlined in the Student Handbook. In extreme cases, academic dishonesty may result in dismissal from the College. Academic dishonesty, as a general rule, involves one of the following acts:

Attendance Policy:

You should only miss class when you have a genuine emergency. I prefer advance notification via email. It goes without saying that you are responsible for course and assignments due, and for information covered, on the day(s) you miss. If you miss too many classes, and too many is entirely at my discretion, I will have to drop you from the class.

The Attendence Policy from the NVCC Catalog:

"Education is a cooperative endeavor between a student and his or her instructor. Instructors plan a variety of learning activities to help their students master the course content. Your contribution is to participate in these activities within the framework established in the class syllabus. Faculty will identify specific class attendence policies in the class syllabus that is distributed at the beginning of each term. Successful learning requires good communication between students and instructors; therefore, in most cases, regular classroom attendance, or regular participation in the case of a non-traditional course format, is essential.

It is your responsibility to inform your instructor prior to an absense from class if this requested by the instructor in the class syllabus. You are responsible for making up all course work missed during an absence. In the event of unexplained absences, especially if you miss the first three weeks of class, your instructor will withdraw you administratively from the course."

Learning and Growth Policy

“NOVA is a place for learning and growing.  You should feel safe and comfortable anywhere on this campus.  In order to meet this objective, you should: a) let your instructor, his/her supervisor, the Dean of Students or Provost know if any unsafe, unwelcome or uncomfortable situation arises that interferes with the learning process; b) inform the instructor within the first two weeks of classes if you have special needs or a disability that may affect your performance in this course.”

Emergency Evacuation Procedures:

Should the need to evacuate the room in a hurry arise, the procedures to do so are posted in the class. We'll discuss these on the first day and hope we never have to use them!!!

Fun Policy

Most importantly...I want you to enjoy the class. I will learn as much from you as I hope you'll learn from me. To this end, I sincerely appreciate any comments you may have about course content and welcome your suggestions on ways to improve this course for future classes. Welcome to class...have fun!