00 Introduction
00 Introduction
PROGRAMMING FUNDAMENTALS 2
Introduction
CHAPTER
steffen.rothkugel
Organisation
Tuesday Thursday Friday
Classes are scheduled on Tuesday between 8:00 and 9:30. Practical labs are scheduled in two
groups, one group on Thursday between 8:00 and 9:30, and the second group on Friday between 9:45
and 11:15. Benjamin JAHIC and Antonio FISCARELLI are in charge of the lab sessions.
9:45-11:15
8:00-9:30
8:00-9:30
Class Lab Lab
Organisation
Tuesday Thursday
The very first lab session, in the first week of the semester, is scheduled on Thursday Feb 22, from
8:00 to 9:30. The two groups will be defined in this session.
8:00-9:30
8:00-9:30
Class Lab
practical
40 % mid-term
exam
written 60 %
exam
Evaluation
Let’s begin with a short motivation. What’s the objective of this lecture? Why should you care (aside
from simply trying to pass)?
Motivation
Here’s the official course description …
Building upon the basic skills acquired in Programming
Fundamentals 1, this course covers the object-oriented
programming paradigm, both at a theoretical as well as at
a practical level.
We will follow a hands-on approach, mixing theoretical concepts discussed during the lectures with
many live examples as part of the classes—actually very similar to learning a spoken language.
Hands-On Approach
There are many object-oriented programming languages. Some popular examples, in alphabetical
order, include C#, Java, Python and Swift.
In this class, we will mainly focus on Python and Swift, while including examples from some other
&
languages for illustration purposes.
Some important resources relevant for the entire course. Please pay attention to additional resources
given in individual chapters.
Resources
A Scrapbook is employed to publish the entire material of this lecture, available at the address shown.
It will particularly contain all examples discussed in the class, in a commented form. Additional links
are included for reference purposes and further study.
https://coast.uni.lu/teaching/pf2/scrapbook
When it comes to object-oriented concepts, which represents a major ingredient of this lecture, many
books are available. Object-Oriented Analysis and Design with Applications can be highly
recommended. However, please note that this book covers quite a bit more ground than what we will
be able to discuss in this class.
You may want to check out the online version of this book on Safari ProQuest: http://
proquestcombo.safaribooksonline.com.proxy.bnl.lu/9780201895513.
The official Python Website represents a very good starting point for learning the Python programming
language.
https://python.org
Python is available on a large variety of platform, including, but not limited to, Linux, macOS and
Windows.
https://python.org/downloads
PyCharm is an excellent IDE for Python. The community edition is available free of charge for Linux,
macOS and Windows.
https://www.jetbrains.com/pycharm/
Learning Python provides a comprehensive introduction to the Python programming language. The
book is available electronically from Safari ProQuest: http://
proquestcombo.safaribooksonline.com.proxy.bnl.lu/9781449355722.
Python in a Nutshell, more tailored for those who already have some experience in Python, is as well
available from Safari ProQuest: http://proquestcombo.safaribooksonline.com.proxy.bnl.lu/
9781491913833.
Swift.org in turn provides many resources related to the Swift programming language.
https://swift.org
On macOS, Xcode provides extensive support for Swift development. Xcode is available free of charge
from the App Store.
The Swift playgrounds we will use throughout the classes will also work on iPad …
… allowing to interactively play with the code examples.
Swift development snapshots are available for download on swift.org. Jetbrains offers dedicated
support for Swift via a plugin for their CLion IDE.
Linux
A preconfigured VirtualBox image of an Ubuntu-Linux is available for download from the Moodle
course page. You’ll find the following software preinstalled: the Swift Development Snapshot, CLion
with Swift plugin, the Python runtime, and the PyCharm IDE. Please note you need an active VPN
connection to be able to access the Jetbrains license server for running CLion and PyCharm.
As for the official documentation, The Swift Programming Language is available online here: https://
developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/
index.html.