Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba engleza
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0009	Systems for Design and Implementation	

Semester	Hours: C+S+L	Category	Status	
6	2+0+2		compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
COJOCAR Grigoreta Sofia	PhD	Lect.	Programming  Languages and Methods	*		*	

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
At the completion of this course, the students will be able to:
a) have a systematic knowledge concerning application development methodologies
b) be familiarized with the modern concepts and preoccupations in the field of developing application software
c) know the use of computer-aided software development tools	

IV. Course contents
1. Fundamentals of .NET and C#
- .NET platform: comparison with Java platform
- C# language: comparison with Java language

2. .NET Libraries
- Collections
- IO
- Delegation, events
- Graphical user interfaces

3. Reflection
- Reflection in Java and .NET
- Dynamic loading of Java classes
- .NET late binding and dynamic loading of assemblies
- Applying reflection to: persistence, abstract factory, interface dependencies, and dynamic replacement of interface implementation 

4. Client-Server applications based on TCP communication
- Communication between applications using TCP
- Model client-server applications that use TCP communication
- Creating and starting threads in Java and .NET
- Client applications in Java and C#
- Server applications in Java and C#

5. Remote procedure call based client-server applications
- General model: remote interface, registry (of servicies),communication channel, remote object, skeleton object
- Remote method invocation in Java - java.rmi package
- Remote object on .NET platform - System.Runtime.Remoting

6. Database access components
- .NET tables for data - System.Data
- ResultSets in Java
- Database connections, implementations 

7. Servicies and Relational data sources
- Relational data source
- Relations between relational data sources and servicies
- Data transfer objects between applications

8. Object oriented models and relational databases
- Correspondance between class diagram and relational tables
- Separating bussines model from database using mappers
- Transactions and late loading

9. Application servers
- n-tier systems: client tier -server tier -data tier
- Internal structure of application servers
- Synchronized access of client applications and data consistency

10. XML Processing
- XML language and XML documents
- XML documents type
- Object oriented model for documents (DOM)

11. XML documents applications
- sequenctial parsing of XML documents (SAX) - javax.xml si System.Xml
- DOM implementations - javax.xml si System.Xml
- XML messages for applications communication
- Remote procedure call between applications on different platforms

12. Web applications
- layered systems: browser - web server - application server - database server
- Web server structure 
- Patterns for web applications

V. Bibliography
1. Eckel, B., Thinking in C#, MindView Inc, 2004.
2. Larman, C.: Applying UML and Design Patterns: An Introduction to OO Analysis and Design and Unified Process, Berlin, Prentice Hall, 2002.
3. Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
4. Hohpe, G., Woolf, B., Enterprise integration patterns, Addison-Wesley, 2003.
5. Eckel, B., Thinking in Java, 4th edition, Prentice Hall, 2006.
6. Albahari, J., Albahari, B., C# 3.0 in a Nutshell: A Desktop Quick Reference , O'Reilly, 2007	

VI. Thematic of didactic activities per weeks
Courses:
1.	Fundamentals of .NET and C#
2.-3. .NET Libraries
4. Client-Server applications based on TCP communication
      5. Remote procedure call based client-server applications
      6. Reflection
      7.-8. XML documents and XML processing
      9. Database access components
      10. Servicies and Relational data sources
      11. Object oriented models and relational databases
      12. Application servers and Web applications
Labs:
  Weeks 1-4 Design of a distributed client/server application
  Weeks 5-7 Java implementation
  Weeks 8-10 C# implementation
  Weeks 11-12 Heterogeneous implementation (C# and Java)	

VII. Didactic methods used
Exposition, discussions, case studies, exercises, homework assignments.	

VIII. Assessment
The final assessment method is a practical  exam, consisting in  implementation of mini client-server application.
The final mark  will be obtained as:
A.  Lab activity: 40%
B.  Practical exam: 60%
The requirements can also be found at: //labor/Engleza/An3/sipp.	

IX. Additional references
1. ***, Microsoft Developer Network, Microsoft Inc., http://msdn.microsoft.com/
2. ***, The Java Tutorial, SUN Microsystems, Inc, 2004. http://java.sun.com/docs/books/tutorial/index.html	

	Dean,							Chair head,

	Date,							Course responsible,
	13.03.2009						Lect. COJOCAR Grigoreta Sofia, PhD