Salta al contenuto principale della pagina

INTRODUCTION TO IMPERATIVE PROGRAMMING

CODE 52473
ACADEMIC YEAR 2022/2023
CREDITS
  • 8 cfu during the 1st year of 8760 MATEMATICA (L-35) - GENOVA
  • 8 cfu during the 1st year of 8766 STATISTICA MATEM. E TRATTAM. INFORMATICO DEI DATI (L-35) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR INF/01
    LANGUAGE Italian
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 2° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    The purpose of the course is to provide the tools to imperative programming through the introduction of high-level languages. We will introduce MatLab and a subset of the C++ programming language.

    AIMS AND CONTENT

    LEARNING OUTCOMES

    Introduction to programming languages through the construction of simple algorithms in C ++.

    AIMS AND LEARNING OUTCOMES

    This course will provide some necessary basic notions about computer architecture, data representation, operating system.
    It will introduce the notions of algorithm and program, high-level programming language and execution models (compiled or interpreted languages).
    It will present the basic concepts and features of programming in a high-level imperative language (variables, statements, instructions for controlling the execution flow).
    It will provide the guide lines for the design of small-size programs solving a simple problem and for testing them.

    The considered examples of high-level languages will be:

    • In the first part of the course (about two weeks) we will present MATLAB, an environment for the numerical calculation and statistical analysis, having the features of a programming language.
    • The majority of the course will be devoted to (the impeative subset of) the C++ programming language.

    After attending this course, the student will:

    • know the features of a high-level imperative programming language.
    • be able to develop an algorithm and to translate it into a C++ program (for simple algorithms / small programs).
    • be able to recognize the typical concepts and features of imperative languages in other languages similar to C++, and will therefore be able to learn new languages of the same family.
    • be able to use the MatLab environment to solve mathematical problems, as the ones encountered in other courses of their study plan.

    PREREQUISITES

    None.

    TEACHING METHODS

    The course provides 3 hours of lessons in the classroom and 4 hours of lab per week.

    SYLLABUS/CONTENT

    1. Basics about computers: data representation and arithmetic processors; Computer architecture hints and operating systems for the execution basic understanding of programs.
    2.  Introduction to Programming: the high-level programming languages; state and change of state; statements and basic instructions;  basic and structured types;; simple algorithms and their implementation; structured and modular programming.
    3. Programming: design of sequential size programs starting from the informal specification of the problem; compilation; code execution; basic ideas of testing.

    The considered examples of high-level languages will be MATLAB and the imperative subset of the C++ programming language.

    RECOMMENDED READING/BIBLIOGRAPHY

    Course notes.

    Other useful books:

    Programming Principles and Practice using C++, Addison-Wesley Professional, 2008
    C++. Fondamenti di programmazione -- H. M. Deitel, P. J. Deitel; Editore: Apogeo 2009
    Che C serve? Per iniziare a programmare -- Burattini, Chianese, Picariello, Moscato, Sansone; Maggioli editore 2016.

    TEACHERS AND EXAM BOARD

    Exam Board

    PAOLA MAGILLO (President)

    MATTEO DELL'AMICO

    NICOLETTA NOCETI (President Substitute)

    LESSONS

    LESSONS START

    The class will start according to the academic calendar.

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    The final exam consists of:

    • a written test  (questions using Aulaweb) (maximum grade 31)
    • a laboratory test, consisting in writing a C ++ program (maximum grade 31).

    It is not necessary that the two tests are passed in the same session.

    The exam is passed when the written test  (with Rate> = 18) and laboratory (with Rate> = 18) are passed. The final grade will be the average of the two votes, plus an extra of 2 points (depending on laboratory exercises). Who will obtain a final grade> = 31, will get "30 e lode".

    ASSESSMENT METHODS

    The written examination will want to evaluate the acquisition of basic concepts presented during the course.

    The  laboratory test wants to evaluate the ability to produce the C ++ code running to solve small problems, and consists of completing a "template" program that will be provided as a file with the extension .cpp. The file will be included guide on what you need to enter, and on the evaluation of the different parties. It will also be provided an input to test it with the results expected for each part. Deliveries will be evaluated taking into account the following aspects in order of decreasing importance:

    1. code  running and producing  correct numeric results (minimum requirement)
    2. style and readability of the code
    3. calculation efficient

    Exam schedule

    Date Time Location Type Notes
    18/01/2023 09:00 GENOVA Scritto riservato agli studenti iscritti a.a.2021/2022 e anni accademici precedenti
    19/01/2023 09:00 GENOVA Laboratorio riservato agli studenti iscritti a.a.2021/2022 e anni accademici precedenti
    09/02/2023 09:00 GENOVA Scritto riservato agli studenti iscritti a.a.2021/2022 e anni accademici precedenti
    10/02/2023 09:00 GENOVA Laboratorio riservato agli studenti iscritti a.a.2021/2022 e anni accademici precedenti
    12/06/2023 09:00 GENOVA Scritto
    14/06/2023 09:00 GENOVA Laboratorio
    07/07/2023 09:00 GENOVA Scritto
    10/07/2023 09:00 GENOVA Laboratorio
    07/09/2023 09:00 GENOVA Scritto
    08/09/2023 09:00 GENOVA Laboratorio

    FURTHER INFORMATION

    Prerequisites:

    No prerequisite is required.  Basics of logic and mathematics normally provided by the high school are still useful.