0% found this document useful (0 votes)
32 views

00 Introduction

The document provides information about the organization and structure of the Programming Fundamentals 2 course. Classes are scheduled on Tuesdays from 8:00-9:30, with labs held in two groups on Thursdays and Fridays from 8:00-9:30 and 9:45-11:15. The first lab is on the first Thursday of the semester. The final evaluation consists of a practical mid-term exam worth 40% and a written exam worth 60%. Python and Swift will be the main programming languages covered. Recommended resources include books, websites, and e-books available through the university library.

Uploaded by

Nour Nourin
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

00 Introduction

The document provides information about the organization and structure of the Programming Fundamentals 2 course. Classes are scheduled on Tuesdays from 8:00-9:30, with labs held in two groups on Thursdays and Fridays from 8:00-9:30 and 9:45-11:15. The first lab is on the first Thursday of the semester. The final evaluation consists of a practical mid-term exam worth 40% and a written exam worth 60%. Python and Swift will be the main programming languages covered. Recommended resources include books, websites, and e-books available through the university library.

Uploaded by

Nour Nourin
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

0

PROGRAMMING FUNDAMENTALS 2

Introduction

CHAPTER
steffen.rothkugel

How is the lecture organised?

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

Organisation in the First Week


The final evaluation is composed of two parts: a practical mid-term exam, counting for 40% of the final
mark, plus a written exam counting for the remaining 60%.

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.

Students will learn the fundamental concepts of object-


orientation, and how to apply them for designing and
implementing applications of average complexity.

The Official Course Description

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.

An extremely small subset of popular


Object-Oriented Languages

In this class, we will mainly focus on Python and Swift, while including examples from some other

&
languages for illustration purposes.

Main Focus in this Lecture


As of February 2018, according to the PYPL Popularity of Programming Language index, Python is
ranked the second most popular language, only by a very small margin compared to the top: Java.
Swift can be found “only” on rank 9. However, compared to its short history, Swift appears to be a
noteworthy contender of some pretty well-known and prevalent languages.
Please note PYPL takes Google Trends as its primary source. After all, the information should not be
considered authoritative.

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.

Object-Oriented Analysis and Design with Applications,


3rd edition, Grady Booch et al., Addison-Wesley,
ISBN 978-0201895513
Your BUL library card gives you access to quite a number of resources. One entry-point to get access
to those resources is via the a-z.lu portal. This includes, but of course is not limited to, a large set of e-
books.

Many Resources available via BUL Library Card

You may want to check out the online version of this book on Safari ProQuest: http://
proquestcombo.safaribooksonline.com.proxy.bnl.lu/9780201895513.

E-book available free of charge on Safari ProQuest


Touch of Class is an excellent book about object-orientation. Its author, Bertrand Meyer, is the designer
of the Eiffel programming language. One of the central concepts is known as design by contract. The
primary goal is to increase the reliability of software right from the start, already in the early software
development phases. Although the Eiffel language is very interesting and important from an academic
point of view, its commercial impact is rather low.

Touch of Class: Learning to Program Well with Objects


and Contracts, 1st edition, Bertrand Meyer, Springer,
ISBN 978-3540921448

This title is available from Springer Link: https://link-springer-com.proxy.bnl.lu/book/


10.1007%2F978-3-540-92145-5.

E-book available free of charge on Springer Link


Here’s a book from the Head First series, covering object-orientation. According to its synopsis, “the
authors have made the content of OOAD accessible, usable for the practitioner”.

Head First Object-Oriented Analysis and Design, Brett


McLaughlin et al., O'Reilly Media, ISBN 978-0596008673

This book is also available from Safari ProQuest: http://


proquestcombo.safaribooksonline.com.proxy.bnl.lu/0596008678.

E-book available free of charge on Safari ProQuest


Some resources for Python …

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.

E-book available free of charge on Safari ProQuest

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.

E-book available free of charge on Safari ProQuest


Some resources for Swift …

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.

Ubuntu VirtualBox Image

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.

The Swift Programming Language


The same title is also available from within iBooks: https://itunes.apple.com/us/book/the-swift-
programming-language/id881256329?mt=11.

The Swift Programming Language

You might also like