SlideShare a Scribd company logo
1 of 54
Download to read offline
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 1
Xtext: Eclipse-based framework for defining
Domain-Specific Languages (DSLs)
Thomas Baar
thomas.baar@ccfit.nsu.ru (temporary *)
NSU Tech Talk; Akademgorodok, 2015-11-24
Guest Lecturer at:
Home University:
* My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 2
Domain-Specific Language (DSL)
A DSL is a notation for expressing observations, facts, algorithms
in an elegant way. The notation can be
- textual
- graphical
- table-oriented
or a mixture of the above.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 3
Domain-Specific Language (DSL)
Compared to general-purpose modeling languages (e.g. UML) or
programming languages (e.g. Java), DSLs have usually a (much)
less complex syntax while being expressive enough for the
domains they target!
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 4
Domain-Specific Language (DSL)
Compared to general-purpose modeling languages (e.g. UML) or
programming languages (e.g. Java), DSLs have usually a (much)
less complex syntax while being expressive enough for the
domains they target!
Domain-specific models/programs are typically less complex
than models/programs written in a general purpose language.
Thus, they are easier to understand and to maintain.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 5
DSL Examples
Domain
Typesetting
Language
Latex
Source: Britannica kids. kid.eb.com
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 6
DSL Examples
Domain
Automatic Software Build
Language
make
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 7
DSL Examples
Domain
Chemistry
Language
Mendeleev's periodic
system of chemical
elements
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 8
DSL Examples
Domain
Process Description
Language
Harel's statecharts
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 9
- Что такое?
• Eclipse-framework for defining textual DSLs
- actually, Xtext is the heart of Eclipse bundle "Eclipse for Java
and DSL developers"
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 10
- Что такое?
• Eclipse-framework for defining textual DSLs
- actually, Xtext is the heart of Eclipse bundle "Eclipse for Java
and DSL developers"
• Open source, but professionally developed and maintained by
start-up company Itemis (Kiel, Germany)
- matured code, release 2.9 expected early Dec 2015
- nice documentation/tutorials
- active forum, fast bug-fixes
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 11
- Что такое?
• Eclipse-framework for defining textual DSLs
- actually, Xtext is the heart of Eclipse bundle "Eclipse for Java
and DSL developers"
• Open source, but professionally developed and maintained by
start-up company Itemis (Kiel, Germany)
- matured code, release 2.9 expected early Dec 2015
- nice documentation/tutorials
- active forum, fast bug-fixes
• Very informative website www.eclipse.org/xtext
- short video tutorials explaining each editor feature
- links to what community has implemented using Xtext
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 12
Xtext: Mission & Workflow
Mission: Make the Definition and Usage of textual DSLs as easy as possible.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 13
Overview on DSL Definition
DSL-Part Defined in Purpose
Grammar EBNF-inspired Grammar
language
specify lexer, parser
Validator Xtend * filter out non-intended input
models; trigger error-
markers in editor
Scope definitions Xtend resolve cross-references
Editor configurations
(Overview pane, content
assist/auto-completion,
font-selection, tooltips, etc.)
Xtend adjust editor features
Code generator Xtend specify code generator
Tests Xtend execute test cases for lexer,
parser, validator, scope
provider, editor, eclipse
integration, etc.
* Xtend - An extension of Java invented from Xtext-team in order to make typical
programming tasks (e.g. AST traversion, code templates) much easier.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 14
More detailed DSL-Definition Workflow
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 15
Example Project
Beans
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 16
A Simple Example: Beans
-- Create an Xtext Project --
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 17
A Simple Example: Beans
-- Define the Grammar --
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 18
A Simple Example: Beans
-- Define the Grammar --
Header
Start Rule
Feature in generated
EMF class
Cross-reference
Keyword
Optional Occurence
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 19
Xtext is build on top of the parser generator ANTLR. For the above grammar,
much longer input files for ANTLR have been generated (299 LOC, 24 LOC).
A Simple Example: Beans
-- Define the Grammar --
Header
Start Rule
Feature in generated
EMF class
Cross-reference
Keyword
Optional Occurence
The formalism for defining a grammar is a DSL!
This DSL has been implemented by Xtext itself ;-)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 20
A Simple Example: Beans
-- Testing the Parser using JUnit --
Pre-defined
helper classes
String templates
(enclosed by ''' )
Extension method
(actually defined
in ParserHelper and
not in String)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 21
A Simple Example: Beans
-- Adding a Validator: Making the syntax more precise --
class BeansDslValidator extends AbstractBeansDslValidator {
public static val INVALID_NAME = 'invalidName'
@Check
def checkBeannameStartsWithCapital(Bean bean) {
if (!Character.isUpperCase(bean.name.charAt(0))) {
error('Name must start with a capital',
BeansDslPackage.Literals.BEAN__NAME, INVALID_NAME
)
}
}
}
Mark input text as erroneous
under certain circumstances
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 22
A Simple Example: Beans
-- Testing the Validator using JUnit --
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 23
A Simple Example: Beans
-- Enjoy the Editor :-) --
Content assist
(aka auto-completion)
Grammar error
(missing ';')
Validation error
(no capital letter)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 24
A Simple Example: Beans
-- Specify a Code Generator using Xtend --
class BeansDslGenerator implements IGenerator {
override void doGenerate(Resource resource, IFileSystemAccess fsa) {
resource.allContents.toIterable.filter(typeof(Bean)).forEach[
fsa.generateFile('''beans/«name».java''', compile)
]
}
def compile(Bean bean) {
'''
public class «bean.name» «IF bean.superType != null»extends «bean.superType.name» «EN
«FOR att : bean.attributes»
private «att.type.typeToString» «att.name»;
«ENDFOR»
«FOR att : bean.attributes»
public «att.type.typeToString» get«att.name.toFirstUpper»() {
return «att.name»;
}
public void set«att.name.toFirstUpper»(«att.type.typeToString» _arg) {
this.«att.name» = _arg;
}
«ENDFOR»
}
'''}
def typeToString(BasicType type) {
if (type.literal.equals("string")) "String" else type}
}
Output written in .java file
Each bean becomes a Java class
Each bean attribute is mapped to
Java attribute, getter- and setter-
method
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 25
A Simple Example: Beans
-- Enjoy the Code Generator :-) --
One input file
(written in our
DSL)
Location of generated
artifacts
Three output files
(written in target
language)
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 26
A Simple Example: Beans
-- Testing Code Generator using JUnit --
class BeansGeneratorTests {
@Rule
@Inject public TemporaryFolder temporaryFolder
@Inject extension CompilationTestHelper
@Inject extension ReflectExtensions
@Test
def void testTwoCompiledClasses() {
'''
bean Person{string name;}
bean Student extends Person{
boolean isMaster;
studentID; // implicitely typed as int
}
}
'''.compile [
getCompiledClass("Person").assertNotNull
getCompiledClass("Student").assertNotNull
]
}
}
both classes
has been compiled
successfully
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 27
A Simple Example: Beans
-- Testing Code Generator using JUnit --
@Test
def void playWithGeneratedJavaCode() {
'''
bean Person{string name;}
bean Student extends Person{
boolean isMaster;
studentID; // implicitely typed as int
}
}
'''.compile [
getCompiledClass("Student").newInstance => [
assertNull(it.invoke("getName"))
val aName = "Johnson"
it.invoke("setName", aName) // invoking inherit method
assertEquals(aName, it.invoke("getName"))
val anInt = 1234
it.invoke("setStudentID", anInt)
assertEquals(anInt, it.invoke("getStudentID"))
]
]
}
create instance
of Student and
invoke setter/getter
by reflection
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 28
Summary
• Differences of domain-specific and general-purpose
languages
• Short overview on purpose and architecture of
Xtext
• Gone through small example (hopefully) showing the
efficiency gain
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 29
Summary
• Differences of domain-specific and general-purpose
languages
• Short overview on purpose and architecture of
Xtext
• Gone through small example (hopefully) showing the
efficiency gain
Try it out by yourself! Xtext is very versatile and stable.
T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 30
Thank you!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 1
How to write a PhD thesis in Germany
Thomas Baar
thomas.baar@ccfit.nsu.ru (temporary *)
NSU Tech Talk; Akademgorodok, 2015-11-24
Guest Lecturer at:
Home University:
* My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 2
What do you like Germany for?
Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons -
https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 3
What do you like Germany for?
Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons -
https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg
Cultural heritage
(literature, music,
architecture)
Social welfare
Innovative companies
High-quality products
(„Made in (West-)Germany“)
Efficiency
German beer :-)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 4
Up-/Downsides of Efficiency
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 5
Up-/Downsides of Efficiency
Ups
- high wages
- cheap products/food
- as a country: strong
economic position
(much more export
than import)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 6
Up-/Downsides of Efficiency
Ups
- high wages
- cheap products/food
- as a country: strong
economic position
(much more export
than import)
Downs
- high unemployment
rate
- expensive workplaces
 do not call a
craftsman ...
- high pressure on
employees
 Diesel Gate at VW
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 7
Efficiency also in Academia
• Comparing Student/Employee ratio of
- Hochschule für Technik und Wirtschaft (HTW) Berlin
 University of Applied Sciences
- Humboldt-University (HU) Berlin
- Novosibirsk State University (NSU)
0
5000
10000
15000
20000
25000
30000
35000
HTW Berlin HU Berlin NSU
Size of Universities
Employees Students
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 8
Efficiency also in Academia
• Comparing Student/Employee ratio of
- Hochschule für Technik und Wirtschaft (HTW) Berlin
 University of Applied Sciences
- Humboldt-University (HU) Berlin
- Novosibirsk State University (NSU)
0
5
10
15
20
25
30
HTW Berlin HU Berlin NSU
Students per Employee
0
5000
10000
15000
20000
25000
30000
35000
HTW Berlin HU Berlin NSU
Size of Universities
Employees Students
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 9
Efficiency also in Academia
• Comparing Student/Employee ratio of
- Hochschule für Technik und Wirtschaft (HTW) Berlin
 University of Applied Sciences
- Humboldt-University (HU) Berlin
- Novosibirsk State University (NSU)
0
5
10
15
20
25
30
HTW Berlin HU Berlin NSU
Students per Employee
0
5000
10000
15000
20000
25000
30000
35000
HTW Berlin HU Berlin NSU
Size of Universities
Employees Students
This is the paradise !!!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 10
My Career
1990-97 Study of Computer Science at HU Berlin
1997-99 Research Assistent at HU Berlin
1999 How to continue? Hard decision!
1999-03 Doctoral Student at University of Karlsruhe
(today: KIT)
2003-07 Post-Doc, École Polytechnique Fédérale de Lausanne
(EPFL), Lausanne, Switzerland
2007-11 Senior Engineer in small software company, Berlin
2011 -- Professor at HTW Berlin
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 11
My Period of Writing PhD Thesis
• 2 years preliminary research work at HU Berlin
• my group in Karlsruhe
- 2 professors
- 2 post-docs
- 4 phd students
 funding from DFG (Deutsche Forschungsgemeinschaft): salary,
equipement, travelling
 basically no teaching obligations
- appr. 5-10 student assistents
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 12
My Period of Writing PhD Thesis
• 2 years preliminary research work at HU Berlin
• my group in Karlsruhe
- 2 professors
- 2 post-docs
- 4 phd students
 funding from DFG (Deutsche Forschungsgemeinschaft): salary,
equipement, travelling
 basically no teaching obligations
- appr. 5-10 student assistents
We have the worst PhD supervisor ever, because he does not supervise us!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 13
My Period of Writing PhD Thesis
• 2 years preliminary research work at HU Berlin
• my group in Karlsruhe
- 2 professors
- 2 post-docs
- 4 phd students
 funding from DFG (Deutsche Forschungsgemeinschaft): salary,
equipement, travelling
 basically no teaching obligations
- appr. 5-10 student assistents
We have the worst PhD supervisor ever, because he does not supervise us!
We have the best PhD supervisor ever, because he does not supervise us!
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 14
How to find open Research Position?
• Ask your professor/supervisor here in Nsk
- people meet at conferences/workshops and
disseminate open positions
• Go to www.academics.de
- offers alert service
- informative links
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 15
Types of PhD Positions
• assistent position at university (Landesstelle)
+ contract extension no problem
- sometimes time-consuming teaching obligations
• research position at university (e.g. DFG financed)
+ focus on research; no teaching
- sometimes hard to get project extension
• position at research institute (Fraunhofer, Leibniz)
+ working on industry problems
- overloaded with work to reach next milestone
• research position in industry (Daimler Benz, Siemens)
+ working on industry problems
- no strong supervision; danger to become 'ordinary' project member
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 16
Initiative for Academic Excellence
• Initiated by chancellor Gerhard Schröder
Idea: Universities and clusters can apply for
special status "Place of Excellence"
- selected universities get huge research money from
Federal budget
- highly competitive (only 5-10 universities got status)
- only already renowned universities have chance to
become successful
Rational: Germany wants to "become better" in world-
wide rankings
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 17
Consequences of Excellence Initiative
• currently a lot of money "in the system"
• many interesting projects
• a lot of open positions :-)
- also due to the current very good job market
 many talented graduates go to industry
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 18
Consequences of Excellence Initiative
• currently a lot of money "in the system"
• many interesting projects
• a lot of open positions :-)
- also due to the current very good job market
 many talented graduates go to industry
!!! However !!!
- still only non-permanent positions
- becoming a professor after PhD project became
even more difficult (due to many qualified colleages
that completed PhD as well)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 19
Will I have enough money to survive?
• as a PhD student: no fees to be paid
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 20
Will I have enough money to survive?
• as a PhD student: no fees to be paid
• Salary usually according to Tv-L 13: currently 3500 € per month
- from this appr. 50% reduction for taxes, health insurance,
pension plan
- !Attention! some research projects offer only 50% jobs
 "officially" 50% workload, but for sure only 50% payment
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 21
Will I have enough money to survive?
• as a PhD student: no fees to be paid
• Salary usually according to Tv-L 13: currently 3500 € per month
- from this appr. 50% reduction for taxes, health insurance,
pension plan
- !Attention! some research projects offer only 50% jobs
 "officially" 50% workload, but for sure only 50% payment
• Some prices:
- lunch in cafeteria: appr. 4 €
- food from supermarket: appr. 150 € per month
- 1-room flat in Berlin: from 400 € per month
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 22
Final Recommendations
• Do not worry about German language skills
- helpful in private life, but not mandatory at university
• my favourite position: research at university with professor
having 3-4 PhD students
• getting an 1-year-contract initially is rather normal
• publications
- do not wait too long with your first one
- write only if you found out something worth to be told
- also read books/articles on "How to write a good paper?/How
to give a good talk?"
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 23
Final Recommendations
Prof. Tom Henzinger: „Strive always to be as good as you can!“
(when writing applications,writing papers, giving talks)
T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 24
Thank you!

More Related Content

What's hot

Deep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explainedDeep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explainedHolger Schill
 
PyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
PyParis 2017 / Pandas - What's new and whats coming - Joris van den BosschePyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
PyParis 2017 / Pandas - What's new and whats coming - Joris van den BosschePôle Systematic Paris-Region
 
How to write a TableGen backend
How to write a TableGen backendHow to write a TableGen backend
How to write a TableGen backendMin-Yih Hsu
 
Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Adam Tomat
 
Patterns for JVM languages JokerConf
Patterns for JVM languages JokerConfPatterns for JVM languages JokerConf
Patterns for JVM languages JokerConfJaroslaw Palka
 
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介scalaconfjp
 

What's hot (8)

Deep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explainedDeep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explained
 
PyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
PyParis 2017 / Pandas - What's new and whats coming - Joris van den BosschePyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
PyParis 2017 / Pandas - What's new and whats coming - Joris van den Bossche
 
Ahieving Performance C#
Ahieving Performance C#Ahieving Performance C#
Ahieving Performance C#
 
How to write a TableGen backend
How to write a TableGen backendHow to write a TableGen backend
How to write a TableGen backend
 
Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018
 
Joomla Day DK 2012
Joomla Day DK 2012Joomla Day DK 2012
Joomla Day DK 2012
 
Patterns for JVM languages JokerConf
Patterns for JVM languages JokerConfPatterns for JVM languages JokerConf
Patterns for JVM languages JokerConf
 
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
Introduction to Spark SQL and Catalyst / Spark SQLおよびCalalystの紹介
 

Viewers also liked

9.6 El modelado Glaciar
9.6 El modelado Glaciar9.6 El modelado Glaciar
9.6 El modelado GlaciarRaquel Zalba
 
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONEHOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONEChristiana_Trivedi
 
Accelerate Sales and Increase Revenue
Accelerate Sales and Increase RevenueAccelerate Sales and Increase Revenue
Accelerate Sales and Increase RevenueTravis Davis
 
2014 Best Sports Cars
2014 Best Sports Cars2014 Best Sports Cars
2014 Best Sports CarsEason Chan
 
The design of things you don't want to think about — WIAD 2016 Jönköping
The design of things you don't want to think about — WIAD 2016 Jönköping The design of things you don't want to think about — WIAD 2016 Jönköping
The design of things you don't want to think about — WIAD 2016 Jönköping Alberta Soranzo
 
Artificial Intelligence 02 uninformed search
Artificial Intelligence 02 uninformed searchArtificial Intelligence 02 uninformed search
Artificial Intelligence 02 uninformed searchAndres Mendez-Vazquez
 
رهبری تیمهای نوآور
رهبری تیمهای نوآوررهبری تیمهای نوآور
رهبری تیمهای نوآورSina Bagherinezhad
 
Music video audience profile
Music video audience profileMusic video audience profile
Music video audience profileChloé
 
9 einfache Ideen für individuelle Bildmotive
9 einfache Ideen für individuelle Bildmotive9 einfache Ideen für individuelle Bildmotive
9 einfache Ideen für individuelle BildmotiveWebdesign Journal
 
Artificial Intelligence 06.01 introduction bayesian_networks
Artificial Intelligence 06.01 introduction bayesian_networksArtificial Intelligence 06.01 introduction bayesian_networks
Artificial Intelligence 06.01 introduction bayesian_networksAndres Mendez-Vazquez
 
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicentejjsg23
 

Viewers also liked (18)

Delphi7 oyutnii garin awlaga 2006 muis
Delphi7 oyutnii garin awlaga 2006 muisDelphi7 oyutnii garin awlaga 2006 muis
Delphi7 oyutnii garin awlaga 2006 muis
 
9.6 El modelado Glaciar
9.6 El modelado Glaciar9.6 El modelado Glaciar
9.6 El modelado Glaciar
 
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONEHOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
HOW TO CHECK DELETED WHATSAPP MESSAGES ON IPHONE
 
Accelerate Sales and Increase Revenue
Accelerate Sales and Increase RevenueAccelerate Sales and Increase Revenue
Accelerate Sales and Increase Revenue
 
2014 Best Sports Cars
2014 Best Sports Cars2014 Best Sports Cars
2014 Best Sports Cars
 
The design of things you don't want to think about — WIAD 2016 Jönköping
The design of things you don't want to think about — WIAD 2016 Jönköping The design of things you don't want to think about — WIAD 2016 Jönköping
The design of things you don't want to think about — WIAD 2016 Jönköping
 
Lipinski Jmrc Lecture1 Nov2008
Lipinski Jmrc Lecture1 Nov2008Lipinski Jmrc Lecture1 Nov2008
Lipinski Jmrc Lecture1 Nov2008
 
Tea vs-coffee
Tea vs-coffeeTea vs-coffee
Tea vs-coffee
 
Artificial Intelligence 02 uninformed search
Artificial Intelligence 02 uninformed searchArtificial Intelligence 02 uninformed search
Artificial Intelligence 02 uninformed search
 
رهبری تیمهای نوآور
رهبری تیمهای نوآوررهبری تیمهای نوآور
رهبری تیمهای نوآور
 
Music video audience profile
Music video audience profileMusic video audience profile
Music video audience profile
 
How to Look at Art
How to Look at ArtHow to Look at Art
How to Look at Art
 
9 einfache Ideen für individuelle Bildmotive
9 einfache Ideen für individuelle Bildmotive9 einfache Ideen für individuelle Bildmotive
9 einfache Ideen für individuelle Bildmotive
 
Pn learning takmin
Pn learning takminPn learning takmin
Pn learning takmin
 
Artificial Intelligence 06.01 introduction bayesian_networks
Artificial Intelligence 06.01 introduction bayesian_networksArtificial Intelligence 06.01 introduction bayesian_networks
Artificial Intelligence 06.01 introduction bayesian_networks
 
ATA CP-MAT program highlights
ATA CP-MAT program highlightsATA CP-MAT program highlights
ATA CP-MAT program highlights
 
Jeff Krongaard - RAYTHEON
Jeff Krongaard - RAYTHEONJeff Krongaard - RAYTHEON
Jeff Krongaard - RAYTHEON
 
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
8.1 el franquismo-fundamentos ideológicos y evolución política-arturo y vicente
 

Similar to Xtext project and PhDs in Gemany

Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial EnEjb3 Struts Tutorial En
Ejb3 Struts Tutorial EnAnkur Dongre
 
Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial EnEjb3 Struts Tutorial En
Ejb3 Struts Tutorial EnAnkur Dongre
 
Just one-shade-of-openstack
Just one-shade-of-openstackJust one-shade-of-openstack
Just one-shade-of-openstackRoberto Polli
 
Linq 1224887336792847 9
Linq 1224887336792847 9Linq 1224887336792847 9
Linq 1224887336792847 9google
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKShu-Jeng Hsieh
 
Elasticsearch And Apache Lucene For Apache Spark And MLlib
Elasticsearch And Apache Lucene For Apache Spark And MLlibElasticsearch And Apache Lucene For Apache Spark And MLlib
Elasticsearch And Apache Lucene For Apache Spark And MLlibJen Aman
 
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana MandziukFwdays
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NETsalonityagi
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7Deniz Oguz
 
Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Kai Koenig
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLsintelliyole
 
Rafael Bagmanov «Scala in a wild enterprise»
Rafael Bagmanov «Scala in a wild enterprise»Rafael Bagmanov «Scala in a wild enterprise»
Rafael Bagmanov «Scala in a wild enterprise»e-Legion
 
First adoption hackathon at BGJUG
First adoption hackathon at BGJUGFirst adoption hackathon at BGJUG
First adoption hackathon at BGJUGIvan Ivanov
 
JRuby e DSL
JRuby e DSLJRuby e DSL
JRuby e DSLjodosha
 
Code Documentation. That ugly thing...
Code Documentation. That ugly thing...Code Documentation. That ugly thing...
Code Documentation. That ugly thing...Christos Manios
 
Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Ravi Okade
 
Topic2JavaBasics.ppt
Topic2JavaBasics.pptTopic2JavaBasics.ppt
Topic2JavaBasics.pptMENACE4
 

Similar to Xtext project and PhDs in Gemany (20)

Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial EnEjb3 Struts Tutorial En
Ejb3 Struts Tutorial En
 
Ejb3 Struts Tutorial En
Ejb3 Struts Tutorial EnEjb3 Struts Tutorial En
Ejb3 Struts Tutorial En
 
Just one-shade-of-openstack
Just one-shade-of-openstackJust one-shade-of-openstack
Just one-shade-of-openstack
 
Reversing JavaScript
Reversing JavaScriptReversing JavaScript
Reversing JavaScript
 
Linq 1224887336792847 9
Linq 1224887336792847 9Linq 1224887336792847 9
Linq 1224887336792847 9
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDK
 
Elasticsearch And Apache Lucene For Apache Spark And MLlib
Elasticsearch And Apache Lucene For Apache Spark And MLlibElasticsearch And Apache Lucene For Apache Spark And MLlib
Elasticsearch And Apache Lucene For Apache Spark And MLlib
 
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NET
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
 
Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
 
Rafael Bagmanov «Scala in a wild enterprise»
Rafael Bagmanov «Scala in a wild enterprise»Rafael Bagmanov «Scala in a wild enterprise»
Rafael Bagmanov «Scala in a wild enterprise»
 
First adoption hackathon at BGJUG
First adoption hackathon at BGJUGFirst adoption hackathon at BGJUG
First adoption hackathon at BGJUG
 
JRuby e DSL
JRuby e DSLJRuby e DSL
JRuby e DSL
 
Code Documentation. That ugly thing...
Code Documentation. That ugly thing...Code Documentation. That ugly thing...
Code Documentation. That ugly thing...
 
Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)
 
Modern Python Testing
Modern Python TestingModern Python Testing
Modern Python Testing
 
Topic2JavaBasics.ppt
Topic2JavaBasics.pptTopic2JavaBasics.ppt
Topic2JavaBasics.ppt
 

More from Tech Talks @NSU

Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU
 
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU
 
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняTech Talks @NSU
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиTech Talks @NSU
 
Автоматическое доказательство теорем
Автоматическое доказательство теоремАвтоматическое доказательство теорем
Автоматическое доказательство теоремTech Talks @NSU
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция JavaTech Talks @NSU
 
Защита от атак по сторонним каналам
Защита от атак по сторонним каналамЗащита от атак по сторонним каналам
Защита от атак по сторонним каналамTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьТестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьTech Talks @NSU
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном миреTech Talks @NSU
 
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU
 
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
 
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU
 
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
 
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU
 

More from Tech Talks @NSU (20)

Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнес
 
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
 
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
 
Автоматическое доказательство теорем
Автоматическое доказательство теоремАвтоматическое доказательство теорем
Автоматическое доказательство теорем
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция Java
 
Защита от атак по сторонним каналам
Защита от атак по сторонним каналамЗащита от атак по сторонним каналам
Защита от атак по сторонним каналам
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьТестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном мире
 
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попасть
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
 
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применение
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
 
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностей
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
 

Recently uploaded

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

Xtext project and PhDs in Gemany

  • 1. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 1 Xtext: Eclipse-based framework for defining Domain-Specific Languages (DSLs) Thomas Baar thomas.baar@ccfit.nsu.ru (temporary *) NSU Tech Talk; Akademgorodok, 2015-11-24 Guest Lecturer at: Home University: * My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
  • 2. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 2 Domain-Specific Language (DSL) A DSL is a notation for expressing observations, facts, algorithms in an elegant way. The notation can be - textual - graphical - table-oriented or a mixture of the above.
  • 3. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 3 Domain-Specific Language (DSL) Compared to general-purpose modeling languages (e.g. UML) or programming languages (e.g. Java), DSLs have usually a (much) less complex syntax while being expressive enough for the domains they target!
  • 4. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 4 Domain-Specific Language (DSL) Compared to general-purpose modeling languages (e.g. UML) or programming languages (e.g. Java), DSLs have usually a (much) less complex syntax while being expressive enough for the domains they target! Domain-specific models/programs are typically less complex than models/programs written in a general purpose language. Thus, they are easier to understand and to maintain.
  • 5. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 5 DSL Examples Domain Typesetting Language Latex Source: Britannica kids. kid.eb.com
  • 6. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 6 DSL Examples Domain Automatic Software Build Language make
  • 7. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 7 DSL Examples Domain Chemistry Language Mendeleev's periodic system of chemical elements
  • 8. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 8 DSL Examples Domain Process Description Language Harel's statecharts
  • 9. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 9 - Что такое? • Eclipse-framework for defining textual DSLs - actually, Xtext is the heart of Eclipse bundle "Eclipse for Java and DSL developers"
  • 10. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 10 - Что такое? • Eclipse-framework for defining textual DSLs - actually, Xtext is the heart of Eclipse bundle "Eclipse for Java and DSL developers" • Open source, but professionally developed and maintained by start-up company Itemis (Kiel, Germany) - matured code, release 2.9 expected early Dec 2015 - nice documentation/tutorials - active forum, fast bug-fixes
  • 11. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 11 - Что такое? • Eclipse-framework for defining textual DSLs - actually, Xtext is the heart of Eclipse bundle "Eclipse for Java and DSL developers" • Open source, but professionally developed and maintained by start-up company Itemis (Kiel, Germany) - matured code, release 2.9 expected early Dec 2015 - nice documentation/tutorials - active forum, fast bug-fixes • Very informative website www.eclipse.org/xtext - short video tutorials explaining each editor feature - links to what community has implemented using Xtext
  • 12. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 12 Xtext: Mission & Workflow Mission: Make the Definition and Usage of textual DSLs as easy as possible.
  • 13. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 13 Overview on DSL Definition DSL-Part Defined in Purpose Grammar EBNF-inspired Grammar language specify lexer, parser Validator Xtend * filter out non-intended input models; trigger error- markers in editor Scope definitions Xtend resolve cross-references Editor configurations (Overview pane, content assist/auto-completion, font-selection, tooltips, etc.) Xtend adjust editor features Code generator Xtend specify code generator Tests Xtend execute test cases for lexer, parser, validator, scope provider, editor, eclipse integration, etc. * Xtend - An extension of Java invented from Xtext-team in order to make typical programming tasks (e.g. AST traversion, code templates) much easier.
  • 14. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 14 More detailed DSL-Definition Workflow
  • 15. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 15 Example Project Beans
  • 16. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 16 A Simple Example: Beans -- Create an Xtext Project --
  • 17. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 17 A Simple Example: Beans -- Define the Grammar --
  • 18. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 18 A Simple Example: Beans -- Define the Grammar -- Header Start Rule Feature in generated EMF class Cross-reference Keyword Optional Occurence
  • 19. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 19 Xtext is build on top of the parser generator ANTLR. For the above grammar, much longer input files for ANTLR have been generated (299 LOC, 24 LOC). A Simple Example: Beans -- Define the Grammar -- Header Start Rule Feature in generated EMF class Cross-reference Keyword Optional Occurence The formalism for defining a grammar is a DSL! This DSL has been implemented by Xtext itself ;-)
  • 20. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 20 A Simple Example: Beans -- Testing the Parser using JUnit -- Pre-defined helper classes String templates (enclosed by ''' ) Extension method (actually defined in ParserHelper and not in String)
  • 21. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 21 A Simple Example: Beans -- Adding a Validator: Making the syntax more precise -- class BeansDslValidator extends AbstractBeansDslValidator { public static val INVALID_NAME = 'invalidName' @Check def checkBeannameStartsWithCapital(Bean bean) { if (!Character.isUpperCase(bean.name.charAt(0))) { error('Name must start with a capital', BeansDslPackage.Literals.BEAN__NAME, INVALID_NAME ) } } } Mark input text as erroneous under certain circumstances
  • 22. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 22 A Simple Example: Beans -- Testing the Validator using JUnit --
  • 23. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 23 A Simple Example: Beans -- Enjoy the Editor :-) -- Content assist (aka auto-completion) Grammar error (missing ';') Validation error (no capital letter)
  • 24. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 24 A Simple Example: Beans -- Specify a Code Generator using Xtend -- class BeansDslGenerator implements IGenerator { override void doGenerate(Resource resource, IFileSystemAccess fsa) { resource.allContents.toIterable.filter(typeof(Bean)).forEach[ fsa.generateFile('''beans/«name».java''', compile) ] } def compile(Bean bean) { ''' public class «bean.name» «IF bean.superType != null»extends «bean.superType.name» «EN «FOR att : bean.attributes» private «att.type.typeToString» «att.name»; «ENDFOR» «FOR att : bean.attributes» public «att.type.typeToString» get«att.name.toFirstUpper»() { return «att.name»; } public void set«att.name.toFirstUpper»(«att.type.typeToString» _arg) { this.«att.name» = _arg; } «ENDFOR» } '''} def typeToString(BasicType type) { if (type.literal.equals("string")) "String" else type} } Output written in .java file Each bean becomes a Java class Each bean attribute is mapped to Java attribute, getter- and setter- method
  • 25. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 25 A Simple Example: Beans -- Enjoy the Code Generator :-) -- One input file (written in our DSL) Location of generated artifacts Three output files (written in target language)
  • 26. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 26 A Simple Example: Beans -- Testing Code Generator using JUnit -- class BeansGeneratorTests { @Rule @Inject public TemporaryFolder temporaryFolder @Inject extension CompilationTestHelper @Inject extension ReflectExtensions @Test def void testTwoCompiledClasses() { ''' bean Person{string name;} bean Student extends Person{ boolean isMaster; studentID; // implicitely typed as int } } '''.compile [ getCompiledClass("Person").assertNotNull getCompiledClass("Student").assertNotNull ] } } both classes has been compiled successfully
  • 27. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 27 A Simple Example: Beans -- Testing Code Generator using JUnit -- @Test def void playWithGeneratedJavaCode() { ''' bean Person{string name;} bean Student extends Person{ boolean isMaster; studentID; // implicitely typed as int } } '''.compile [ getCompiledClass("Student").newInstance => [ assertNull(it.invoke("getName")) val aName = "Johnson" it.invoke("setName", aName) // invoking inherit method assertEquals(aName, it.invoke("getName")) val anInt = 1234 it.invoke("setStudentID", anInt) assertEquals(anInt, it.invoke("getStudentID")) ] ] } create instance of Student and invoke setter/getter by reflection
  • 28. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 28 Summary • Differences of domain-specific and general-purpose languages • Short overview on purpose and architecture of Xtext • Gone through small example (hopefully) showing the efficiency gain
  • 29. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 29 Summary • Differences of domain-specific and general-purpose languages • Short overview on purpose and architecture of Xtext • Gone through small example (hopefully) showing the efficiency gain Try it out by yourself! Xtext is very versatile and stable.
  • 30. T.Baar: NSU TechTalk, The framework Xtext. 2015-11-24 30 Thank you!
  • 31. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 1 How to write a PhD thesis in Germany Thomas Baar thomas.baar@ccfit.nsu.ru (temporary *) NSU Tech Talk; Akademgorodok, 2015-11-24 Guest Lecturer at: Home University: * My stay at Novosibirsk State University is supported by DAAD (German Academic Exchange Service).
  • 32. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 2 What do you like Germany for? Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons - https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg
  • 33. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 3 What do you like Germany for? Source of map: "Deutschland topo" by Botaurus-stellaris - Own work. Licensed under CC BY-SA 3.0 via Commons - https://commons.wikimedia.org/wiki/File:Deutschland_topo.jpg#/media/File:Deutschland_topo.jpg Cultural heritage (literature, music, architecture) Social welfare Innovative companies High-quality products („Made in (West-)Germany“) Efficiency German beer :-)
  • 34. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 4 Up-/Downsides of Efficiency
  • 35. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 5 Up-/Downsides of Efficiency Ups - high wages - cheap products/food - as a country: strong economic position (much more export than import)
  • 36. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 6 Up-/Downsides of Efficiency Ups - high wages - cheap products/food - as a country: strong economic position (much more export than import) Downs - high unemployment rate - expensive workplaces  do not call a craftsman ... - high pressure on employees  Diesel Gate at VW
  • 37. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 7 Efficiency also in Academia • Comparing Student/Employee ratio of - Hochschule für Technik und Wirtschaft (HTW) Berlin  University of Applied Sciences - Humboldt-University (HU) Berlin - Novosibirsk State University (NSU) 0 5000 10000 15000 20000 25000 30000 35000 HTW Berlin HU Berlin NSU Size of Universities Employees Students
  • 38. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 8 Efficiency also in Academia • Comparing Student/Employee ratio of - Hochschule für Technik und Wirtschaft (HTW) Berlin  University of Applied Sciences - Humboldt-University (HU) Berlin - Novosibirsk State University (NSU) 0 5 10 15 20 25 30 HTW Berlin HU Berlin NSU Students per Employee 0 5000 10000 15000 20000 25000 30000 35000 HTW Berlin HU Berlin NSU Size of Universities Employees Students
  • 39. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 9 Efficiency also in Academia • Comparing Student/Employee ratio of - Hochschule für Technik und Wirtschaft (HTW) Berlin  University of Applied Sciences - Humboldt-University (HU) Berlin - Novosibirsk State University (NSU) 0 5 10 15 20 25 30 HTW Berlin HU Berlin NSU Students per Employee 0 5000 10000 15000 20000 25000 30000 35000 HTW Berlin HU Berlin NSU Size of Universities Employees Students This is the paradise !!!
  • 40. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 10 My Career 1990-97 Study of Computer Science at HU Berlin 1997-99 Research Assistent at HU Berlin 1999 How to continue? Hard decision! 1999-03 Doctoral Student at University of Karlsruhe (today: KIT) 2003-07 Post-Doc, École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland 2007-11 Senior Engineer in small software company, Berlin 2011 -- Professor at HTW Berlin
  • 41. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 11 My Period of Writing PhD Thesis • 2 years preliminary research work at HU Berlin • my group in Karlsruhe - 2 professors - 2 post-docs - 4 phd students  funding from DFG (Deutsche Forschungsgemeinschaft): salary, equipement, travelling  basically no teaching obligations - appr. 5-10 student assistents
  • 42. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 12 My Period of Writing PhD Thesis • 2 years preliminary research work at HU Berlin • my group in Karlsruhe - 2 professors - 2 post-docs - 4 phd students  funding from DFG (Deutsche Forschungsgemeinschaft): salary, equipement, travelling  basically no teaching obligations - appr. 5-10 student assistents We have the worst PhD supervisor ever, because he does not supervise us!
  • 43. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 13 My Period of Writing PhD Thesis • 2 years preliminary research work at HU Berlin • my group in Karlsruhe - 2 professors - 2 post-docs - 4 phd students  funding from DFG (Deutsche Forschungsgemeinschaft): salary, equipement, travelling  basically no teaching obligations - appr. 5-10 student assistents We have the worst PhD supervisor ever, because he does not supervise us! We have the best PhD supervisor ever, because he does not supervise us!
  • 44. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 14 How to find open Research Position? • Ask your professor/supervisor here in Nsk - people meet at conferences/workshops and disseminate open positions • Go to www.academics.de - offers alert service - informative links
  • 45. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 15 Types of PhD Positions • assistent position at university (Landesstelle) + contract extension no problem - sometimes time-consuming teaching obligations • research position at university (e.g. DFG financed) + focus on research; no teaching - sometimes hard to get project extension • position at research institute (Fraunhofer, Leibniz) + working on industry problems - overloaded with work to reach next milestone • research position in industry (Daimler Benz, Siemens) + working on industry problems - no strong supervision; danger to become 'ordinary' project member
  • 46. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 16 Initiative for Academic Excellence • Initiated by chancellor Gerhard Schröder Idea: Universities and clusters can apply for special status "Place of Excellence" - selected universities get huge research money from Federal budget - highly competitive (only 5-10 universities got status) - only already renowned universities have chance to become successful Rational: Germany wants to "become better" in world- wide rankings
  • 47. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 17 Consequences of Excellence Initiative • currently a lot of money "in the system" • many interesting projects • a lot of open positions :-) - also due to the current very good job market  many talented graduates go to industry
  • 48. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 18 Consequences of Excellence Initiative • currently a lot of money "in the system" • many interesting projects • a lot of open positions :-) - also due to the current very good job market  many talented graduates go to industry !!! However !!! - still only non-permanent positions - becoming a professor after PhD project became even more difficult (due to many qualified colleages that completed PhD as well)
  • 49. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 19 Will I have enough money to survive? • as a PhD student: no fees to be paid
  • 50. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 20 Will I have enough money to survive? • as a PhD student: no fees to be paid • Salary usually according to Tv-L 13: currently 3500 € per month - from this appr. 50% reduction for taxes, health insurance, pension plan - !Attention! some research projects offer only 50% jobs  "officially" 50% workload, but for sure only 50% payment
  • 51. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 21 Will I have enough money to survive? • as a PhD student: no fees to be paid • Salary usually according to Tv-L 13: currently 3500 € per month - from this appr. 50% reduction for taxes, health insurance, pension plan - !Attention! some research projects offer only 50% jobs  "officially" 50% workload, but for sure only 50% payment • Some prices: - lunch in cafeteria: appr. 4 € - food from supermarket: appr. 150 € per month - 1-room flat in Berlin: from 400 € per month
  • 52. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 22 Final Recommendations • Do not worry about German language skills - helpful in private life, but not mandatory at university • my favourite position: research at university with professor having 3-4 PhD students • getting an 1-year-contract initially is rather normal • publications - do not wait too long with your first one - write only if you found out something worth to be told - also read books/articles on "How to write a good paper?/How to give a good talk?"
  • 53. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 23 Final Recommendations Prof. Tom Henzinger: „Strive always to be as good as you can!“ (when writing applications,writing papers, giving talks)
  • 54. T.Baar: NSU TechTalk, Writing a PhD Thesis in Germany. 2015-11-24 24 Thank you!