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

Report Computer Programming 2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Report Computer Programming 2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Print dated 5/11/2024 20:02

[146062] Computer Programming 2


General information
Course COMPUTER SCIENCES
Curriculum Computer Science
Course type Bachelor's degrees
Academic year 2024/2025
Year 1
Training activity type Core
Scope Information Technology
Language ENGLISH
CFU 6 CFU
Didactic Activity Type Lecture
Teaching period Second semester (from 24/02/2025 to 06/06/2025)
Holders MARCHESE MAURIZIO
Length 48 hours (48 hours Lecture)
Didactic method Convenzionale
Subject area INF/01
Location Polo di collina - Povo B - via Sommarive, 9

Course objectives and learning outcomes


The course aims to provide fundamental concepts characterizing object-oriented programming (OOP): class,
object, inheritance, polymorphism, information hiding, static and dynamic binding. Course attendance will
lead to the required competences to correctly structure a program using OOP, identifying and implementing
its constituent classes, using a basic UML representation that will be deepened in subsequent courses and
documenting the code. The language used will be mainly Java, but frequent references will be made to other
OOP languages, especially C ++.

Entrance requirement
Effective learning and the full achievement of the expected results will rely on prerequisites concerning
fundamental constructs of imperative programming, preferably in C language. It is required to be able to use
the control structures without difficulty, and to know how to write simple programs. A previous familiarity
with the concept of pointer would be preferable.

Università degli studi di Trento Pag. 1 / 4


Contents
Brief recap elements of structured programming in C/C++

- Functions and procedures

- In-memory representation: activation record, stack

- Dynamic memory allocation: heap

- Passing parameters by address

- Visibility area of the variables

- Arrays and data types

From structs to objects

- Principle of Parnas and information hiding

- Java: brief history and context

- Classes, objects, attributes and methods

- Primitive types and reference types; array

- Passing parameters

- Garbage collection

- Packages of common use

- Static attributes and methods

Inheritance and polymorphism

- Hierarchy of inheritance

- Overriding and overloading

- Constructors

- Abstract classes and methods

- Lickov substitution principle; polymorphism

- Static and dynamic binding

- Final clause; visibility modifiers

- Automatic conversions; type coercion

Interfaces

- Examples of interfaces and inheritance in the Java 2 API

- Insights into object-oriented programming

- Generics

- Collections
Università degli studi di Trento Pag. 2 / 4
- Equality, identity, comparison of objects

- Exceptions management

- Internal classes

- Basics of UML modeling

Use of an object-oriented library for the graphical interface

- Programming model

- Hierarchy of main classes

- Layout

- Event management

Teaching and learning methods and activities


• The course consists of frontal lectures held by the teacher, in which the theory is taught and applied to
various examples. In parallel, the student is fostered to actively participate, combining frontal presentations
and debates with other students.

• Computer laboratories are also a fundamental part of the course, to initiate students to use a development
environment (IDE). Students are strongly suggested to regularly follow the lessons and to apply them in
practice, through exercises, to be done at home, and practice techniques and notions learned.

• The teaching material is promptly published in the Moodle area available for students and examples of
previous exams will be downloadable.

Test and assessment criteria


The exam consists of a written test lasting about 45 minutes followed by a practical test on the computer
lasting about 4 hours. The written test involves the analysis of short code snippets, to determine the output or
any errors, and answers to true/false questions. A typical exam consists of 8 code fragments and 8 questions.
Passing the written test, which is evaluated immediately, is a prerequisite for admission to the practical test.
This consists in writing a Java program corresponding to specific requirements. The final grade of the exam
is obtained by the average of the marks obtained in the written test and in the practical computer test.

The use of calculators or any personal electronic device is not allowed during the exams. During the written
test the use of any paper material such as books, forms, or notes is not allowed. On the contrary, they are
admitted during the practical test, during which students can consult any personal paper material; API and
any other electronic material mentioned in class will be available on the PC on which the exam takes place,
together with a copy of the slides and other electronic material made available on Moodle. The examination
procedures will in any case be communicated in detail both verbally during the course and on the website.

Bibliography/Study materials
The material will be made available online in the dedicated area on Moodle.

For those who want to deepen the topic, the following texts are recommended, but are however not essential
for those regularly following the lessons:

- Bruce Eckel, “Thinking in Java”, Pearson Editor

- Cay Horstmann, ”Core Java Volume 1: Fundamentals,” 12a ed., Oracle

Università degli studi di Trento Pag. 3 / 4


Other information
The course will be taught in English

Università degli studi di Trento Pag. 4 / 4

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy