Unit COMPUTER SCIENCE BASIS AND LAB

Course
Computer science and electronic engineering
Study-unit Code
70A00085
Curriculum
In all curricula
Teacher
Emilio Di Giacomo
Teachers
  • Emilio Di Giacomo
Hours
  • 90 ore - Emilio Di Giacomo
CFU
9
Course Regulation
Coorte 2021
Offered
2021/22
Learning activities
Base
Area
Matematica, informatica e statistica
Academic discipline
ING-INF/05
Type of study-unit
Obbligatorio (Required)
Type of learning activities
Attività formativa monodisciplinare
Language of instruction
Italian
Contents
PRELIMINARIES

IMPERATIVE PROGRAMMING (C LANGUAGE)

OBJECT ORIENTED PROGRAMMING (Java Language)

RECURSION

ADVANCED TOPICS IN JAVA
Reference texts
E. Di Giacomo, W. Didimo "Fondamenti di Informatica in Java" Maggioli Editore

Deitel & Deitel "Il linguaggio C, fondamenti e tecniche di programmazione", Pearson
Educational objectives
This is the first course of informatics and gives to the students the basic notion of this discipline. The objective of the first part of the course is to teach the basic elements of programming. Both the imperative programming, with the C language, and the object oriented programming, with the Java language, are introduced. Next, the recursion is introduced. Finally, some advanced topics of the Java language are introduced: nested classes, generics, enum, exceptions and i/O streams.

At the end of the course students are expected to have the following knowledges:

- knowledge of the binary representations of the information (coding of integers, coding of reals with floating point, coding of characters)

- knowledge of basic concepts of programming (data type, variable, parameter, control structures, arrays)

- knowledge of basic concepts of object oriented programming (class, object, inheritance, polymorphism)

At the end of the course students are expected to have the following abilities:

- ability of programming using the basic C elements

- ability of programming using the basic Java elements

- ability of using recursion

- ability of using the advanced elements of the Java language
Prerequisites
No specific preliminary knowledge is assumed other than the basic arithmetic.
Teaching methods
The course is organized as follows:

1- Lectures (54 hours, 6CFU) during which the various subjects of the course are explained and some excercises are done in order to help the understanding of the explained subjects and as a training for the exam.

2- Practical activity in the computer lab (36 hours, 3CFU). Students, helped by the teacher, write programs on the computer thus applying the concepts that they learned during the lectures. These lab activities are also useful as a training for the practical test during the exam.
Other information

Learning verification modality
The exams consists of:

a written test

Duration:120 minutes
Score: 30/30
Objective: evaluate the student's knowledge of the theoretical concepts taught in the course and his/her ability to understand and to use the statements and the concepts of the Java programming lamnguage taught during the course.

a practical test with the computer

Duration: 120 minutes
Score: 30/30
Objective: evaluate the student's ability of writing simple Java programs, typically consisting of a couple of classes.

The final score is the average of the scores of the two tests. The exam is passed if both the scores are at least 18/30. The results of the two tests are presented to the student during a short colloquium where the student and the teacher discuss the content of the two tests and the evaluation given by the teacher.
Extended program
PRELIMINARIES

+ Computer architecture

+ Information representation

+ Algorithms, Languages and Programs

- Problems and algorithms
- Languages and problems

IMPERATIVE PROGRAMMING (C LANGUAGE)

+ The C language

+ Data types, variables and expressions

+ Control flow statement

+ Functions

+ Arrays and Pointers

+ Characters and String

+ Input and output

+ Struct, union, and enum

+ Files in C

OBJECT ORIENTED PROGRAMMING (Java Language)

+ Object oriented programming

+ Data types, variables and expressions

+ Class realization

+ Control flow statement

+ Arrays

+ Inheritance and Polymorphism

RECURSION

+ Stack and activation frames

+ Recursion

+ Recursive types

+ Recursion and iteration

ADVANCED TOPICS IN JAVA

+ Nested classes

+ Generics

+ Java Collection Framework

+ Enum

+ Exceptions

+ Input/Output Streams
Condividi su