Francesco TORTORELLA | FOUNDATIONS OF PROGRAMMING
Francesco TORTORELLA FOUNDATIONS OF PROGRAMMING
cod. 0612700106
FOUNDATIONS OF PROGRAMMING
0612700106 | |
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA | |
EQF6 | |
COMPUTER ENGINEERING | |
2021/2022 |
OBBLIGATORIO | |
YEAR OF COURSE 1 | |
YEAR OF DIDACTIC SYSTEM 2017 | |
AUTUMN SEMESTER |
SSD | CFU | HOURS | ACTIVITY | ||
---|---|---|---|---|---|
AMBIENTI E ALGORITMI - MOD.1 | |||||
INF/01 | 3 | 24 | LESSONS | ||
INF/01 | 3 | 24 | LAB | ||
FONDAMENTI - MOD.2 | |||||
ING-INF/05 | 3 | 24 | EXERCISES |
Objectives | |
---|---|
THE COURSE PROVIDES THE BASIC ELEMENTS FOR SOLVING PROBLEMS OF NOT HIGH COMPLEXITY THROUGH THE USE OF COMPUTING SYSTEMS, USING THE FUNDAMENTAL ELEMENTS OF A HIGH-LEVEL PROGRAMMING LANGUAGE. THE COURSE ALLOWS STUDENTS TO ACQUIRE KNOWLEDGE OF THE FUNDAMENTAL ELEMENTS OF STRUCTURED PROGRAMMING AND OF THE C LANGUAGE, ALONG WITH THE ""PROBLEM SOLVING"" TECHNIQUES THROUGH THE USE OF A COMPUTER. KNOWLEDGE AND UNDERSTANDING SYNTAX OF THE C LANGUAGE, ENCODING AND REPRESENTATION OF INFORMATION, FUNDAMENTAL CONSTRUCTS OF HIGH-LEVEL PROGRAMMING LANGUAGES, FUNDAMENTAL DATA STRUCTURES (ARRAYS AND MATRICES), REPRESENTATION OF ALGORITHMS THROUGH BLOCK DIAGRAMS, PHASES OF THE TRANSLATION OF A PROGRAM. APPLYING KNOWLEDGE AND UNDERSTANDING DESIGN AN ALGORITHM TO SOLVE PROBLEMS OF NOT HIGH COMPLEXITY. READ AND DESIGN IN THE C LANGUAGE. CODE AN ALGORITHM INTO A C LANGUAGE PROGRAM USING AN INTEGRATED DEVELOPMENT ENVIRONMENT. COMPILE A PROGRAM WRITTEN IN C. IDENTIFY AND RESOLVE COMMON ERRORS. |
Prerequisites | |
---|---|
THE COURSE ASSUMES NO PROGRAMMING BACKGROUND. |
Contents | |
---|---|
BASIC CONCEPTS (LECTURE/PRACTICE/LABORATORY HOURS 4/2/0) INTRODUCTION. THE CONCEPTS OF INFORMATION, ALGORITHM, AUTOMA, PROGRAM AND PROCESS. ELEMENTS OF BOOLEAN ALGEBRA. REPRESENTATION AND CODING OF INFORMATION. (M. VENTO: CH. 1) PROGRAMMING FUNDAMENTALS (LECTURE/PRACTICE/LABORATORY HOURS 16/0/8) INTRODUCTION. THE HIGH-LEVEL PROGRAMMING LANGUAGES AND THEIR DESCRIPTION. PROBLEM SOLVING: REPRESENTATION AND SIMULATION OF ALGORITHMS EXECUTION USING FLOWCHARTS. INTRODUCTION TO THE C LANGUAGE. THE CONCEPTS OF TYPES AND VARIABLES. SIMPLE TYPES: INTEGER, FLOAT, CHAR, ENUMERATION TYPES. AUTOMATIC VARIABLES, EXTERNAL AND STATIC. FORMATTED INPUT/OUTPUT. STANDARD LIBRARIES. ARITHMETIC, RELATIONAL AND LOGICAL OPERATORS. THE ASSIGNMENT STATEMENT AND ITS SEMANTICS. EXPRESSIONS. SIMPLE INSTRUCTIONS. INSTRUCTION BLOCKS. SELECTIVE CONTROL STRUCTURES. PREDETERMINED AND NOT ITERATIVE CONTROL STRUCTURES. DEVELOPMENT ENVIRONMENTS: IDE (INTEGRATED DEVELOPMENT ENVIRONMENT) TO DEVELOP STRUCTURED PROGRAMS. COMPILERS AND INTERPRETERS. TOOLS FOR THE PRODUCTION OF PROGRAMS. PROGRAM EDITING. COMPILING, LINKING AND EXECUTING. DEBUGGING. (P.J. DEITEL - H.M. DEITEL: CH. 1, 2, 3, 4 AND 9; M. VENTO: CAP. 2:03) STRUCTURED PROGRAMMING (LECTURE/PRACTICE/LABORATORY HOURS 8/0/4) STRUCTURED DATA TYPES. ARRAYS AND MATRICES: USE, INITIALIZATION AND IN-MEMORY REPRESENTATION. THE CONCEPT OF POINTER: DECLARATION AND USE. STRINGS. THE STANDARD LIBRARY FUNCTIONS. (P.J. DEITEL - H.M. DEITEL: CH. 6, 7 AND 8; M. WIND: CAP 6:08). FUNCTIONAL DECOMPOSITION AND PROGRAM DESIGN (LECTURE/PRACTICE/LABORATORY HOURS 8/0/4) MODULAR PROGRAMMING: THE CONCEPT OF FUNCTION. DEFINITION, CALL, PROTOTYPE. PARAMETER PASSING BY VALUE AND BY REFERENCE. SIDE EFFECTS AND PROCEDURES. STATIC AND DYNAMIC SEQUENCE. VISIBILITY AND DURATION OF VARIABLES. PREDEFINED FUNCTIONS OF THE STANDARD LIBRARY. ((P.J. DEITEL - H.M. DEITEL: CH. 5; M. VENTO: CH. 5) THE FILES (LECTURE/PRACTICE/LABORATORY HOURS 4/0/2) THE FILE CONCEPT. FILE SEQUENTIAL AND DIRECT ACCESS. TEXT FILES. OPENING AND READING AND WRITING TO FILES. READING CHARACTERS AND FORMATTED READING. (P.J. DEITEL - H.M. DEITEL: CAP. 11; M. VENTO: CH. 7) DEVELOPMENT OF ALGORITHMS (LECTURE / PRACTICE / LABORATORY HOURS 8/0/4) DEVELOPMENT OF ALGORITHMS ON SEQUENCES, VECTORS AND MATRICES: THE MINIMUM AND MAXIMUM CALCULATION, DOT PRODUCT, MATRIX PRODUCT, CALCULATION OF THE TRANSPOSE AND THE TRACE OF A MATRIX. DEVELOPMENT OF PROGRAMS WITH I/O ON FILES. RELEVANT SEARCH AND SORTING ALGORITHMS: LINEAR SEARCH, BINARY SEARCH ALGORITHM, SELECTION SORT, BUBBLE SORT. (P.J. DEITEL - H.M. DEITEL: CAP. 6:07; M. VENTO: CH. 9) TOTAL LECTURE/PRACTICE/LABORATORY HOURS 48/2/22 |
Teaching Methods | |
---|---|
THE COURSE IS STRUCTURED AS FOLLOWS: LECTURES (48H), PRACTISE (24H). DURING THE PRACTISE, ALGORITHMS AND THEIR CODING IN C LANGUAGE ARE PROPOSED AND DISCUSSED AND STUDENTS ARE ASKED TO IMPLEMENT SPECIFIC ALGORITHMS IN ORDER TO SOLVE THE PROBLEMS PROPOSED DURING THE LECTURES AND THE PRACTISE. IN ORDER TO PARTICIPATE TO THE FINAL ASSESSMENT AND TO GAIN THE CREDITS CORRESPONDING TO THE COURSE, THE STUDENT MUST HAVE ATTENDED AT LEAST 70% OF THE HOURS OF ASSISTED TEACHING ACTIVITIES. |
Verification of learning | |
---|---|
LEARNING SKILLS WILL BE CHECKED BY MEANS OF MIDTERM EXAMINATION, WHILE THE FINAL ASSESSMENT CONSISTS IN A WRITTEN AND AN ORAL EXAMINATION. THE FINAL GRADE IS ASSIGNED AS FOLLOWS: MIDTERM EXAM COUNTS FOR 30%, WRITTEN EXAM COUNTS FOR 50%, WHILE ORAL EXAM COUNTS FOR 20%. MIDTERM EXAMINATION CONSISTS IN A MULTIPLE-CHOICE TEST AND TWO OPEN QUESTIONS. WRITTEN EXAMINATION REQUIRES STUDENTS TO SOLVE A PRACTICAL PROBLEM WHOSE SOLUTION INVOLVES DESIGNING, CODING, EXECUTING AND TESTING A PROGRAM IN C LANGUAGE. THE AIM WILL BE TO DEMONSTRATE THE ABILITY TO TRANSFORM A PROBLEM INTO A DESIGN, AND A DESIGN INTO AN OPERATIONAL PROGRAM. ORAL EXAMINATION CONSISTS IN AN ORAL DISCUSSION ABOUT ALL THE ARGUMENTS OF THE COURSE WITH THE AIM TO ASSESS THE LEARNING SKILLS ACHIEVED. |
Texts | |
---|---|
"PAUL J. DEITEL - HARVEY M. DEITEL, IL LINGUAGGIO C - FONDAMENTI E TECNICHE DI PROGRAMMAZIONE, PEARSON. M. VENTO, FONDAMENTI DI INFORMATICA, APPUNTI DELLE LEZIONI, EDIZIONE 2015. THIS TEXT IS ADOPTED FOR THE TREATMENT OF ASPECTS RELATING TO PROGRAMMING. OTHER USEFUL TEXTS: L.J. AGUILAR, FONDAMENTI DI PROGRAMMAZIONE IN C++, MCGRAW-HILL ITALIA, 2008 AL KELLEY, IRA POHL, ""C DIDATTICA E PROGRAMMAZIONE”, PEARSON. SUPPLEMENTARY TEACHING MATERIAL WILL BE AVAILABLE ON THE UNIVERSITY E-LEARNING PLATFORM (HTTP://ELEARNING.UNISA.IT) ACCESSIBLE TO STUDENTS USING THEIR OWN UNIVERSITY CREDENTIALS." |
More Information | |
---|---|
THE COURSE IS HELD IN ITALIAN |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-11-21]