Students
مصاريف
تاريخ البدء
2026-02-23
وسيلة الدراسة
داخل الحرم الجامعي
مدة
حقائق البرنامج
تفاصيل البرنامج
درجة
درجة البكالوريوس
تخصص رئيسي
Computer Programming | Data Analysis | Software Development
التخصص
علوم الكمبيوتر وتكنولوجيا المعلومات | لسانيات
نوع التعليم
داخل الحرم الجامعي
لغة الدورة
إنجليزي
دفعات
تاريخ بدء البرنامجآخر موعد للتسجيل
2026-02-23-
عن البرنامج

نظرة عامة على البرنامج


Introduction to Imperative Programming

Course Overview

The course will provide the basic notions and tools of imperative programming, by introducing high-level languages. In the career of the students, knowing the basics of programming and a "general-purpose" programming language will enable them to easily learn the specialized languages of the mathematical and statistical domain, which will be used in later teaching.


Aims and Content

Learning Outcomes

  • We introduce to programming and programming languages, in particular to the imperative programming paradigm, using a reference language.
  • We will provide basic knowledge and technical skills for designing simple algorithms to solve small problems, and for designing, writing and validating simple programs starting from informal specifications of the task to be performed.
  • The acquired notions and abilities will also be useful for learning other programming languages in the future.

Aims and Learning Outcomes

The 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 languages and execution modes. It will present the basic concepts and constructs of high-level imperative programming (variables, statements, flow-control instructions, functions), using a reference imperative language as a case study. It will provide the guidelines for the design of small-size programs solving a simple problem and for testing them.
After attending the course, the student will:


  • know the basic concepts about how programs are executed in a computer (data representation, high level languages and machine language, file system, etc.)
  • know the basic features of a high-level imperative programming language.
  • be able to use simple tools for developing computer programs (text editor, command-line compilation and execution)
  • be able to develop simple algorithms and to write small programs, starting from informal specifications
  • be able to understand, using and modifying programs written by other people

Prerequisites

There are no specific requirements.


Teaching Methods

The course takes place in the second semester. There will be 3 classroom hours and 4 laboratory hours per week. Classroom lessons and laboratories are strictly coordinated, so that the students can experience an immediate application of the theory. Attending the laboratory hours is not mandatory, but it is strongly recommended. The programming practice is necessary to acquire the capabilities in writing and testing code. The students will also receive instructions to install the necessary software packages on their PCs. The laboratory work will be carried on in small groups (of 2-3 students). Working students, or students that for other reasons do not attend the classes, will be allowed to work on their own. Every week some laboratory exercises will be given, which require writing small programs. The students will have the opportunity to deliver some of such exercises (not evaluated for the exam) and obtain useful feedback. In some weeks, recap exercises will be assigned. If delivered, such recap exercises will be evaluated and will gain marks for the final exam.


Syllabus/Content

  • Basic notions about computers: data representation and arithmetic processors; hints about computer architecture and operating systems, limited to the basic notions for understanding how programs are executed.
  • High-level programming languages: source code and compilers. Algorithm, pseudocode, program. Imperative programming languages: state (represented by variables and their values) and state changes (performed by executing the instructions).
  • Basic features of imperative languages: types, expressions, variables, declarations; assignments, flow-control instructions (conditionals, cycles), functions and procedures; structured and modular programming.
  • Programming in the small: design of simple algorithms and small sequential programs starting from the informal specification of the problem.
  • Practical tools for writing, compiling, executing programs; basic guidelines for testing.

Recommended Reading/Bibliography

The teaching material will be made available, including lesson slides, links to on-line resources about the used programming language (manuals and tutorials), laboratory exercises, corrections of the delivered exercises, etc. In general, the notes taken by the students during the lessons and the material, together with the necessary laboratory work, are sufficient to prepare the exam. As additional material, the student can use the following books, as well as other books or on-line resources which provide an introduction to programming:


  • Programming Principles and Practice using C++. B.Stroustrup.
  • C++. Fondamenti di programmazione. H.M.Deitel, P.J.Deitel.
  • Che C serve? Per iniziare a programmare. Burattini, Chianese, Picariello, Moscato, Sansone.

Teachers and Exam Board

  • PAOLA MAGILLO
  • MATTEO DELL'AMICO

Exam Board

  • PAOLA MAGILLO (President)

Lessons

Lessons Start

The lessons will start on February 23, 2026.


Class Schedule

The timetable for this course is available.


Exams

Exam Description

The final exam consists of two mandatory parts:


  • Quiz test about the contents of the course.
  • Laboratory test, that will require writing code in the reference programming language.

Both tests will be graded with marks in the range from 0 to 30. In order to pass the exam, it is necessary to get at least 18 in each of the two tests. The overall grade will be the average of the two marks.
By delivering the recap exercises during the semester, the student can get up to 2 marks, that will be added to the above average. The result, rounded to an integer number, will be the final grade of the exam.
The two tests can be passed in different exam sessions. The sufficient grade of a test will remain valid until the last exam session of the academic year.
If the student repeats a test, the new grade replaces the previous one.


Assessment Methods

The quiz test will evaluate the knowledge of basic concepts presented during the course, of the basic constructs of imperative languages and their correct use, the ability of understanding given program code and of writing correct code for a given purpose. The laboratory test will evaluate the ability to develop algorithms for solving simple problems, translate them into the programming language, and generate computer programs with the expected behavior.


Exam Schedule

  • 15/01/2026: 09:00, Written Exam
  • 16/01/2026: 09:00, Laboratory Exam
  • 04/02/2026: 09:00, Written Exam
  • 06/02/2026: 09:00, Laboratory Exam
  • 18/06/2026: 09:00, Written Exam
  • 22/06/2026: 09:00, Laboratory Exam
  • 10/07/2026: 09:00, Written Exam
  • 13/07/2026: 09:00, Laboratory Exam
  • 07/09/2026: 09:00, Written Exam
  • 08/09/2026: 09:00, Laboratory Exam

Additional Information

For further information not included in the teaching schedule, please refer to the professor.


عرض المزيد
How can I help you today?