BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20260808T143152Z
UID:1f0b531b-9216-450e-8450-2335fb5975ae
DTSTART:20180227T090000Z
DTEND:20180228T163000Z
DESCRIPTION:Object-Oriented Programming with Fortran\n\nThis course provide
 s an introduction to Object-Oriented Programming (OOP) with Fortran. Fortr
 an is often used for scientific applications\, but applications are mainly
  developed using the standard procedural programming techniques that Fortr
 an was initially designed for.\n\nOOP is a programming methodology designe
 d to enable safe and reusable programming\, coupling procedures with the d
 ata they operate on in classes and using them as objects. More commonly as
 sociated with large programs\, and programs written in industry/companies\
 , there are many scientific applications that become very large and long-l
 ived and therefore could benefit from such programming techniques to make 
 development\, maintenance\, and extension of the code simpler and safer.\n
 \nWhilst Fortran is generally viewed as a procedural programming language 
 there are features in the most recent versions of the Fortran standards (9
 0\, 95\, and 2003) that enable development in OOP or OOP-like ways. We wil
 l introduce these language features and discuss/explore how they can be us
 ed in scientific applications.\n\nFamiliarity with a Unix or Linux environ
 ment is assumed\, and some experience with Fortran is advisable for gettin
 g the most out of the course material.\n\n \n\nTrainer\n\nAdrian Jackson\
 nAdrian Jackson is a Research Architect at EPCC\, where he works on a rang
 e of different research\, from investigating new memory hardware and progr
 amming models\, to optimising and porting parallel codes\, and working wit
 h application scientists to enable their computational simulation or data 
 analysis. He also teaches on EPCC's MSc in HPC\, giving lectures on Progra
 mming Skills\, HPC Architecture\, and Performance Programming.\n\n \n\nDe
 tails\n\nTopics include: object-oriented programming\, fortran modules\, d
 atatypes\, polymorphic variables and procedures\, constructors and destruc
 tors\, and inheritance.\n\nIntended learning outcomes\n\nOn completion of 
 this course students should be able to:\n\nDevelop modularised Fortran pro
 grams.\n	Define new datatypes and operators in Fortran.\n	Understand basic
  OO concepts and strategies.\n	Develop OO programs in Fortran.\n	Compile a
 nd run Fortran programs on ARCHER.\n	Understand basic design trade-offs fo
 r OOP in Fortran.\nPrerequisites\n\nWhilst there are no prerequisites for 
 this course\, a familiarity with a Unix or Linux environment is assumed an
 d to fully benefit from the course some familiarity with Fortran programmi
 ng would be beneficial.\n\nTimetable\n\nDetails are subject to change\, bu
 t start\, end and break times will stay the same.\n\nDay 1\n\n09:30 Introd
 uction to Fortran\n	10:15 PRACTICAL: Fortran programming\n	11:00 BREAK\n	1
 1:30 Introduction to Object Oriented Programming\n	12:00 PRACTICAL: Design
 ing an object oriented program\n	12:15 Modules\n	13:00 BREAK: Lunch\n	14:0
 0 PRACTICAL: Modules\n	14:30 Derived types and operators\n	15.00 PRACTICAL
 : Derived types\n	15:30 BREAK\n	16:00 PRACTICAL: Continuing practicals\n	1
 6:30 CLOSE\nDay 2\n\n09:30 Classes and data visibility\n	10:15 PRACTICAL: 
 Fortran classes\n	11:15 BREAK\n	11:45 Inheritance and overloading\n	12.30 
 PRACTICAL: Generic classes and extensions\n	13.00 BREAK: Lunch\n	14.00 Des
 ign and performance considerations\n	14.45 PRACTICAL: Continuing practical
 s\n	15:15 BREAK\n	15:45 Further features\n	16:15 Summary\n	16:30 CLOSE\nCo
 urse Materials\n\nSlides and exercise material for this course are availab
 le here.\n\nhttps://events.prace-ri.eu/event/714/
SUMMARY:Object-Oriented Programming with Fortran @ EPCC at STFC Daresbury
URL;VALUE=URI:https://events.prace-ri.eu/event/714/
END:VEVENT
END:VCALENDAR
