Module Descriptors
CONCURRENT PROGRAMMING IN C#
COSE50280
Key Facts
Faculty of Computing, Engineering and Sciences
Level 5
15 credits
Contact
Leader: John Pratt
Hours of Study
Scheduled Learning and Teaching Activities: 36
Independent Study Hours: 114
Total Learning Hours: 150
Assessment
  • COURSEWORK weighted at 100%
Module Details
Module Indicative Content
Overview - .NET framework, FCL structure, CLR, CIL, namespaces
Programming Concepts - Parameter passing modes, C# classes, modifiers, leightweight classes, enumerated types, get and set properties, generics
Concurrency technology - C# threads, delegates, events, event handlers. Synchronisation primitives: mutex, monitor, send/receive mechanisms.
Graphics technology - C# Forms, Visual Studio. GDI+
Concurrency concepts - Concurrency types. Round Robin Scheduler. Priority. Processes v Threads. Synchronisation. Asynchronicity. Mutual exclusion. Indivisibility. Advantages of concurrency. Standard safety issues, liveness, starvation, race-condition. Classical problems e.g. SEmaphore, Producer / Consumer. Thread-safe concurrent GUIs.
Module Additional Assessment Details
Coursework (100%) assessing Learning Outcomes 1, 2 and 3

The assignment is a concurrent system simulation eg an Airport comprising between 1000-1200 lines of documented C# code.
After the first 3 weeks, students are helped/directed with their design but not numerically assessed. The total time for the programming assignment
is 6 weeks with some of the timetabled practical hours being available during that period for the assignment. After handing in, the code and its embedded documentation will be formally assessed and is worth up to 100%.




Module Learning Strategies
Delivery of the module is as follows: (1:n)1 (1:20)2
1x1 hour lectures per week for the whole group
2x1 hour practical per week in groups of no more than 20 students

The following learning strategies will be applied:
- Keynote lectures introducing the main points for the topics covered
- Student-centred practicals to develop and underpin the main topics
- Web-based online documentation
- Studio-based online documentation
- Formative exercises
Students will also be encouraged to develop their intellectual, analytical, problem solving and application skills.
Module Resources
Students will be provided with a Module Handbook including the descriptor, schedule of delivery and additional reference material to support student-centred study.
Additional case study material and practical workbooks will be provided as and when and appropriate to the schedule.
All lecture notes will be available throughout the running of the course
Access to a PC with both Console Window and Studio versions of C# platform.
Module Special Admissions Requirements
Prior study of CE00312-1 Introduction to C Programming or equivalent.
Module Texts
C# for Programmers, 2nd Edition, Deitel, Deitel (2006), Prentice-Hall, ISBN: 0-13-134591-5
The C# Programming Language, Heilsberg, Wilamuth, Golde (2003), Addison-Wesley, ISBN: 0-321-15491-6
.NET Compact Framework Programming with C#, Yao, Durrant (2003) Addison-Wesley, ISBN: 0-13-032584-8
C# in a Nutshell 2nd Edition, Drayton, Albahari, Neward (2003) Prentice-Hall, ISBN: 0-596-00526-1
Principles of Concurrent and Distributed Programming, Ben-Ari (1990), Prentice-Hall, ISBN: 0-137-11821-X