M2G605207
Object Oriented Software Development

Announcements:

Announcements for this module will be posted on Blackboard.

Jim Paterson - GCU Modules:M1G483283

  • Lectures
  • Labs
  • Assessment
  • Reading
  • Staff
  • MSDNAA

Click on a title to see the list of topics in that chapter. Use the download links to get lecture handouts in PDF format or lecture slides in PPT format.

1. Introduction to C# and Visual Studio

Download Handouts (PDF format)  Slides (PowerPoint)  

Contents
Module information
What is C#?
The .NET Framework
Visual Studio
Visual Studio projects

2. C# object oriented programming basics

Download Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
What is OO programming?
Objects
Encapsulation and information hiding
Responsibilities and collaboration
Messages
Classes
Relationships

3. Creating C# classes

Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
Code blocks
Namespaces
Instance variables, constants and static variables
Constructors
Methods
Comments
Properties
Selection and iteration
4. C# data types, objects and references

Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
Data types
Variables
Operating memory - stack and heap
Method calls
Object references
Parameter passing
Garbage collection
Value types and reference types
Struct and enum
Creating and compiling C# types
Assemblies
How a C# program runs

5. Interfaces, polymorphism and inheritance


Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
Interfaces
Reference and runtime types
Interface polymorphism
Inheritance
.NET base types
Abstract and sealed classes
Inheritance polymorphism
Casting
Using composition instead of inheritance

6. Arrays and collections


Download
Handouts (PDF format)   Extra notesHandouts (PDF format)   Slides (PowerPoint)  Code (VS2010 C#)

Contents
One-to-many relationships
Arrays
Abstratct data types
List ADT
ArrayList implementation
LinkedList implementation
Choosing a list
Traversing collections and IEnumerable
Stack ADT
Queue ADT
Dictionary ADT
Generics and collections
.NET Framework collection types - List, Dictionary

7. Implementing a model using C#


Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
UML models
Order system example
Class diagram and sequence diagram
Creating C# classes
Implementing relationships
Coding patterns
One-to-one coding pattern
One-to-many coding patterns
Simple association coding pattern

8. Exceptions, testing and debugging


Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
Writing quality software
Runtime errors
Exceptions
Handling exceptions
Throwing exceptions
Custom exception classes
Testing
Unit testing
Debugging

9. Creating GUIs with Windows Presentation Foundation


Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
Graphical user interfaces
WPF and XAML
GUI toolkits and controls
XAML and code-behind files
Using model classes
Layout controls
Binding

10. Persistent storage


Download
Handouts (PDF format)  Slides (PowerPoint)  Code (VS2010 C#)

Contents
Types of persistent storage
Working with files and folders
Reading and writing files
Working with databases
Querying databases
Data binding in WPF

Some notes are in PDF format - you may need Adobe Reader to view and print them. You can download it using the link below:

Get Adobe Reader

Note that lab task sheets can be accessed online during the lab sessions. Lab sheets will be available before the relevant labs if you want to print these out before coming to the lab.

Lab 1: Clock Display
lab task sheet
Code: ClockDisplay.zip
Solutions
Answers to questions
Code: ClockDisplay_solution.zip

Lab 2: Recording Appointments
lab task sheet
Code: OOSD_lab2.zip
Solutions
Answers to questions
Code: OOSD_lab2_solution.zip


Lab 3: Recording Appointments (continued)
lab task sheet
Code: OOSD_lab3.zip
Solutions
Answers to questions
Code: OOSD_lab3_solution.zip


Lab 4: Interfaces and inheritance
lab task sheet
Code: OOSD_lab4.zip
Solutions
Answers to questions
Code: OOSD_lab4_solution.zip


Lab 5: Working with collections
lab task sheet
Code: OOSD_lab5.zip
Solutions
Answers to questions
Code: OOSD_lab5_solution.zip


Lab 6: Library system model
lab task sheet
Code: OOSD_lab6.zip
Solutions
Code: OOSD_lab6_solution.zip


Lab7: Library system application
lab task sheet
Code: OOSD_lab7.zip
Solutions
Code: OOSD_lab7_solution.zip

This module will be assessed as follows:

Exam - 50%

The exam will be a written exam. There will be 5 questions, each worth 25 marks. Students should answer 3 of these questions.

Coursework - 50%

Coursework will consist of a programming assignment. This will be given out in or around week 8.

 

 

 

 

There is no set text for this module, but you may find the following useful:

The following free online book may be useful for additional reading and reference:
C# Yellow Book

MSDN (Microsoft Developer Network) is the definitive resource for reference. Useful starting points:
VIsual C# Developer Center
Visual C# reference
.NET Framework Class Library

Microsoft Beginner Developer Learning Center - tutorials aimed at a range of different levels of expertise

 

Jim Paterson, Room M628, 0141 331 3028, James.Paterson-at-gcu.ac.uk

Iain Lambie, Room M627a, I.Lambie-at-gcu.ac.uk

When sending e-mail please substitute -at- with the usual internet e-mail name/address separator

MSDN Academic Alliance

**NOTE: access to MSDNAA has not been enabled yet - you will be informed when it is avaible to you**

The MSDN Academic Alliance programme allows students to download and use a wide range of Microsoft developer software for educational purposes. The available software includes Visual Studio (inlcuding VS2010), SQL Server, various WIndows operating systems and much more. Note that, while some Office tools are available, the main Office applications (Word, Excel) are not included.

To access MSDNAA software, go to the link below and log in with your university username and password:

http://msdn63.e-academy.com/elms/Storefront/Home.aspx?campus=gcu_itcentre

Software can usually be downloaded as ISO images which can then be burned to CD or DVD.

Help and support is available on the MSDNAA site.