An invited talk given at MoDELS'14 in Valencia at the Educators' Symposium, focusing on experiences with teaching models and modelling and what things did not work.
Introducción a NLP (Natural Language Processing) en AzurePlain Concepts
Esta charla pretende introducir a la audiencia al mundo del procesamiento del lenguaje natural, o NLP por sus siglas en inglés (Natural Language Processing). La charla en sí constará de 3 bloques.1. Estado del arte en NLP. ¿Qué se está usando hoy en día? ¿Qué problemas podemos solucionar y qué problemas no? Técnicas comúnmente usados en la industria2. Introducción a conceptos básicos a la hora de afrontar un proyecto ML con NLP: preprocesado, vectorización y embedding (word2vec, fastText, técnicas básicas como tf-idf, counting, etc). Clasificadores.3. Pequeño ejemplo práctico con despliegue usando Azure Machine Learning.
The information in this slide is very useful for me to do the assignment regarding the simulation in which we have to report together with the presentation...
Introducción a NLP (Natural Language Processing) en AzurePlain Concepts
Esta charla pretende introducir a la audiencia al mundo del procesamiento del lenguaje natural, o NLP por sus siglas en inglés (Natural Language Processing). La charla en sí constará de 3 bloques.1. Estado del arte en NLP. ¿Qué se está usando hoy en día? ¿Qué problemas podemos solucionar y qué problemas no? Técnicas comúnmente usados en la industria2. Introducción a conceptos básicos a la hora de afrontar un proyecto ML con NLP: preprocesado, vectorización y embedding (word2vec, fastText, técnicas básicas como tf-idf, counting, etc). Clasificadores.3. Pequeño ejemplo práctico con despliegue usando Azure Machine Learning.
The information in this slide is very useful for me to do the assignment regarding the simulation in which we have to report together with the presentation...
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Introduction to Object Oriented ProgrammingMoutaz Haddara
An Introduction to Object-Oriented Programming (OOP)
Download the presentation to view it correctly, as it has some animations that won't show here.
If you have any questions, please contact me. You are free to use it this presentation, but it would be nice at least to give me some credit :)
Content:
1- History of Programming
2. Objects and Classes
3- Abstraction, Inheritance, Encapsulation, and Polymorphism
Modeling should be an independent scientific disciplineJordi Cabot
Software modeling started as a paradigm to help developers build better software faster by enabling them to specify, reason and manipulate software systems at a higher-abstraction level while ignoring irrelevant low-level technical details. But this same principle manifests in any other domain that has to deal with complex systems, software-based or not. We argue that bringing to other engineering and scientific fields, our modeling expertise is a win–win opportunity where we can all learn from each other as we all model, but in complementary ways. Nevertheless, to fully unleash the benefits of this collaboration, we must go beyond individual efforts trying to adapt single techniques from one field to another. It requires a deeper reformulation of modeling as a whole. It is time for modeling to become an independent discipline where all fields of knowledge can contribute and benefit from.
Agent-Based Modelling: Social Science Meets Computer Science?Edmund Chattoe-Brown
Chattoe-Brown, Edmund (2017?) ‘Agent-Based Modelling: Social Science Meets Computer Science?’ presentation at Departmental Seminar, Department of Informatics, University of Leicester, 17 February.
Lessons from the Learning Sciences for Cyber Security Education. Cyber Security Education requires thinking about “how computing works.”
For programmers, why some practices create holes/opportunities.
For end-users, why some activities compromise security.
We need everyone to learn about cyber security.
What can learning sciences tell us about encouraging that kind of learning?
Lesson #1: Context matters.
The Story of Computing for All at Georgia Tech.
Lesson #2: Identity matters.
“Teaching” Graphics Designers who reject CS about CS.
Lesson #3: Structure matters.
Subgoal Labels can Dramatically Improve Learning
E-LEARNING TECHNOLOGIES
Tutorial by Martin Ebner, Martin Schön and Sandra Schön
CC BY SA BIMS e.V. | Martin Ebner, Martin Schön, Sandra Schön | April 2014
URL: http://creativecommons.org/licenses/by-sa/2.0/de/
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterMark Guzdial
Poster presented at the Dagstuhl Seminar "Assessing Learning in Introductory Computer Science" (http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=16072). I argue that we have to consider what the learner wants to do and wants to be (i.e., their desired Community of Practice) when assessing learning. Different CoP, different outcomes, different assessments.
Slides from my talk at the 27th European Conference on Operational Research (EURO 2015): Automated Timetabling, a case study with hybrid algorithms and GPU parallelization.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Introduction to Object Oriented ProgrammingMoutaz Haddara
An Introduction to Object-Oriented Programming (OOP)
Download the presentation to view it correctly, as it has some animations that won't show here.
If you have any questions, please contact me. You are free to use it this presentation, but it would be nice at least to give me some credit :)
Content:
1- History of Programming
2. Objects and Classes
3- Abstraction, Inheritance, Encapsulation, and Polymorphism
Modeling should be an independent scientific disciplineJordi Cabot
Software modeling started as a paradigm to help developers build better software faster by enabling them to specify, reason and manipulate software systems at a higher-abstraction level while ignoring irrelevant low-level technical details. But this same principle manifests in any other domain that has to deal with complex systems, software-based or not. We argue that bringing to other engineering and scientific fields, our modeling expertise is a win–win opportunity where we can all learn from each other as we all model, but in complementary ways. Nevertheless, to fully unleash the benefits of this collaboration, we must go beyond individual efforts trying to adapt single techniques from one field to another. It requires a deeper reformulation of modeling as a whole. It is time for modeling to become an independent discipline where all fields of knowledge can contribute and benefit from.
Agent-Based Modelling: Social Science Meets Computer Science?Edmund Chattoe-Brown
Chattoe-Brown, Edmund (2017?) ‘Agent-Based Modelling: Social Science Meets Computer Science?’ presentation at Departmental Seminar, Department of Informatics, University of Leicester, 17 February.
Lessons from the Learning Sciences for Cyber Security Education. Cyber Security Education requires thinking about “how computing works.”
For programmers, why some practices create holes/opportunities.
For end-users, why some activities compromise security.
We need everyone to learn about cyber security.
What can learning sciences tell us about encouraging that kind of learning?
Lesson #1: Context matters.
The Story of Computing for All at Georgia Tech.
Lesson #2: Identity matters.
“Teaching” Graphics Designers who reject CS about CS.
Lesson #3: Structure matters.
Subgoal Labels can Dramatically Improve Learning
E-LEARNING TECHNOLOGIES
Tutorial by Martin Ebner, Martin Schön and Sandra Schön
CC BY SA BIMS e.V. | Martin Ebner, Martin Schön, Sandra Schön | April 2014
URL: http://creativecommons.org/licenses/by-sa/2.0/de/
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterMark Guzdial
Poster presented at the Dagstuhl Seminar "Assessing Learning in Introductory Computer Science" (http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=16072). I argue that we have to consider what the learner wants to do and wants to be (i.e., their desired Community of Practice) when assessing learning. Different CoP, different outcomes, different assessments.
Slides from my talk at the 27th European Conference on Operational Research (EURO 2015): Automated Timetabling, a case study with hybrid algorithms and GPU parallelization.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Empowering Growth with Best Software Development Company in Noida - Deuglo
Bad Modelling Teaching Practices: Invited talk at MoDELS'14 Educators' Symposium
1. 1
Modelling Teaching Practices
Richard Paige, Fiona Polack, Dimitris Kolovos,
Louis Rose, Nikos Matragkas and James Williams
Department of Computer Science
University of York
2. Motivation 2
• It’s a great time to be teaching modelling!
• We have access to resources:
– Some good textbooks (e.g., Cabot & Brambilla)
– Reliable (and sometimes usable) tools.
– Standards.
– Lots of legacy teaching material.
– Documented engineering principles & practices
(e.g., patterns, styles).
– Repositories of examples (Atlantic Zoo,
REMODD, …)
– Published case studies.
3. Motivation 3
• It’s a great time to be teaching modelling!
• It’s seen as an important part of an
undergraduate and post-graduate
curriculum in SE/CS/....
– A subject in its own right.
– A cross-cutting subject that underpins many
aspects of software and systems engineering.
– Knowledge that graduates must have when
transitioning to work.
4. Motivation 4
• It’s a great time to be teaching modelling!
• Advice, guidance and description of
principles is available.
– Some of which has been presented and
published at previous EduSymps.
– Though more is needed, e.g., effectiveness of
different teaching practices, teaching different
cohorts, modelling for new domains.
• But …
• Maybe we have too much good advice.
6. 6
“An
Excerpt
from
the
10
Dos
and
the
500
Don’ts
of
Knife
Safety.”
7. Seriously… 7
• What hasn’t worked in teaching modelling?
• What practices have shown to be
troublesome, problematic, or difficult to
repeat successfully?
• What are some anti-patterns or bad teaching
practices that we should avoid?
8. 8
Bad Modelling Teaching
Practices
Richard Paige, Fiona Polack, Dimitris Kolovos,
Louis Rose, Nikos Matragkas and James Williams
Department of Computer Science
University of York
10. Bad Practice: Teach to 10
the Spec
• We
have
some
wonderfully
large
modelling
language
specifica+ons.
– You
know
who
you
are…
(UML,
MARTE,
OCL,
…)
• Teach
modelling
by
working
systema+cally
through
the
language
standard.
– Structural
diagrams,
behavioural,
etc…
– Focus
on
minute
details
of
arcane
language
features.
– (It’s
some+mes
how
we
teach
compara+ve
programming
languages!)
11. Bad Corollary: Teach languages deeply
11
• Large
modelling
languages
have
many
many
many
wonderful
and
interes+ng
features.
– Each
should
be
presented,
analysed,
summarised
and
compared
with
others
(syntac+cally,
seman+cally)
in
minute
detail.
– AXer
all,
we
can’t
possibly
tell
when
a
feature
will
be
useful
(or
useless).
12. Better Practice 12
• Avoid longitudinal studies of modelling languages
– (exceptions: if you are a researcher or a masochist)
• Drive exploration of modelling languages by the
problem you want students to solve.
– What is needed from the modelling language?
– What features can we deploy to meet our
requirements?
• Genuine question: how can we assess the
success (or failure) of language features in solving
problems?
13. Tangent: Feedback 13
• The problem that students are trying to
solve provides necessary context for
obtaining feedback on modelling
decisions.
– “Does this modelling decision help to address
the problem?”
– Without reference to a modelling problem,
how can we possibly provide feedback, and
provide steer to students on the utility of
modelling language features?
14. Tangent: Feedback 14
• Feedback in teaching programming is ‘easy’:
students get immediate feedback on their
decisions from the IDE etc.
• For modelling it is harder: students may not
get feedback at all!
– If they’re lucky, feedback will come from a
modelling tool (“Don’t draw that association!”).
– But many modelling tools reveal innate
complexity of modelling languages (XMI,
metamodel etc).
16. Bad Practice: Provide 16
Answers, not Solutions
• Students may expect to be given answers
to modelling problems.
– “Is this right?” “Is this what you expect?”
• Of course, we instructors are awesome
modellers.
• We should fight the temptation to give in
and provide answers.
17. Better Practice: Provide 17
Solutions, not Answers
• Students want answers, but there are too
many possible (good) answers.
– Different modellers have different styles.
• Students need to learn the subtleties of
modelling through experience, not imitation.
• How?
– Get students to create solutions, then have
seminar-style presentation/discussions.
– Create models “live” and discuss what is
unacceptable or conventional.
19. Bad Practice: Serious 19
Domains Only
• Students need & benefit from examples.
• Modelling examples should be grounded
in reality to increase engagement.
• Realistic examples:
– A library
– A bank
– A traffic light system
– Automotive entertainment system
– OO2RDBMS
20. Serious Domains 20
Only? Seriously?
• Tedious, recurring and obvious examples are
tedious, recurring and obvious.
– Demotivating!
– Choose examples with engagement in mind.
• Multi-disciplinary problems?
– E.g., archaeology – modelling how building use
has changed at an address over 500 years.
– E.g., music – DSLs for music and music matching
– E.g., economics – model plant/controller for “flash
crash”?
21. Serious Domains 21
Only? Seriously?
• Grant students the freedom of their
imagination.
– Leads to “interesting” modelling decisions.
• Diversity of solutions.
– Enables a more exploratory approach.
• We use computer games (both for modelling
and metamodelling).
– E.g., air traffic control, adventure, plant
automation, trains, mountaineering, …
– Promotes research, modelling, feedback …
23. Bad Practice: No 23
Prerequisites
• Formal methods need discrete maths.
• Compiler design needs automata theory.
• But modelling … it can be picked up by
anyone, right?
– As long as they have some experience with
programming, right?
24. No, Prerequisites 24
• Modelling is an advanced software
engineering skill.
• The mechanics of modelling may be
straightforward, but developing models
that are fit for purpose is not.
– Excellent analytic skills.
– Aptitude for abstraction.
– Ability to evaluate and consider trade-offs.
– Ability to focus on domain not notation.
25. No, Prerequisites 25
• So what are some of the prerequisites?
– Object-oriented programming: identity,
encapsulation, reference, composition, proxy,
adapter, refactoring?
– Risk management?
– Engineering processes?
• What about prerequisites for model
transformation?
– Hmm … programming, templates (PHP),
closures, first-order logic????
27. Bad Practice: 27
Metamodelling via UML
• “Hey, our students understand modelling!”
– “Let’s introduce them to metamodelling. That’ll be
fun.”
• “How should we do that?”
– “Well, they’re using UML convincingly. Let’s use
the UML metamodel as a running example.”
• “Great! We can show the typical patterns of
metamodelling, different techniques, etc.”
– “Super! Nothing can possibly go wrong!”
28. Metamodelling not 28
via UML
• In practice, lots can go wrong.
• The UML metamodel introduces lots of
accidental complexity.
– Structure/naming similarities between UML and
MOF/Ecore.
– “UML classes are instances of the Class UML
metaclass, which is an instance of MOF class.”
• ER diagrams may be better, but structurally
and visually are too similar to class diagrams.
29. Metamodelling not 29
via UML
• Use something else.
• We currently use flowcharts to introduce
metamodelling.
– Concepts: actions, decisions, transitions,
labels.
– Little structural, and no lexical, overlap with
metamodel-level concepts.
– Use examples of flowcharts to motivate the
development of small metamodels/patterns.
31. Bad Practice: Learning 31
the tools is easy
• By the time students start with modelling
tools, they probably have experienced IDEs.
– So learning Eclipse/EMF should be easy.
• But modelling tools expose students to
different artefacts:
– Concrete syntax, abstract syntax, persistence
layer, different editors (tree editor, graphical
editor), different wizards, …
• Generic tools like Eclipse don’t hide
accidental complexity (things irrelevant to
modelling tasks).
32. Learning the tools 32
isn’t easy
• Acknowledge this in early exercises:
– hands-on help in early going, make clear our
expectations.
• What learning resources are available for
students?
– Equivalents of StackExchange? E-books?
YouTube sites?
– We’re way behind the programming tools.
34. Bad Practice: Teach 34
modelling in a vacuum
• Teach modelling as a pure, self-contained
subject.
– As a theory with laws/rules, with no notable
relationship with the outside world.
• In other words, ignore the purpose in
creating models.
– May be acceptable for theoretical computer
science, but not software engineering, which
must consider trade-offs.
35. Teach modelling in 35
context
• Teach modelling principles and tools in conjunction
with other software engineering activities/tools.
• So teach not only modelling and metamodelling,
but:
– Application scenarios
– Related software engineering tasks
– Alternatives to modelling
– Transitions to and from modelling and other
engineering tasks
– Relationships to similar topics, e.g., databases,
ontologies.
37. Codegen: the entry 37
level drug
• Once students get good at modelling, what
can they do with their models?
• “Communication, evaluation, validating
different design options.”
• “Code generation is a primary use case.”
38. Codegen: it’s time 38
for rehab
• It’s a very limited view of what modelling can
do (e.g., simulation, decision support,
analysis).
• It’s an overused tool: what engineers often
(unwisely) reach for.
– For complex semantic gaps, M2T languages are
often not well-suited for crossing them; don’t
mislead students.
• It suggests MDE/modelling is for software
engineering.
• So, teach it as a secondary scenario?
40. Bad Practice: 40
Reinforce Silos
• We have to compartmentalise when
teaching modelling – it’s a big topic!
– Teach modelling as a separate subject (e.g.,
focusing on language not problem).
– Ignore team issues.
– Have one person teach modelling, not a team.
– Teach modelling without reference to other
disciplines or non-software domains.
41. Eliminate Silos 41
• Teach that modelling cuts across software
and systems engineering, with cross-domain
and cross-discipline examples.
• Consider socio-technical issues.
• Have modellers work in teams, taught by
teams (to get different perspectives).
43. Bad Practice: Physical 43
Decomposition
• Decomposition is a fundamental technique
we teach, to help students manage
complexity.
• Teach it superficially!
– If we are modelling a physical system (e.g., a car,
a ship), the only way to decompose is physically,
in terms of subsystems and components.
• Also, only refer to physical analogies when
decomposing software systems.
44. Not Only Physical 44
Decomposition
• Physical decomposition may be a useful
way to manage complexity.
– But we have to explain the consequences.
• Consider alternative decompositions (e.g.,
behaviour).
• Consider cross-cutting concerns like
safety, and how they do not decompose.
– Some considerations in enterprise
architecture.
46. Bad Practice: 46
Ignore Semantics
• We have beautiful modelling languages
with lovely syntax and interesting
metamodels.
• So interesting, in fact, that that is what we
focus on.
– Spend weeks on language features and
abstract syntax.
– Ignore the semantics.
47. Embrace Semantics 47
• Modelling language semantics is an
advanced topic.
• But it’s essential to teach:
– it helps students avoid misconceptions (e.g., a
metamodel is its semantics, a model has one
interpretation).
– It supports new use cases, e.g., simulation.
– An ill-defined semantics can be the root cause
of ambiguity and disagreement.
48. Observations 48
• Integrate modelling into the curriculum.
– Focusing on its use in problem solving.
– Get rid of the “UML course”!
• Problem-based learning for undergraduates
and novices.
– Modelling for modelling’s sake is cool, but it’s for
the researcher and tool builder!
• Make sure students are prepared.
– OO, patterns, instantiation, constraints,
references …
49. Observations 49
• Expect that tools will get in the way of
teaching and learning.
– Accommodate for this in your lesson plans,
lab sessions, exercises etc.
• Engage students with ‘fun’ problems.
– Let students do their own research.
– Embrace the flexibility inherent in modelling.
– Make lots of mistakes (both you and the
student!)