The course can be viewed as a second step, for students in Computer Engineering, in the process of getting introduced to computer programming as a tool for solving real problems. In this context, on the one hand the introduction to computer science is consolidated, from both a "cultural" and technological point of view. On the other hand, the C language is introduced as a second programming language and as a tool for problem-solving, viewed both as a creative and a design activity. Besides the standard education to problem-solving, which is based on learning by experience and imitation, the course provides students with a characterization of the main types of simple problems that can be faced and solved through C language programs, as well as strategies for choosing adequate data structures and algorithmic constructs. Basic concepts of complexity analysis will also be introduced, to guide towards the development of computationally efficient solutions.
The course can be viewed as a second step, for students in Computer Engineering, in the process of getting introduced to computer programming as a tool for solving real problems. In this context, on the one hand the introduction to computer science is consolidated, from both a "cultural" and technological point of view. On the other hand, the C language is introduced as a second programming language and as a tool for problem-solving, viewed both as a creative and a design activity. Besides the standard education to problem-solving, which is based on learning by experience and imitation, the course provides students with a characterization of the main types of simple problems that can be faced and solved through C language programs, as well as strategies for choosing adequate data structures and algorithmic constructs. Basic concepts of complexity analysis will also be introduced, to guide towards the development of computationally efficient solutions.
Basic notions of architecture and logic
Knowledge of the architecture and operating mode of a CPU and of the central memory, with special regard to the addressing of data in a RAM memory
Boolean algebra and logical functions
Problem-solving
Knowledge of elementary notions of complexity analysis and of iterative sorting algorithms
Knowledge of elementary notions of problem-solving as a solution to project problems, based on characterization of problems from the point of view of the application context and / or of the algorithmic strategies adopted
Knowledge of elementary algorithmic strategies, for example for the resolution of iterative verification problems based on the principle of universal and existential quantifiers, on the use of vectors as containers for data collections and / or for the creation of direct access tables
Knowledge of iterative sorting algorithms
Ability to move from the formulation of an algorithmic problem to its solution, based on steps of recognition of the type of problem and choice of adequate data structures and solution algorithms
Ability to solve iterative problems, based on scalar data, or on the collection of data, either ordered and unordered.
C language
Knowledge of the basic constructs of programming in C language, such as: scalar data types, elementary input / output on standard I/O and text files, iterative and conditional constructs, use of functions as sub-programs, structured data types, struct, arrays and matrices, manipulation of strings of characters
Knowledge of the pointer data type as a reference to data and its use for the dynamic allocation of arrays and matrices, as well as a way to pass parameters to C functions by reference (or rather "by pointer")
Ability to develop iterative algorithms, capable of manipulating both scalar and aggregated data in the form of struct types and / or arrays or matrices
Ability to create modular programs, based on the decomposition of a problem into sub-problems solved by an effective use of functions
Ability to use programming aid tools.
Basic notions of architecture and logic
Knowledge of the architecture and operating mode of a CPU and of the central memory, with special regard to the addressing of data in a RAM memory
Boolean algebra and logical functions
Problem-solving
Knowledge of elementary notions of complexity analysis and of iterative sorting algorithms
Knowledge of elementary notions of problem-solving as a solution to project problems, based on characterization of problems from the point of view of the application context and / or of the algorithmic strategies adopted
Knowledge of elementary algorithmic strategies, for example for the resolution of iterative verification problems based on the principle of universal and existential quantifiers, on the use of vectors as containers for data collections and / or for the creation of direct access tables
Knowledge of iterative sorting algorithms
Ability to move from the formulation of an algorithmic problem to its solution, based on steps of recognition of the type of problem and choice of adequate data structures and solution algorithms
Ability to solve iterative problems, based on scalar data, or on the collection of data, either ordered and unordered.
C language
Knowledge of the basic constructs of programming in C language, such as: scalar data types, elementary input / output on standard I/O and text files, iterative and conditional constructs, use of functions as sub-programs, structured data types, struct, arrays and matrices, manipulation of strings of characters
Knowledge of the pointer data type as a reference to data and its use for the dynamic allocation of arrays and matrices, as well as a way to pass parameters to C functions by reference (or rather "by pointer")
Ability to develop iterative algorithms, capable of manipulating both scalar and aggregated data in the form of struct types and / or arrays or matrices
Ability to create modular programs, based on the decomposition of a problem into sub-problems solved by an effective use of functions
Ability to use programming aid tools.
The course is incremental to the one of "Computer Sciences", held in the first semester. There are strict prerequisites in terms of programming skills and knowledge of the main algorithmic strategies, based on conditional and iterative constructs, on the use of scalar and structured data. We then assume the ability to solve elementary (algorithmic) problems.
However, the introduction of C as a new language, downstream of the teaching of Python, means that, while assuming basic concepts as prerequisites, some of them are revisited and presented as new. More in detail, from the "computer sciences" course, following knowledge and skills acquired through the Python language are considered important: representation and manipulation of scalar data, strings and data collections such as lists and sets, elementary I/O, conditional and iterative constructs, functions and their use to create modular programs.
An elementary knowledge of the architecture of processing systems (Von Neumann's model) and of the representation of character and numbers is also assumed as a prerequirement from the teaching of "Computer Sciences".
The course is incremental to the one of "Computer Sciences", held in the first semester. There are strict prerequisites in terms of programming skills and knowledge of the main algorithmic strategies, based on conditional and iterative constructs, on the use of scalar and structured data. We then assume the ability to solve elementary (algorithmic) problems.
However, the introduction of C as a new language, downstream of the teaching of Python, means that, while assuming basic concepts as prerequisites, some of them are revisited and presented as new. More in detail, from the "computer sciences" course, following knowledge and skills acquired through the Python language are considered important: representation and manipulation of scalar data, strings and data collections such as lists and sets, elementary I/O, conditional and iterative constructs, functions and their use to create modular programs.
An elementary knowledge of the architecture of processing systems (Von Neumann's model) and of the representation of character and numbers is also assumed as a prerequirement from the course of "Computer Sciences".
Basic notions of architecture and logic (10 h)
references to the architecture and functioning of the computer and of the central memory
the concept of pointer / address
compilation, link, execution, program organization in memory
Boolean algebra and logical functions
C as a second programming language (20 h)
Basic types and I/O:
o primitive data types (scalars), symbolic constants
o I/O operations (on stdin/stdout and text files)
Conditional and iterative constructs
Functions and parameters passing (by value/reference)
Aggregated data types:
o arrays and static matrices (of interegs, float and characters)
o strings and arrays of strings
o struct (aggregated types)
Pointers and dynamic allocation in C (10 h)
pointer as reference to data
syntactic elements
array/pointer duality and pointer arithmetic
dynamic allocation, dynamic arrays and matrices
Elementary problem-solving (20 h)
analysis of computational complexity
problem solving:
o iterative sorting algorithms
o problems on numbers (mathematical problems and/or algaebric/geometric problems with matrices and arrays)
o problems of text processing (manipulation of texts, menu selection)
o problems of numbers/text encoding (es. criptography, compression etc.)
o problems of verification, selection, sorting.
Basic notions of architecture and logic (10 h)
references to the architecture and functioning of the computer and of the central memory
the concept of pointer / address
compilation, link, execution, program organization in memory
Boolean algebra and logical functions
C as a second programming language (20 h)
Basic types and I/O:
o primitive data types (scalars), symbolic constants
o I/O operations (on stdin/stdout and text files)
Conditional and iterative constructs
Functions and parameters passing (by value/reference)
Aggregated data types:
o arrays and static matrices (of interegs, float and characters)
o strings and arrays of strings
o struct (aggregated types)
Pointers and dynamic allocation in C (10 h)
pointer as reference to data
syntactic elements
array/pointer duality and pointer arithmetic
dynamic allocation, dynamic arrays and matrices
Elementary problem-solving (20 h)
analysis of computational complexity
problem solving:
o iterative sorting algorithms
o problems on numbers (mathematical problems and/or algaebric/geometric problems with matrices and arrays)
o problems of text processing (manipulation of texts, menu selection)
o problems of numbers/text encoding (es. criptography, compression etc.)
o problems of verification, selection, sorting.
Integrated lectures and exercises will take place in the classroom. In the laboratory, exercises will be proposed which will put the notions learned into practice. These exercises should be started at home and finished in laboratory.
Integrated lectures and exercises will take place in the classroom. In the laboratory, exercises will be proposed which will put the notions learned into practice. These exercises should be started at home and finished in laboratory.
Deitel & Deitel, "C: how to program", Pearson Prentice Hall, 2010
G. Cabodi, P. Camurati, P. Pasini, D. Patti, D. Vendraminetto, "Dal problema al programma: introduzione al problem-solving in linguaggio C", Apogeo, II edizione, 2016
- Deitel & Deitel, "C: how to program", Pearson Prentice Hall, 2010
- Slides, codes and additional material will be provided during the course through the portal
Modalitΰ di esame: Prova scritta (in aula);
Exam: Written test;
...
Exam structure
The exam, lasting at most 1h30, consists of:
open or multiple choice questions on subjects whose knowledge is assessed
programming exercises where the student completes a program, corrects a program, simulates the execution of a program
elementary problem-solving exercises in C: given the specifications, the data structures and the solution algorithm must be defined and then implemented in C language.
The overall score is 33.
Material available during the written exam:
Access to appropriate documentation will be provided as a reference for the C language.
It is forbidden to consult other texts, notes, handouts, etc.
It is forbidden to use any electronic media (cell phones, PDAs, laptops, etc.)
The student must upload onto Portal within three days of the date of the written exam:
a report (max 1 page) on the solution adopted (data structures, algorithm, etc.)
a copy of the correct program, highlighting changes with respect to the original program.
If the student does not upload the material by the scheduled date, the written exam will not be evaluated.
Gli studenti e le studentesse con disabilitΰ o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unitΰ Special Needs, al fine di permettere al/la docente la declinazione piω idonea in riferimento alla specifica tipologia di esame.
Exam: Written test;
Exam structure
The exam, lasting at most 1h30, consists of:
open or multiple choice questions on subjects whose knowledge is assessed
programming exercises where the student completes a program, corrects a program, simulates the execution of a program
elementary problem-solving exercises in C: given the specifications, the data structures and the solution algorithm must be defined and then implemented in C language.
The overall score is 33.
Material available during the written exam:
Access to appropriate documentation will be provided as a reference for the C language.
It is forbidden to consult other texts, notes, handouts, etc.
It is forbidden to use any electronic media (cell phones, PDAs, laptops, etc.)
The student must upload onto Portal within three days of the date of the written exam:
a report (max 1 page) on the solution adopted (data structures, algorithm, etc.)
a copy of the correct program, highlighting changes with respect to the original program.
If the student does not upload the material by the scheduled date, the written exam will not be evaluated.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Modalitΰ di esame: Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo;
Exam structure
The exam, lasting at most 1h30, consists of:
open or multiple choice questions on subjects whose knowledge is assessed
programming exercises where the student completes a program, corrects a program, simulates the execution of a program
elementary problem-solving exercises in C: given the specifications, the data structures and the solution algorithm must be defined and then implemented in C language.
The overall score is 33.
Mode for online written exams
The written exam will be open-ended via PC with the use of the integrated Exam platform with proctoring tools (Respondus). To take into account any access problems, the theory and programming sections will be available for a time window longer than the duration of the exam (approximately 120 minutes). Once the test has started, the duration is the specified one (max 90 minutes). The candidate will be able to scroll the questions forward and back since no sequencing is imposed.
Material available during the written exam:
Access to appropriate website will be provided as a reference for the C language.
It is forbidden to consult other texts, notes, handouts, etc.
It is forbidden to use electronic media in addition to the PC (cell phones, PDAs, laptops, etc.)
Testing of the Exam platform with Respondus
As indicated by Politecnico, the student is required:
to verify well in advance that he/she is equipped with hardware, software and network tools necessary for the examination
to perform a simulation, on the teaching portal in the "Remote Exams" section, in order to be able to identify and resolve any critical issues.
In case of problems, the student must open a ticket for hardware / software / network issues as indicated by Politecnico rules. If the student encounters specific problems with this course, he/she should send an e-mail as soon as possible to the teachers.
Behavior in case of technical problems
If problems arise during the examination:
the student cannot successfully connect to the Exam platform with Respondus: first of all it is appropriate to retry several times, but, after no more than 10 minutes from the start of the test, the student must contact the teachers by e-mail to report it
if the student is not logged in from the log of the Exam platform with Respondus and if he/she has not reported any difficulty, it is assumed that he/she has not sat for the exam
if the student successfully connects to the Exam platform with Respondus, but then technical problems occur (e.g. lack of connection) that do not allow the smooth running of the exam test, as defined in Politecnico 2020 05 30 rules point c), the student must IMMEDIATELY report the problem directly by message to the teachers. If the problem persists and prevents the exam from being completed, subsequently the student must submit a self-certification, of which the University provides facsimiles. In the document the student must accurately report the type of problems encountered, the time when the problems occurred verified, the address of the place where the test took place and the indication of the provider to allow to carry out checks. This document must be sent to the teachers within 60 minutes after the end of the exam.
Communication with teachers during the exam
Once the student has accessed the Exam platform with Respondus, a link will be made available to a Virtual Classroom where teachers and students will be able to communicate over an appropriate channel. However, any form of communication between students through Virtual Classroom will be disabled.
It is suggested to have pen and paper available in case they are needed to solve of exercises or for
intermediate steps on paper required before writing the solution on Exam. Only what is loaded on the Exam platform will be evaluated.
At the end of the written exam, the student receives through the Exam platform a .pdf file with his/her work.
He/she must then upload onto Portal within three days of the date of the written exam:
a report (max 1 page) on the solution adopted (data structures, algorithm, etc.)
a copy of the correct program, highlighting changes with respect to the original program.
If the student does not upload the material by the scheduled date, the written exam will not be evaluated.
Exam: Computer-based written test using the PoliTo platform;
Exam structure
The exam, lasting at most 1h30, consists of:
open or multiple choice questions on subjects whose knowledge is assessed
programming exercises where the student completes a program, corrects a program, simulates the execution of a program
elementary problem-solving exercises in C: given the specifications, the data structures and the solution algorithm must be defined and then implemented in C language.
The overall score is 33.
Mode for online written exams
The written exam will be open-ended via PC with the use of the integrated Exam platform with proctoring tools (Respondus). To take into account any access problems, the theory and programming sections will be available for a time window longer than the duration of the exam (approximately 120 minutes). Once the test has started, the duration is the specified one (max 90 minutes). The candidate will be able to scroll the questions forward and back since no sequencing is imposed.
Material available during the written exam:
Access to appropriate website will be provided as a reference for the C language.
It is forbidden to consult other texts, notes, handouts, etc.
It is forbidden to use electronic media in addition to the PC (cell phones, PDAs, laptops, etc.)
Testing of the Exam platform with Respondus
As indicated by Politecnico, the student is required:
to verify well in advance that he/she is equipped with hardware, software and network tools necessary for the examination
to perform a simulation, on the teaching portal in the "Remote Exams" section, in order to be able to identify and resolve any critical issues.
In case of problems, the student must open a ticket for hardware / software / network issues as indicated by Politecnico rules. If the student encounters specific problems with this course, he/she should send an e-mail as soon as possible to the teachers.
Behavior in case of technical problems
If problems arise during the examination:
the student cannot successfully connect to the Exam platform with Respondus: first of all it is appropriate to retry several times, but, after no more than 10 minutes from the start of the test, the student must contact the teachers by e-mail to report it
if the student is not logged in from the log of the Exam platform with Respondus and if he/she has not reported any difficulty, it is assumed that he/she has not sat for the exam
if the student successfully connects to the Exam platform with Respondus, but then technical problems occur (e.g. lack of connection) that do not allow the smooth running of the exam test, as defined in Politecnico 2020 05 30 rules point c), the student must IMMEDIATELY report the problem directly by message to the teachers. If the problem persists and prevents the exam from being completed, subsequently the student must submit a self-certification, of which the University provides facsimiles. In the document the student must accurately report the type of problems encountered, the time when the problems occurred verified, the address of the place where the test took place and the indication of the provider to allow to carry out checks. This document must be sent to the teachers within 60 minutes after the end of the exam.
Communication with teachers during the exam
Once the student has accessed the Exam platform with Respondus, a link will be made available to a Virtual Classroom where teachers and students will be able to communicate over an appropriate channel. However, any form of communication between students through Virtual Classroom will be disabled.
It is suggested to have pen and paper available in case they are needed to solve of exercises or for
intermediate steps on paper required before writing the solution on Exam. Only what is loaded on the Exam platform will be evaluated.
At the end of the written exam, the student receives through the Exam platform a .pdf file with his/her work.
He/she must then upload onto Portal within three days of the date of the written exam:
a report (max 1 page) on the solution adopted (data structures, algorithm, etc.)
a copy of the correct program, highlighting changes with respect to the original program.
If the student does not upload the material by the scheduled date, the written exam will not be evaluated.
Modalitΰ di esame: Test informatizzato in laboratorio; Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo;
Exam structure
The exam, lasting at most 1h30, consists of:
open or multiple choice questions on subjects whose knowledge is assessed
programming exercises where the student completes a program, corrects a program, simulates the execution of a program
elementary problem-solving exercises in C: given the specifications, the data structures and the solution algorithm must be defined and then implemented in C language.
The overall score is 33.
Mode for written exams
The written exam will be open-ended via PC with the use of the integrated Exam platform with proctoring tools (Respondus). To take into account any access problems, the theory and programming sections will be available for a time window longer than the duration of the exam (approximately 120 minutes). Once the test has started, the duration is the specified one (max 90 minutes). The candidate will be able to scroll the questions forward and back since no sequencing is imposed.
The written exam will be carried out simultaneously remotely and in presence, the latter in University premises
equipped with adequate equipment, such as LAIB.
Material available during the written exam:
Access to appropriate website will be provided as a reference for the C language.
It is forbidden to consult other texts, notes, handouts, etc.
It is forbidden to use electronic media in addition to the PC (cell phones, PDAs, laptops, etc.)
Testing of the Exam platform with Respondus
As indicated by Politecnico, the student is required:
to verify well in advance that he/she is equipped with hardware, software and network tools necessary for the examination
to perform a simulation, on the teaching portal in the "Remote Exams" section, in order to be able to identify and resolve any critical issues.
In case of problems, the student must open a ticket for hardware / software / network issues as indicated by Politecnico rules. If the student encounters specific problems with this course, he/she should send an e-mail as soon as possible to the teachers.
Behavior in case of technical problems
If problems arise during the examination:
the student cannot successfully connect to the Exam platform with Respondus: first of all it is appropriate to retry several times, but, after no more than 10 minutes from the start of the test, the student must contact the teachers by e-mail to report it
if the student is not logged in from the log of the Exam platform with Respondus and if he/she has not reported any difficulty, it is assumed that he/she has not sat for the exam
if the student successfully connects to the Exam platform with Respondus, but then technical problems occur (e.g. lack of connection) that do not allow the smooth running of the exam test, as defined in Politecnico 2020 05 30 rules point c), the student must IMMEDIATELY report the problem directly by message to the teachers. If the problem persists and prevents the exam from being completed, subsequently the student must submit a self-certification, of which the University provides facsimiles. In the document the student must accurately report the type of problems encountered, the time when the problems occurred verified, the address of the place where the test took place and the indication of the provider to allow to carry out checks. This document must be sent to the teachers within 60 minutes after the end of the exam.
Communication with teachers during the exam
Online: once the student has accessed the Exam platform with Respondus, a link will be made available to a Virtual Classroom where teachers and students will be able to communicate over an appropriate channel. However, any form of communication between students through Virtual Classroom will be disabled.
Onsite: there are teachers who supervise the student.
It is suggested to have pen and paper available in case they are needed to solve of exercises or for
intermediate steps on paper required before writing the solution on Exam. Only what is loaded on the Exam platform will be evaluated.
At the end of the written exam, the student receives through the Exam platform a .pdf file with his/her work.
He/she must then upload onto Portal within three days of the date of the written exam:
a report (max 1 page) on the solution adopted (data structures, algorithm, etc.)
a copy of the correct program, highlighting changes with respect to the original program.
If the student does not upload the material by the scheduled date, the written exam will not be evaluated.
Exam: Computer lab-based test; Computer-based written test using the PoliTo platform;
Exam structure
The exam, lasting at most 1h30, consists of:
open or multiple choice questions on subjects whose knowledge is assessed
programming exercises where the student completes a program, corrects a program, simulates the execution of a program
elementary problem-solving exercises in C: given the specifications, the data structures and the solution algorithm must be defined and then implemented in C language.
The overall score is 33.
Mode for written exams
The written exam will be open-ended via PC with the use of the integrated Exam platform with proctoring tools (Respondus). To take into account any access problems, the theory and programming sections will be available for a time window longer than the duration of the exam (approximately 120 minutes). Once the test has started, the duration is the specified one (max 90 minutes). The candidate will be able to scroll the questions forward and back since no sequencing is imposed.
The written exam will be carried out simultaneously remotely and in presence, the latter in University premises
equipped with adequate equipment, such as LAIB.
Material available during the written exam:
Access to appropriate website will be provided as a reference for the C language.
It is forbidden to consult other texts, notes, handouts, etc.
It is forbidden to use electronic media in addition to the PC (cell phones, PDAs, laptops, etc.)
Testing of the Exam platform with Respondus
As indicated by Politecnico, the student is required:
to verify well in advance that he/she is equipped with hardware, software and network tools necessary for the examination
to perform a simulation, on the teaching portal in the "Remote Exams" section, in order to be able to identify and resolve any critical issues.
In case of problems, the student must open a ticket for hardware / software / network issues as indicated by Politecnico rules. If the student encounters specific problems with this course, he/she should send an e-mail as soon as possible to the teachers.
Behavior in case of technical problems
If problems arise during the examination:
the student cannot successfully connect to the Exam platform with Respondus: first of all it is appropriate to retry several times, but, after no more than 10 minutes from the start of the test, the student must contact the teachers by e-mail to report it
if the student is not logged in from the log of the Exam platform with Respondus and if he/she has not reported any difficulty, it is assumed that he/she has not sat for the exam
if the student successfully connects to the Exam platform with Respondus, but then technical problems occur (e.g. lack of connection) that do not allow the smooth running of the exam test, as defined in Politecnico 2020 05 30 rules point c), the student must IMMEDIATELY report the problem directly by message to the teachers. If the problem persists and prevents the exam from being completed, subsequently the student must submit a self-certification, of which the University provides facsimiles. In the document the student must accurately report the type of problems encountered, the time when the problems occurred verified, the address of the place where the test took place and the indication of the provider to allow to carry out checks. This document must be sent to the teachers within 60 minutes after the end of the exam.
Communication with teachers during the exam
Online: once the student has accessed the Exam platform with Respondus, a link will be made available to a Virtual Classroom where teachers and students will be able to communicate over an appropriate channel. However, any form of communication between students through Virtual Classroom will be disabled.
Onsite: there are teachers who supervise the student.
It is suggested to have pen and paper available in case they are needed to solve of exercises or for
intermediate steps on paper required before writing the solution on Exam. Only what is loaded on the Exam platform will be evaluated.
At the end of the written exam, the student receives through the Exam platform a .pdf file with his/her work.
He/she must then upload onto Portal within three days of the date of the written exam:
a report (max 1 page) on the solution adopted (data structures, algorithm, etc.)
a copy of the correct program, highlighting changes with respect to the original program.
If the student does not upload the material by the scheduled date, the written exam will not be evaluated.