Servizi per la didattica
PORTALE DELLA DIDATTICA

Programming techniques

02OJPLM

A.A. 2020/21

2020/21

Programming techniques

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.

Programming techniques

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.

Programming techniques

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.

Programming techniques

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.

Programming techniques

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".

Programming techniques

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".

Programming techniques

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.

Programming techniques

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.

Programming techniques

Programming techniques

Programming techniques

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.

Programming techniques

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.

Programming techniques

• 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

Programming techniques

• 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

Programming techniques

Modalitΰ di esame: Prova scritta a risposta aperta o chiusa tramite PC con l'utilizzo della piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus);

Programming techniques

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.

Programming techniques

Exam: Computer-based written test with open-ended questions or multiple-choice questions using the Exam platform and proctoring tools (Respondus);

Programming techniques

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.

Programming techniques

Modalitΰ di esame: Test informatizzato in laboratorio; Prova scritta a risposta aperta o chiusa tramite PC con l'utilizzo della piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus);

Programming techniques

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.

Programming techniques

Exam: Computer lab-based test; Computer-based written test with open-ended questions or multiple-choice questions using the Exam platform and proctoring tools (Respondus);

Programming techniques

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.

Esporta Word


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
Contatti