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