Course Details

PROGRAMMING 1

MF0207

Course
PROGRAMMING 1
Code
MF0207
Academic Year
2023/2024
Curriculum Year
2023/2024
Degree Programme
BIOLOGY
Curriculum
000 - CORSO GENERICO
Course coordinator
Credits
9
Lecture Hours
72
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OBB - Obbligatoria
Year
1
Teaching period
Primo Semestre
Campus
VERCELLI
Teaching language
Italian
Course Contents
The course has the goal of introducing the fundamentals of computer programming, starting from the concept of algorithm and the basic concepts of a program, and arriving to advanced concepts of data structures and control in the programming language. Moreover the course presents the basic concepts of the C programming language used to support the teaching of programming, and to perform practical exercises in the laboratory.
Reference Texts
- Kelley, Pohl, “A book on C : programming in C", Addison-Wesley.
- P. Deitel, H. Deitel, “C: How to program”, Prentice Hall.
- Kernighan, Ritchie, The C Programming Language (2nd edition), Prentice Hall.
Learning Outcomes
The student must know the basic programming constructs, the basic data structures (variables, constants, arrays), and the organization of a program into functions.

Given a problem of average complexity, the student must be able to deduce the possible input data, the possible output data, and the algorithm solving the problem. Moreover the student must be able to write a programme in C language, corresponding to the algorithm, compile it, and execute it.
Prerequisites
None
Teaching Methods
The course consists of frontal lectures and laboratory lectures.

Modality:
during the frontal lectures the theoretical aspects about programming (algorithms, constructs, data structure, etc) are presented.
Moreover, by means of a computer connected to a projector, the way to implement such aspects on a computer, is shown.
For each topic, several examples of problems are presented, together with the corresponding algorithms and programs.
During the laboratory lectures, the students are asked to implement the same programs presented in the frontal lectures, and to implement other programs solving similar problems.

Tools:
in order to gradually learn the concepts of algorithm, program, and their constructs, at the begin of the course, the algorithms are defined through several abstraction levels: flow-chart, pseudo-code, programming language.
Since it is a course on basic programming, the programs are written on the computer by means of an ordinary text editor. In order to make the students familiar with the terminal (useful for the following courses), program compiling and execution is performed through the command line of the terminal. Besides the compiling and execution commands, the main terminal commands are presented and applied.
During the course, learning is verified through a series of exercises for each topic of the course.
Each exercise requires to define an algorithm and write the corresponding program in C language.
During the laboratory lectures, each exercise is introduced, the general program structure is defined, and the students are asked to complete the program in an autonomous way, within a certain amount of time. Then, the solution of the exercise is provided in order to verify the correctness.
At the end of the course, several exam simulation are performed, on the computer, to allow the students to be aware of what is actually required at the exam.
Besides the laboratory lectures, tutoring lectures are available for the students, in order to continue the exercises, clarify doubts, and require to explain a topic for the second time.
The course has its own page in the platform DIR (Didattica in Rete), which contains the slides, the programs shown during the frontal lectures, the programs prepared during the laboratory and tutoring lectures, the exams of the past, etc.
Additional Information
No partial exams will take place during the course.
Assessment Methods
The exam consists of an exercise on the computer, where the student, given a specific problem, must: define the solving algorithm, implement the algorithm in C language, properly structuring the code, successfully compile the program, verify the correct functioning of the program.
The program must be structured into several functions. Typically, 5 functions are required to be implemented, including the main function. The functions required at the exam are similar to those presented in the course, during the frontal or laboratory lectures.
A score depending on the complexity, is associated with each function (6 points on average).
The exam has a 2 hours duration and is about all the topics of the course.
The students can find the exercises of the past and the corresponding solutions on the DIR platform.
During the practical test, consulting the course material or manuals is not allowed. The computers in the laboratory are used; the use of mobile devices or portable computers is forbidden.
Detailed Syllabus
- introduction to programming and C language;
- algorithms and their representation;
- variables, constants, data types, arithmetic operators;
- input/output operators in C;
- first programs in C, with the only use of command sequences;
- selection (if...else) with simple and composed Boolean conditions;
- loops (while, for, do-while);
- arrays;
- functions with arguments by value;
- pointers and function arguments by reference;
- pointer arithmetic;
- arguments from command line;
- input/output to file;
- use of terminal.
Expected Learning Outcomes
At the end of the course, given a simple programming problem, the student must be able to define the algorithm solving the problem, implement the algorithm in C language, execute the program on the computer, and verify its correctness.

Knowledge and comprehension:
concepts of algorithm and program, fundamental data structures, basic programming constructs.

Capacity to apply knowledge and comprehension:
given a problem,
- identifying input data to be collected from the user, and output data to be produced;
- identifying the data structures necessary to manage such data;
- defining an algorithm transforming input data in output data, by following the programming constructs;
- writing on the computer the source program implementing the algorithm, using the programming language (C);
- generating the executable program by compiling the source program, on the computer;
- executing and testing the executable program, on the computer.

Judgement autonomy:
in an autonomous way the student must be able to identify the necessary data structures, define and implement the algorithm in the programming language (C), and finally compile and execute the program.

Communication abilities:
the student must be able to define an algorithm at several abstraction levels, such as the flow-chart, the pseudo-code, the program in the programming language. Moreover the program must require and present data to the user by means of message that the user can understand.

Learning capacity:
the student must be able to learn how to generate an algorithm from the problem, how to implement an algorithm in a programming language, and finally how to compile and execute a program on a computer.
Last update:09-09-2026 00:14:31