Taught by Prof. Pietro Cenciarelli in the a.y. 22/23
-
Introduction to Object-Oriented Programming The Java language
-
Algebra and abstract data types. Classes and objects. Encapsulation
-
Polymorphism (part one): extending classes and inheritance
-
Abstract classes and interfaces
-
Packages. Access modifiers and scoping rules
-
Nested classes. Anonymous classes. Lambda expressions
-
Polymorphism (part two): Generics. Generic type hierarchy
-
Threads and process synchronization. Deadlock and starvation
-
Design patterns: creational, structural, behavioral, concurrency (Optional)
Keep in mind: The notes are not by each lecture, instead, they focus on concepts.
Feel free to contact me (Nil) on any platform if there's something wrong, missing, or if you have any suggestions so that I can fix it for future students.
Please be aware that the oral examination for this course is highly dynamic, and the questions can vary significantly from year to year. While the sample questions provided here can offer some guidance, it's essential to be prepared for a wide range of topics and formats, which also includes presenting your project (if you have one).
## Lessons' structure
Lesson | Topics | Files |
---|---|---|
01 |
|
HelloWorld.java
Sum.java
|
02 |
|
Counter.java
Lesson02_Main.java
Static.java
|
03 |
|
ArrayStack.java
ArrayStack2.java
EmptyStackException.java
Encapsulation.java
FullStackException.java
Lesson03_Main.java
|
04 |
|
EmptyStackException.java
IntList.java
Lesson04_Main.java
ListStack.java
|
05 |
|
FirstClass.java
Lesson05_Main.java
SecondClass.java
|
06 |
|
Lesson06_Main
|
|
Package01
|
|
|
Package02
|
|
|
Package03
|
|
|
Package04
|
|
07 |
|
Benchmark.java
Children.java
ConcreteBenchmark.java
Lesson07_Main.java
|
08 |
|
Clash.java
Interface1.java
Interface2.java
Lesson08_Main.java
ReverseStack.java
Stack.java
State.java
TestLocalClasses.java
|
09 |
|
GenericIdentity.java
GenericList.java
IntList.java
Lesson09_Main.java
|
10 |
|
ClassOne.java
ClassTwo.java
ClassThree.java
Generics.java
GenericsOne.java
GenericsTwo.java
Lesson10_Main.java
WildcardTest.java
|
11 |
|
Closures.java
Functio.java
FunctioTest.java
LambdaTest.java
Lesson11_Main.java
MyReadable.java
Readable.java
TestAnonymous.java
|
12 |
|
CompulsiveWordPrinter.java
Lesson12_Main.java
SleepyWordPrinter.java
ThreadTest.java
WordPrinter.java
|
13 |
|
ArrayStack.java
AThreadMess.java
DeadLock.java
DeadManWarning.java
Lesson13_Main.java
NamedThread.java
NamePrinter.java
Popper.java
TestPrinter.java
|
14 |
|
BadStackImplementation.java
GoodStackImplementation.java
Lesson14_Main.java
Popper.java
Pusher.java
Stack.java
TestStack.java
YesWeCan.java
|