Difference between revisions of "IU:TestPage"

From IU
Jump to navigation Jump to search
Line 1: Line 1:
   
  +
= Simulation modeling of financial and economic systems =
= Mobile Cross-Platform Flutter Developer =
 
* '''Course name''': Mobile Cross-Platform Flutter Developer
+
* '''Course name''': Simulation modeling of financial and economic systems
* '''Code discipline''': R-01
+
* '''Code discipline''': P.1.1 Course Characteristics
 
* '''Subject area''':
 
* '''Subject area''':
   
 
== Short Description ==
 
== Short Description ==
This course covers the following concepts: Basics of mobile development; Fundamentals of Dart programming language; Fundamentals of mobile development with Flutter; Advanced cross-platform development topics.
+
This course covers the following concepts: Introduction to the basic concepts of modeling business processes and queuing systems; Development of skills in building models of queuing systems; Mastering the basic tools of simulation modeling.
   
 
== Prerequisites ==
 
== Prerequisites ==
Line 22: Line 22:
 
! Section !! Topics within the section
 
! Section !! Topics within the section
 
|-
 
|-
  +
| Dynamic systems and discrete-event modeling ||
| Basics of Dart/Flutter development ||
 
  +
# A block method for implementing models of dynamic systems. Modeling of discrete systems.
# Key concepts and syntax of Dart programming language
 
  +
# Application of an event model to control discrete flows. Process approach.
# Working with REST API in a Dart/Flutter app
 
# Deep dive into rendering in Flutter (Widgets, Elements, RenderObjects)
 
# Scrollable lists and grids in Flutter
 
 
|-
 
|-
  +
| Theory and methods of system dynamics ||
| Advanced development ||
 
  +
# Theoretical foundations of system dynamics. Methodology for the development of system dynamic models. Archetypes of system dynamics.
# Usage of Dart/Flutter packages and plugins.
 
  +
# Continuous and discrete modeling. Compressed and real time. The concept of model time.
# Popular packages and plugins from pub.dev that makes development simpler.
 
  +
# The theory of feedbacks and lag dependencies. Implementation of the simulation model in the form of a system of simultaneous equations.
# Understanding of packages/plugins development and publication
 
# Persistence in Flutter, different approaches and libraries
 
# Dart asynchronous programming
 
# Flutter app architectures and state management approaches
 
# Complex animations
 
 
|-
 
|-
| Extra topics ||
+
| Multi-agent systems ||
  +
# The paradigm of agent modeling. Architecture of agent models. The concept of an agent's state map.
# Working with deep links & web URLs
 
  +
# Collective behavior of agents. Interaction of agents with the environment and with each other. Agents in space and in time.
# Different approaches for native platform interoperability
 
# Usage of Firebase tools and services
 
# Types of testing and how to provide high quality for an application
 
# Build artifacts for different platforms and deploy them
 
 
|}
 
|}
 
== Intended Learning Outcomes (ILOs) ==
 
== Intended Learning Outcomes (ILOs) ==
   
 
=== What is the main purpose of this course? ===
 
=== What is the main purpose of this course? ===
  +
The main purpose of this course is the formation of students' complex of theoretical knowledge and methodological foundations in the field of simulation modeling systems, as well as practical skills in the implementation and use of such systems within the framework of financial and economic subject areas
Flutter is a powerful multi-platform framework that allows one to create complex
 
   
 
=== ILOs defined at three levels ===
 
=== ILOs defined at three levels ===
Line 53: Line 44:
 
==== Level 1: What concepts should a student know/remember/explain? ====
 
==== Level 1: What concepts should a student know/remember/explain? ====
 
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to ...
* By the end of the course, the students should be able to ...
+
* explain the purpose of the sections of the conceptual description of the object of study;
  +
* understand the basic classes and principles of building information systems used for the practical implementation of simulation methods;
* Understand core concepts of Dart programming language
 
  +
* understand the basic methods of simulation modeling, including methods of system dynamics, agent modeling, discrete-event modeling, probabilistic modeling;
* Understand asynchronous programming with Dart language
 
  +
* know the stages of planning a simulation experiment;
* Understand core concepts of how Flutter framework works with UI
 
  +
* understand the characteristics of the simulation modeling (SM) systems market and the prospects for the development of SM systems.
* Understand core concepts of how Flutter applications communicate with hosting
 
* platforms, such as iOS, Android, web, desktop
 
* Apply different architecture patterns in Flutter app development
 
* Know how to create production-ready applications using Flutter framework and
 
* provide a great user experience with it
 
* Learn a broad and robust understanding of mobile app development including
 
* some basics of Android and iOS specifics
 
* Create a portfolio-ready project which uses some advanced mobile app
 
* development techniques such as client-server communications, complex animations,
 
* unit- and UI-testing and so on
 
   
 
==== Level 2: What basic practical skills should a student be able to perform? ====
 
==== Level 2: What basic practical skills should a student be able to perform? ====
 
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to ...
  +
* determine the required type of simulation model depending on the task;
* By the end of the course, the students should be able to ...
 
  +
* list and describe methods of calculating the main statistical indicators for evaluating the effectiveness of financial and economic systems;
* Write code using Dart programming language
 
  +
* carry out statistical processing of the initial data for the simulation model;
* Build business-logic with Dart programming language
 
  +
* conduct a simulation experiment and process the results;
* Build applications’ UI with Flutter framework
 
  +
* interpret the results of a simulation experiment.
* Create complex animations using Flutter framework
 
* Test applications with unit, widget and integration tests
 
   
 
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====
 
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====
 
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to ...
  +
* carry out calculations of the main performance indicators for various classes of Markov-type queue models;
* By the end of the course, the students should be able to ...
 
  +
* develop simulation models based on the use of modern simulation methods and integrated with various data sources;
* Combine asynchronous programming with multithreading using Dart programming
 
  +
* solve the problem of choosing the input probability distribution for a specific simulation model;
* language
 
  +
* apply simulation modeling systems to solve forecasting problems, to conduct scenario (situational) modeling and analysis, intelligent data processing;
* Work with platform channels and transmit data between native platform and Flutter
 
  +
* apply simulation modeling systems to search for optimal management solutions, risk impact assessment.
* application
 
* Build modular Flutter dependencies: packages and plugins
 
* Work with Firebase toolchain: Authorization, Storage, Crashlytics etc
 
* Build Flutter applications for different platforms and deploy them via CI/CD tools
 
 
== Grading ==
 
== Grading ==
   
Line 95: Line 73:
 
! Grade !! Range !! Description of performance
 
! Grade !! Range !! Description of performance
 
|-
 
|-
| A. Excellent || 85-100 || -
+
| A. Excellent || 90-100 || -
 
|-
 
|-
| B. Good || 70-84 || -
+
| B. Good || 75-89 || -
 
|-
 
|-
| C. Satisfactory || 55-69 || -
+
| C. Satisfactory || 60-74 || -
 
|-
 
|-
| D. Poor || 0-54 || -
+
| D. Poor || 0-59 || -
 
|}
 
|}
   
Line 110: Line 88:
 
! Activity Type !! Percentage of the overall course grade
 
! Activity Type !! Percentage of the overall course grade
 
|-
 
|-
| Labs/seminar classes || 30
+
| Homework || 50
 
|-
 
|-
  +
| Assessment || 30
| Interim performance assessment || 40
 
 
|-
 
|-
| Exams || 30
+
| Final Exam || 20
 
|}
 
|}
   
Line 123: Line 101:
   
 
=== Open access resources ===
 
=== Open access resources ===
  +
* Bungartz H.-J., Zimmer S., Buchholz M., Pflüger D. Modeling and Simulation, Berlin, Heidelberg: Springer Berlin Heidelberg, 2014.
* https://www.dart.dev
 
  +
* Yoav S., Leyton-Brown K. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, 2009.
* https://www.flutter.dev
 
  +
* Borshchev A., Grigoryev I. The Big Book of Simulation Modeling Multimethod Modeling with AnyLogic 8.
  +
* Bossel H. Modeling and Simulation, Wiesbaden: Vieweg Teubner Verlag, 1994.
  +
* Forrester J.W. World Dynamics, Wright-Allen Press, Inc., 1971.
   
 
=== Closed access resources ===
 
=== Closed access resources ===
Line 139: Line 120:
 
! Learning Activities !! Section 1 !! Section 2 !! Section 3
 
! Learning Activities !! Section 1 !! Section 2 !! Section 3
 
|-
 
|-
| Development of individual parts of
+
| Development of individual parts of software product code || 1 || 1 || 1
software product code || 1 || 1 || 1
 
 
|-
 
|-
 
| Homework and group projects || 1 || 1 || 1
 
| Homework and group projects || 1 || 1 || 1
 
|-
 
|-
| Testing (written or computer based) || 1 || 1 || 1
+
| Reports || 1 || 1 || 1
  +
|-
  +
| Discussions || 1 || 1 || 1
  +
|-
  +
| Testing (written or computer based) || 0 || 0 || 1
 
|}
 
|}
 
== Formative Assessment and Course Activities ==
 
== Formative Assessment and Course Activities ==
Line 151: Line 135:
   
 
==== Section 1 ====
 
==== Section 1 ====
  +
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || What language construction allows us to write interfaces in Dart? || 1
 
|-
 
| Question || What does const keyword mean in Dart? || 1
 
|-
 
| Question || How many threads does Dart application have by default? || 1
 
|-
 
| Question || How do we write asynchronous code in Dart? What are 2 ways of writing it? || 1
 
|-
 
| Question || In what way Flutter supports Composition over Inheritance? || 1
 
|-
 
| Question || What are the generators in Dart? What do yield, sync*, async* keywords mean? || 0
 
|-
 
| Question || What is a Stream in Dart? How many subscribers can it have? Which two main || 0
 
|-
 
| Question || types of streams do we have? || 0
 
|-
 
| Question || What should we use if we want to make two operations in parallel? Do Futures || 0
 
|-
 
| Question || allow us to do so? || 0
 
|-
 
| Question || What is the difference between LocalKeys and GlobalKeys? || 0
 
|-
 
| Question || What is a Widget in Flutter? What are the main types of it we have? || 0
 
|-
 
| Question || Questions for exam preparation within this section || 0
 
|-
 
| Question || What is the difference between var, final and const variables in Dart? || 0
 
|-
 
| Question || What is a Future? How can we work with the result value, encapsulated in it? || 0
 
|-
 
| Question || What is a Sliver? Why may one need to use it? || 0
 
|-
 
| Question || What is an InheritedWidget in Flutter? || 0
 
|-
 
| Question || Why and how do we use Keys in Flutter applications? || 0
 
|}
 
 
==== Section 2 ====
 
==== Section 2 ====
  +
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || What are the ways of implementing routing in Flutter application? || 1
 
|-
 
| Question || What is the difference between package and plugin? || 1
 
|-
 
| Question || How Dart resolves project dependencies? || 1
 
|-
 
| Question || What are the requirements for package publishing? || 1
 
|-
 
| Question || What is SingleTickerProviderStateMixin? || 1
 
|-
 
| Question || What are the types of animations in Flutter? || 0
 
|-
 
| Question || What is an AnimationController? || 0
 
|-
 
| Question || What is Tween? || 0
 
|-
 
| Question || What are key concepts of BLoC architecture? || 0
 
|-
 
| Question || What are key concepts of Redux architecture? || 0
 
|-
 
| Question || Test questions for exam preparation within this section || 0
 
|-
 
| Question || What is the difference between DI and ServiceLocator? || 0
 
|-
 
| Question || What is the Provider library? || 0
 
|-
 
| Question || What is GetIt and Injectable? How are they related? || 0
 
|-
 
| Question || How dart dependencies can be provided? || 0
 
|-
 
| Question || What state management approaches do you know? || 0
 
|}
 
 
==== Section 3 ====
 
==== Section 3 ====
  +
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || What is a deeplink? || 1
 
|-
 
| Question || How does Flutter communicate with native platforms? || 1
 
|-
 
| Question || Can you insert native view inside Flutter widgets? || 1
 
|-
 
| Question || What is MethodChannel and EventChannel? || 1
 
|-
 
| Question || In what thread messages between native side and Flutter are received? || 1
 
|-
 
| Question || What features for mobile applications from Firebase do you know? || 0
 
|-
 
| Question || What is the difference between Firebase Cloud Storage and Firebase Realtime || 0
 
|-
 
| Question || Database? || 0
 
|-
 
| Question || What is Crashlytics? || 0
 
|-
 
| Question || What are the three main steps of each test? || 0
 
|-
 
| Question || What are the types of tests in Flutter? How are they different from each other? || 0
 
|-
 
| Question || Test questions for exam preparation within this section || 0
 
|-
 
| Question || What command is used for building a Flutter application? || 0
 
|-
 
| Question || What types of builds do you know? What is the difference? || 0
 
|-
 
| Question || Why is hot reload possible? || 0
 
|-
 
| Question || What are golden tests? || 0
 
|-
 
| Question || What are the approaches for mocking functionality in Flutter? || 0
 
|}
 
 
=== Final assessment ===
 
=== Final assessment ===
 
'''Section 1'''
 
'''Section 1'''
  +
# What is an abstract class in Dart?
 
# What is a mixin in Dart, how can we use it?
 
# What is a RenderObject? What responsibilities does it have?
 
# What is the difference between Stateless- and StatefulWidgets in Flutter?
 
# What is a BuildContext in Flutter?
 
 
'''Section 2'''
 
'''Section 2'''
  +
# What is app state and ephemeral state?
 
# What different approaches for persistence in Flutter do you know?
 
# What is Riverpod and how is it different from Provider?
 
# What is an EventLoop in Dart? How does it work with sync/async tasks?
 
# What is a microtask in Dart? What is Isolate?
 
 
'''Section 3'''
 
'''Section 3'''
  +
# What are core requirements for using Firebase?
 
# What types of objects are allowed to be passed through MessageChannel?
 
# What is BinaryMessenger?
 
# How to handle path navigation in Flutter Web?
 
   
 
=== The retake exam ===
 
=== The retake exam ===

Revision as of 00:21, 9 September 2022

Simulation modeling of financial and economic systems

  • Course name: Simulation modeling of financial and economic systems
  • Code discipline: P.1.1 Course Characteristics
  • Subject area:

Short Description

This course covers the following concepts: Introduction to the basic concepts of modeling business processes and queuing systems; Development of skills in building models of queuing systems; Mastering the basic tools of simulation modeling.

Prerequisites

Prerequisite subjects

Prerequisite topics

Course Topics

Course Sections and Topics
Section Topics within the section
Dynamic systems and discrete-event modeling
  1. A block method for implementing models of dynamic systems. Modeling of discrete systems.
  2. Application of an event model to control discrete flows. Process approach.
Theory and methods of system dynamics
  1. Theoretical foundations of system dynamics. Methodology for the development of system dynamic models. Archetypes of system dynamics.
  2. Continuous and discrete modeling. Compressed and real time. The concept of model time.
  3. The theory of feedbacks and lag dependencies. Implementation of the simulation model in the form of a system of simultaneous equations.
Multi-agent systems
  1. The paradigm of agent modeling. Architecture of agent models. The concept of an agent's state map.
  2. Collective behavior of agents. Interaction of agents with the environment and with each other. Agents in space and in time.

Intended Learning Outcomes (ILOs)

What is the main purpose of this course?

The main purpose of this course is the formation of students' complex of theoretical knowledge and methodological foundations in the field of simulation modeling systems, as well as practical skills in the implementation and use of such systems within the framework of financial and economic subject areas

ILOs defined at three levels

Level 1: What concepts should a student know/remember/explain?

By the end of the course, the students should be able to ...

  • explain the purpose of the sections of the conceptual description of the object of study;
  • understand the basic classes and principles of building information systems used for the practical implementation of simulation methods;
  • understand the basic methods of simulation modeling, including methods of system dynamics, agent modeling, discrete-event modeling, probabilistic modeling;
  • know the stages of planning a simulation experiment;
  • understand the characteristics of the simulation modeling (SM) systems market and the prospects for the development of SM systems.

Level 2: What basic practical skills should a student be able to perform?

By the end of the course, the students should be able to ...

  • determine the required type of simulation model depending on the task;
  • list and describe methods of calculating the main statistical indicators for evaluating the effectiveness of financial and economic systems;
  • carry out statistical processing of the initial data for the simulation model;
  • conduct a simulation experiment and process the results;
  • interpret the results of a simulation experiment.

Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?

By the end of the course, the students should be able to ...

  • carry out calculations of the main performance indicators for various classes of Markov-type queue models;
  • develop simulation models based on the use of modern simulation methods and integrated with various data sources;
  • solve the problem of choosing the input probability distribution for a specific simulation model;
  • apply simulation modeling systems to solve forecasting problems, to conduct scenario (situational) modeling and analysis, intelligent data processing;
  • apply simulation modeling systems to search for optimal management solutions, risk impact assessment.

Grading

Course grading range

Grade Range Description of performance
A. Excellent 90-100 -
B. Good 75-89 -
C. Satisfactory 60-74 -
D. Poor 0-59 -

Course activities and grading breakdown

Activity Type Percentage of the overall course grade
Homework 50
Assessment 30
Final Exam 20

Recommendations for students on how to succeed in the course

Resources, literature and reference materials

Open access resources

  • Bungartz H.-J., Zimmer S., Buchholz M., Pflüger D. Modeling and Simulation, Berlin, Heidelberg: Springer Berlin Heidelberg, 2014.
  • Yoav S., Leyton-Brown K. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, 2009.
  • Borshchev A., Grigoryev I. The Big Book of Simulation Modeling Multimethod Modeling with AnyLogic 8.
  • Bossel H. Modeling and Simulation, Wiesbaden: Vieweg Teubner Verlag, 1994.
  • Forrester J.W. World Dynamics, Wright-Allen Press, Inc., 1971.

Closed access resources

Software and tools used within the course

Teaching Methodology: Methods, techniques, & activities

Activities and Teaching Methods

Activities within each section
Learning Activities Section 1 Section 2 Section 3
Development of individual parts of software product code 1 1 1
Homework and group projects 1 1 1
Reports 1 1 1
Discussions 1 1 1
Testing (written or computer based) 0 0 1

Formative Assessment and Course Activities

Ongoing performance assessment

Section 1

Section 2

Section 3

Final assessment

Section 1

Section 2

Section 3


The retake exam

Section 1

Section 2

Section 3