Course Details

PROGRAMMING 1

MF0163

Course
PROGRAMMING 1
Code
MF0163
Academic Year
2024/2025
Curriculum Year
2024/2025
Degree Programme
CHEMISTRY
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
ALESSANDRIA
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
P. Deitel, H. Deitel Il linguaggio C. Fondamenti e tecniche di programmazione, Pearson.
Additional materials on DIR.
Learning Outcomes
Students must acquire the capability of applying the top-down methodology in the problem analysis. Specifically, they must be able
• to identify input and output,
• to develop flow diagrams,
• to develop C programs, using the basic notions of: variables and data types; if-then-else and boolean conditions; iteration (while, for, do-while); functions and parameters (by value and by reference); arrays, strings, files
• Additionally they must acquire the capability of analyzing the algorithm complexity, and of compiling, verifying and executing C programs.
Prerequisites
None
Teaching Methods
Standard lectures and programming sessions in the computer lab.
Additional Information
Monitoring the learning process: during the course the students will complete
assigments in the computer lab under the supervision of a teacher. Active participation allows a check on how topics are received. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Assessment Methods
The exam follows two different modalities: with and without computer. The computer-based exam (laboratory test) requires the development and testing of a program in C. The part of exam without computer consists of a written examination (compulsory) and an oral one (optional). The written examination may be carried on as a single exam or through two intermediate written exams. The written examinations consist in the analysis of simple programming problems, and in the development of flow charts and C programs solving them. The final score is obtained through a weighted average of the scores achieved in each single exam.
Detailed Syllabus
- Introduction to structured programming- Top-down methodology in the problem analysis and in the development of flow charts (and programs)- Basic programming concepts (expressed in the “C” language):- variables, data types- input and output;- esay C programs using only sequences- if-then-else and Boolean Conditions- iteration (while, for, do-while); loop invariants (not formal);- functions and parameter passing (by value and by reference)- arrays and array algorithms;- the string data type- file management- complexity analysis- Introduction to Linux. Main commands to manage files, to compile and execute programs.
Expected Learning Outcomes
At the end of the course, given a simple programming problem, the students must be able to define the algorithm solving the problem, implement the algorithm in C language, execute the program on the computer.

Knowledge and comprehension:
concepts of algorithm and program, fundamental data structures (scalar types, vector, pointers and files), basic programming constructs (if-then-else, while, for, functions and parameters ).

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 C, and finally how to compile and execute a program on a computer.
Last update:09-09-2026 00:14:31