Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
Domeniul: Informatica
Programul de studii: Modelare si simulare - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID1022	Simulation Languages	

Semester	Hours: C+S+L+P	Category	Status	
2	2+1+0+1	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
POP Horia Florin	Ph.D.	Prof.	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
The students will gain basic concepts of simulation modeling analysis; will learn different specific simulation languages and environments useful in the modeling and simulation of specific problems. The students will be able to: recognize mathematical parameters as if they were physical variables and vice-versa; be able to follow general mathematical concepts of derivation scientific result and possess the mathematical skill to link those concepts; be able to understand the relevance of the mathematical results to real world applications; have the ability to use computational tools for finding graphical, numerical, statistical and analytic solutions to problems; have the ability to use systems simulations appropriate to real world practice; be able to identify input, output, and operating variables as appropriate in various units; be able to identify technical relationships between the input, output and variables and use the relationships to predict mutual changes. 	

IV. Course contents
Part I. Theory of Computer Simluation
1. Introduction to Simulation
. Definition and types of simulation 
. Reasons for simulation
. Simulation applications
. Simulation models
. Validation
. Verification
. Revision
2. Models and Studies
. Overview of simulation
. Purposes and methods of simulation studies
. Methodology of model development 
. Identification of  types of simulation studies
3. Elements of Simulation
. Entities
. Resources
. Other objects and properties of simulated systems 
. Source models
. Queuing systems
. Servers
4. Simulation Software Design
. A short comparative study of the major software methods of setting u simulation models
. Commercial simulation packages
. Commercial simulation languages
. C++ and C# programming
5. Basic Simulation Models
. Use of a commercial simulation package 
. Modeling basic business processes
. Setting simulation goals
. Designing a process model
. Building a simulation
. Analyzing simulation results
. Methodology 
6. Resource Modeling
. Resource handling in a commercial simulation package 
. Resources as simulation components
. Methods of dealing with resource downtime
. Methodology for developing resource models 
Part. II. Simulation using OMNeT++
7. Overview of OMNeT++
. Modeling concepts
. Programming the algorithms
. Using OMNeT++
. Building and running simulations
8. The NED Language
. NED overview
. The import directive
. Channel definitions
. Simple module definitions
. Compound module definitions
. Network definitions
. Expressions
. Parameterized compound modules
. Large networks
. XML binding for NED files
9. Simple Modules
. Simulation concepts
. Packet transmission modeling
. Defining simple module types
. Adding functionality to cSimpleModule
. Finite State Machines in OMNeT++
. Sending and receiving messages
. Accessing module parameters
. Accessing gates and connections
. Walking the module hierarchy
. Direct method calls between modules
. Dynamic module creation
10. Messages
. Messages and packets
. Message definitions
11. The Simulation Library
. Class library conventions
. Logging from modules
. Simulation time conversion
. Generating random 
. Container classes 
. The parameter class: cPar 
. Routing support: cTopology 
. Statistics and distribution estimation 
. Recording simulation results
. Watches and snapshots
. Deriving new classes 
. Object ownership management
12. Building and Running Simulations
. Overview
. Building using Unix and gcc 
. Building using Windows and Microsoft Visual C++
. User interfaces
. The configuration file: omnetpp.ini
. Dynamic NED loading
. Setting module parameters in omnetpp.ini
. Configuring output vectors
. Configuring the random number generators
. Cmdenv: the command-line interface
. Tkenv: the graphical user interface
. Repeating or iterating simulation runs
. Multiple Replications in Parallel 
. Typical issues
13. Analyzing Simulation Results
. Output vectors
. Scalar statistics
. Analysis and visualization tools
14. Parallel Distributed Simulation
. Introduction to Parallel Discrete Event Simulation
. Assessing available parallelism in a simulation model
. Parallel distributed simulation support in OMNeT++
Part III. Other simulation languages and tools
. Process-oriented simulation. The HSL language
. Object-oriented discrete event simulation in C++: C++Sim
. Object-oriented discrete event simulation in Java: JavaSim
. Object-oriented discrete event simulation in Java: DesmoJ	

V. Bibliography
[1] Banks, Carson, Nelson & Nicol, "Discrete Event System Simulation, Prentice Hall, 2001
[2] A. Law & D. Kelton, Simulation Modeling and Analysis, Mc Graw Hill, 3rd ed., 1999.
[3] Raymond P. Jefferis III , Simulation of Business Processes, Widener University, 2006 [4] * * *, OMNeT++, User Manual (electronic format)
[5] D.P. Sanderson, R. Sharma, R. Rozin, S. Treu, The Hierarchical Simulation Language HSL; a Versatile Tool for Process-Oriented Simulation, ACM Transactions on Modeling and Computer Simulation, 1 (2), 1991, 113-153
[6] * * *, Object-oriented discrete event simulation in C++: C++Sim User Guide [7] * * *, Object-oriented discrete event simulation in Java: JavaSim User Guide
[8] * * *,  Desmo-J, A Framework for Discrete-Event Modelling and Simulation, http://asi-www.informatik.uni-hamburg.de/themen/sim/forschung/Simulation/Desmo-J/index.html

VI. Thematic of didactic activities per weeks

VII. Didactic methods used

VIII. Assessment
The activity ends with a written final exam (grade E). The seminar homework on computer simulation will be graded (grade S). Students will prepare a software project that will have to illustrate the use of simulation languages to solve a specific task (grade P). The overall students@ activity during the semester will be also considered (grade A).  The final grade is the weighted mean of the five grades mentioned above. The final grade = 40%E + 30%S + 20%P + 10%A. Successful passing of the exam is conditioned by the final grade that has to be at least 5. 

All university official rules with respect to students@ attendance of academic activities, as well as to cheating and plagiarism, are valid and enforced. Successful passing of the exam is conditioned by grade E to be at least 5.

The webpage of the course is http://www.cs.ubbcluj.ro/~hfpop/ls	

IX. Additional references

	Dean,							Chair head,

	Date,							Course responsible,
								Prof. POP Horia Florin, Ph.D.