COMPE 361
Windows Programming

Catalog Description       

Design and development of computer applications involving Graphical User Interfaces (GUI) and graphics. C# language, the .NET framework, and the Visual Studio Integrated Development Environment (IDE).  Mouse and keyboard programming.  Design of interfaces using GUI components (labels, text boxes, list boxes, dialog boxes, scroll bars, menus, toolbars, status bars, etc.).  Graphics programming: geometric figures; coordinate systems; coordinate transformations; fonts; images.  Timers and animation.  Code generators and visual programming.

Credits: 3

Course Coordinator: Leonard Marino

Class Schedule: 3 hours lecture.

Prerequisite by topic: Fundamentals of object-oriented programming, data structures, and computer organization and operation.

Prerequisite by course: CompE260, CompE271

Course Objectives          

  • Be able to design and develop computer applications involving Graphical User Interfaces and graphics programming.
  • Achieve a deeper understanding of object-oriented programming, including use of class libraries, inheritance and polymorphism.

Topics Covered               

  • Basic Concepts and Perspectives
    • Computing Industry History
    • Command-line interfaces
    • Graphical User Interfaces
    • Event-driven operation
    • Object-Oriented Programming and Class Libraries
    • Static linking
    • Dynamic linking
    • Integrated Development Environments
    • Visual Programming
  • .NET Runtime Environment
    • Intermediate Language (like Java byte code)
    • Just-in-Time compiling
    • Common Language Runtime (like Java virtual machine)
    • Platform independence
    • Language Interoperability
    • Assemblies
    • Garbage collection
    • Exceptions
  • C# language and OOP
    • primitive data types
    • classes and structs
    • reference types and value types
    • properties
    • common root class, Object;
    • ToString and Parse methods
    • rectangular and jagged arrays
    • foreach statement
    • indexers
    • strings
    • inheritance
    • polymorphism
    • virtual functions
    • interfaces
    • abstract classes
    • enumerations
    • reflection
    • delegates
    • exceptions
    • collection classes
    • generics
    • multithreading
  • GUI Programming
    • Console Applications
    • Windows Applications
    • Forms
    • Packaging source code: Solutions and Projects
    • DLL components
    • GUI controls: buttons, textboxes, listboxes, …
    • Mouse events
    • Keyboard events
    • Common Dialogs: Color, OpenFile, …
    • User-defined Dialog boxes
    • User-defined controls
    • Zero-impact installation
    • Debugging tools
  • Graphics Programming
    • Basic structs and classes: Point, Size, Rectangle, …
    • Drawing tools: pens and brushes
    • Graphics class and drawing methods
    • Fonts
    • Paint event
    • Coordinate systems and transformations
    • Timers and animation
    • Bitmaps and images

Textbooks 

Deitel, C# for Programmers 3rd Edition, Prentice Hall, 2008
                                           
References           Nagel, et al, Professional C# 2008, 2008, WROX Press
Petzold, .NET Book Zero: What the C or C++ Programmer Needs to Know about C# and the .NET Framework, Version 1.1, available for free download: http://www.charlespetzold.com/dotnet

Prepared by: Dr. Leonard R. Marino
Date of Preparation: 01/30/2009