You are on page 1of 18

Relationship with other courses

LPO LPO
IP IP
ASD ASD
LT1 LT1
LT2 LT2
LT3 LT3
LM LM
Imperative programming
in the small
Object-oriente an !"nctional
programming
TAP TAP
#omponent-base programming
P#AD P#AD
#onc"rrent programming
PP PP
So!t$are libraries constr"ction
PIPL PIPL
ISML ISML
Logic programming
Lang"age implementation
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 1 / 15
Objectives
Learning the object-oriented and functional programming methodology,
both at the conceptual and practical level
Getting acquainted with object-oriented design and programming
patterns
Acquiring some basic concepts for designing and implementing a
programming language
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 2 / 15
Motivations
Importance of software productivity, reuse and maintenance
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
What is the best programming language?

The question hardly makes sense in general

many considerations play an important role in the choice of the language

application domain, project requirements, developers skills, software


integration, compatibility issues, market requests, etc.
Importance of mastering different computational models, several
languages are in fact multi-paradigm
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
What is the best programming language?

The question hardly makes sense in general

many considerations play an important role in the choice of the language

application domain, project requirements, developers skills, software


integration, compatibility issues, market requests, etc.
Importance of mastering different computational models, several
languages are in fact multi-paradigm
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
What is the best programming language?

The question hardly makes sense in general

many considerations play an important role in the choice of the language

application domain, project requirements, developers skills, software


integration, compatibility issues, market requests, etc.
Importance of mastering different computational models, several
languages are in fact multi-paradigm
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
What is the best programming language?

The question hardly makes sense in general

many considerations play an important role in the choice of the language

application domain, project requirements, developers skills, software


integration, compatibility issues, market requests, etc.
Importance of mastering different computational models, several
languages are in fact multi-paradigm
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
What is the best programming language?

The question hardly makes sense in general

many considerations play an important role in the choice of the language

application domain, project requirements, developers skills, software


integration, compatibility issues, market requests, etc.
Importance of mastering different computational models, several
languages are in fact multi-paradigm
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
Compilers and interpreters are very basic tools: every computer
professional and graduate in computer science/engineering should have
an idea of how they are designed and implemented
Domain specic languages (DSL) enhance software productivity, but
require skills in programming language implementation to be developed
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
Compilers and interpreters are very basic tools: every computer
professional and graduate in computer science/engineering should have
an idea of how they are designed and implemented
Domain specic languages (DSL) enhance software productivity, but
require skills in programming language implementation to be developed
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Motivations
The majority of mainstream languages are object-oriented
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 3 / 15
Exams
Written + oral test
Individual Java project
Written test: 5 exams, but no more than 3 tries
Partial scores frozen only for the current academic year
All rules available on AulaWeb
Requirements (propedeuticit ` a): IP and ASD exams already passed
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 4 / 15
Exams (ow chart)
written test
0 <= wtScore <= 33
wtScore < 15 or
not accepted
15 <= wtScore <= 33
and accepted
max 3 times per a.y.
oral test
0 <= otScore <= 33
score =
round((wtScore+otScore)/2)
a!a pro"ect
0 <= "pScore <= 33
#inalScore =
round(("pScore+score)/2)
"pScore < 1$ or
not accepted
1$ <= "pScore <= 33
and accepted
score < 1$ or
not accepted%
1$ <= score <= 33
and accepted
%&nsu##icient
or not accepted
mar's are re(istered
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 5 / 15
Aulaweb
It is important to enroll the AulaWeb course (no keyword is required)
What is used for?
a read-only forum for news, a forum for posting questions
useful material: slides, links, suggested readings, code, lab exercises, ...
on line exams registration
possibly other kinds of activities
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 6 / 15
Schedule
Monday Tuesday Wednesday Thursday Friday
9-10 LPO
10-11 LPO
11-12 LPO LPO lab
(SW1)
LPO
12-13 LPO LPO lab
(SW1)
LPO
13-14
14-1
1-1!
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 7 / 15
Lab
rst lab after 1 or 2 weeks
8 Java labs, 1 or 2 OCaml labs
applications: JDK (Java Development Kit), OCaml interpreter, Eclipse. All
available for Linux and Windows
Eclipse will be used only for Java, and for the more advanced labs
Important: practicing regularly and actively Java labs helps a lot for
developing the nal project!
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 8 / 15
Suggested readings
Slides do not sufce for a good knowledge of the subject!
Basic
D. Ancona, G. Lagorio, and E. Zucca. Linguaggi di Programmazione. Citt ` a Studi Edizioni.
K. Arnold, J. Gosling, and D. Holmes. The Java Programming Language, Fourth Edition,
Prentice Hall.
E. Chailloux, P. Manoury, and B. Pagano. Developing Applications With Objective Caml.
(freely available on the Web)
Advanced
J. Bloch. Effective Java (2nd Edition). Prentice Hall.
E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable
Object-Oriented Software. Addison-Wesley.
Technical (useful for consultation only)
J. Gosling, B. Joy, G. Steele, G. Bracha, A. Buckley. The Java Language Specication (Java
SE 8 Edition). Oracle. (freely available on the Web)
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 9 / 15
Students present themselves
Please submit the short AulaWeb feedback
D. Ancona, G. Lagorio (DIBRIS) LPO 2014-15 10 / 15

You might also like