Ingegneria Meccanica | COMPUTER SCIENCE FOUNDATIONS

Ingegneria Meccanica COMPUTER SCIENCE FOUNDATIONS

 0612300057 DIPARTIMENTO DI INGEGNERIA INDUSTRIALE EQF6 MECHANICAL ENGINEERING 2022/2023

 OBBLIGATORIO YEAR OF COURSE 1 YEAR OF DIDACTIC SYSTEM 2018 SPRING SEMESTER
SSD CFU HOURS ACTIVITY TYPE OF ACTIVITY ING-INF/05 6 60 LESSONS BASIC COMPULSORY SUBJECTS
 ROBERTO GENNA T
Objectives
KNOWLEDGE AND UNDERSTANDING
THE COURSE PROVIDES THE STUDENTS WITH THE BASICS OF PROBLEM SOLVING, THROUGH THE FORMULATION OF ALGORITHMS IMPLEMENTED BY THE PYTHON LANGUAGE, THE BASIC ASPECTS CONCERNING THE REPRESENTATION OF INFORMATION, AS WELL AS THEIR USE WITHIN INFORMATION PROCESSING SYSTEMS, THE FUNCTIONING OF MODERN INFORMATION PROCESSING SYSTEMS. IN ADDITION, THE BASIC PRINCIPLES OF THE DATABASE ARE PRESENTED. AGAIN, THE COURSE OFFERS SOME PRACTICAL TUTORIALS (CLASS EXERCISES), WHERE THE STUDENTS ACQUIRE PROBLEM SOLVING TECHNIQUES, ALONG WITH THE ABILITY TO IMPLEMENT THEIR OWN SOLUTIONS IN A HIGH-LEVEL LANGUAGE AND SIMPLE QUERIES IN SQL LANGUAGE. THE CONCEPTS ARE PRESENTED DURING LECTURES AND THE SOLUTIONS ARE REALIZED BY IMPLEMENTING PROGRAMS IN THE PYTHON LANGUAGE DURING THE HOURS OF PRACTICE AND BY STRUCTURING SIMPLE QUERIES.
APPLYING KNOWLEDGE AND UNDERSTANDING – ENGINEERING ANALYSIS
ABILITY TO DEVELOP LOW COMPLEXITY ALGORITHMS, BY MEANS OF A DECOMPOSITION INTO SUB-PROBLEMS, BESIDES REPRESENTING SUCH ALGORITHMS THROUGH BLOCK DIAGRAMS. ABILITY TO TRANSLATE THE ALGORITHMS IN PYTHON CODE, BY ADOPTING STRUCTURED PROGRAMMING METHODOLOGIES AND TAKING CARE OF THE COMPREHENSIBILITY OF THE PROGRAMS. LEARN HOW TO INTERPRET AND UNDERSTAND PYTHON CODE.
Prerequisites
NONE.
Contents
PRELIMINARY CONCEPTS (8H THEORY + 2H PRACTICE)
oINFORMATION AND DATA, INFORMATION PROCESSING, HARDWARE AND SOFTWARE.
oARCHITECTURE OF AN INFORMATION PROCESSING SYSTEM. COMPONENTS OF THE VON NEUMANN MACHINE AND ITS OPERATION. FETCH-DECODE-EXECUTE CYCLE. MACHINE CODE. MEMORY HIERARCHY.
oREPRESENTATION AND CODING OF INFORMATION. CONCEPT OF LANGUAGE. THE AIM OF LANGUAGES. NATURAL LANGUAGES AND RELATED AMBIGUITY ISSUES. CONCEPT OF FORMAL LANGUAGE. HOW TO REPRESENT INFORMATION IN COMPUTERS. BINARY ENCODING OF NUMBERS AND CHARACTERS. POSITIONAL NUMBERING SYSTEM. REPRESENTING NUMBERS IN DIFFERENT BASES. TECHNIQUES FOR CONVERTING BETWEEN DIFFERENT BASES (DECIMAL-BINARY, BINARY-DECIMAL). SIGNED NUMBER REPRESENTATIONS: SIGN-AND-MAGNITUDE, TWO'S COMPLEMENT.
oBOOLEAN ALGEBRA AND LOGIC CIRCUITS. CHARACTERISTICS AND USES OF BOOLEAN ALGEBRA. RELATION BETWEEN BOOLEAN ALGEBRA AND LOGIC CIRCUITS. PRINCIPAL OPERATORS (OR FUNCTIONS) OF BOOLEAN ALGEBRA: AND OPERATOR (LOGIC PRODUCT), OR OPERATOR (LOGIC SUM), NOT OPERATOR (NEGATION). LAWS OF BOOLEAN ALGEBRA AND BOOLEAN ALGEBRA RULES: IDENTITY, COMMUTATIVE LAW, DISTRIBUTIVE LAW, ASSOCIATE LAW, ABSORPTION LAWS, DE MORGAN’S THEOREM. TRUTH TABLE. LOGIC FUNCTIONS. MINTERMS. CANONICAL NORMAL FORM. HOW TO TRANSFORM A TRUTH TABLE INTO A LOGIC FUNCTION. LOGIC GATES. HOW TO TRANSFORM A LOGIC FUNCTION INTO A LOGIC CIRCUIT AND VICE VERSA.
PROGRAMMING BASICS (8H THEORY + 2H PRACTICE)
oFORMAL MODELING OF A PROBLEM. STEPS NEEDED TO SOLVE A PROBLEM BY A COMPUTER. THE CONCEPT OF ALGORITHM AND THE RELATIVE DEFINITIONS. THE ROLE OF ALGORITHMS IN THE INFORMATION PROCESSING. MAIN FEATURES OF ALGORITHMS. REPRESENTATIONS OF ALGORITHMS: PSEUDOCODE AND FLOWCHARTS (BLOCK DIAGRAMS). THE PROCESS FOR CREATING AN ALGORITHM. ALGORITHMIC MODELING OF DAILY ACTIVITIES.
oSTRUCTURED PROGRAMMING. CONTROL STRUCTURES: SEQUENCE, SELECTION, ITERATION. REPRESENTATION OF ELEMENTARY ALGORITHMS BY MEANS OF FLOWCHARTS.
oPHASES OF THE PROGRAMMING PROCESS. PROGRAMMING LANGUAGES. BUILDING BLOCKS OF PROGRAMMING LANGUAGES. INTERPRETER, COMPILER AND ASSEMBLER.
oCHARACTERISTICS OF A SOFTWARE FOR LEARNING STRUCTURED PROGRAMMING. IMPLEMENTATION OF CONTROL STRUCTURES THROUGH SUCH A SOFTWARE. HOW TO CREATE SIMPLE ALGORITHMS THROUGH SUCH A SOFTWARE.
PYTHON PROGRAMMING (20H THEORY)
oINTRODUCTION TO PYTHON ENVIRONMENT AND PYTHON PROGRAMMING.
oELEMENTARY OPERATIONS ON NUMBERS AND STRINGS. LISTS, SETS AND DICTIONARIES.
oRELATIONAL OPERATORS AND LOGICAL OPERATORS. SELECTION AND ITERATION.
oINCREMENTAL CREATION OF PROGRAMS THROUGH A TOP-DOWN PROCESS. FUNCTIONAL DECOMPOSITION. FUNCTIONS, PROTOTYPES, CALL BY VALUE AND CALL BY REFERENCE, BUILT-IN AND USER-DEFINED FUNCTIONS. INPUT/OUTPUT IN PYTHON.
oCREATION AND MANAGEMENT OF FILES IN PYTHON. WRITING/READING FILES.
oOBJECT-ORIENTED PROGRAMMING: CLASSES AND OBJECTS.
oAN OVERVIEW ON INHERITANCE AND POLYMORPHISM.
oAN OVERVIEW ON EXCEPTIONS AND RECURSION.
DEVELOPMENT OF ALGORITHMS IN PYTHON (20H PRACTICE)
oDESIGN, DEVELOPMENT AND TESTING OF ALGORITHMS TO SOLVE PROBLEMS IN PYTHON.
Teaching Methods
THE COURSE PROVIDES BOTH THEORETICAL LECTURES AND PRACTICAL EXERCISES. IN PARTICULAR, DURING THE EXERCISES, THE PROPOSED PROBLEMS ARE SOLVED THROUGH ALGORITHMS AND TRANSLATED INTO PYTHON CODE, WHICH WILL BE TESTED TO VERIFY THE RELATIVE CORRECTNESS.
Verification of learning
THE LEARNING ASSESSMENT CAN OCCUR IN TWO MODES:
- DURING THE COURSE (IN ITINERE)
A.THREE MIDTERM EXAMS, TO BE CARRIED OUT IN THE PERIOD OF DIDACTIC ACTIVITIES. THE FIRST ONE WILL BE ON THE TOPICS OF THE FIRST PART OF THE COURSE. THE SECOND ONE WILL BE ON PRACTICAL EXERCISES RELATED TO THE DEVELOPMENT OF A PROGRAM IN PYTHON.
B.ORAL EXAMINATION, CONCERNING THE TOPICS COVERED DURING THE COURSE, AS WELL AS THE PYTHON PROGRAMS WRITTEN BY THE CANDIDATE.
- EXAM
A.THE WRITTEN TEST CONSISTS IN THE DEVELOPMENT OF PYTHON PROGRAMS AND IN SOME QUESTIONS REGARDING THE TOPICS ADDRESSED DURING THE FIRST PART OF THE COURSE.
B.ORAL EXAMINATION, CONCERNING THE TOPICS COVERED DURING THE COURSE, AS WELL AS THE PYTHON PROGRAMS WRITTEN BY THE CANDIDATE.
THE ESSENTIAL CONDITION TO GET A PASSING GRADE IS THE KNOWLEDGE OF BASIC MECHANISMS INVOLVED IN THE FUNCTIONING OF AN ELECTRONIC CALCULATOR (VON NEUMANN MACHINE), THE SKILL TO MAKE CONVERSIONS BETWEEN NUMBERS REPRESENTED IN DIFFERENT BASES (DECIMAL / BINARY AND VICEVERSA), ABILITY TO REPRESENT NUMBERS IN SIGN-AND-MAGNITUDE AND TWO'S COMPLEMENT, ABILITY TO REPRESENT A LOGICAL FUNCTION THROUGH A TRUTH TABLE AND A LOGIC CIRCUIT, ABILITY TO WORK ON THE MAIN DATA STRUCTURES PROVIDED BY PYTHON.
Texts
oDONATELLA SCIUTO, GIACOMO BUONANNO, LUCA MARI: “INTRODUZIONE AI SISTEMI INFORMATICI”. MCGRAW-HILL (V EDIZIONE).
oCAY HORSTMANN, RANCE D. NECAISE: “CONCETTI DI INFORMATICA E FONDAMENTI DI PYTHON”. APOGEO EDUCATION, MAGGIOLI EDITORE (SECONDA EDIZIONE).
oLECTURE NOTES OF THE COURSE AND EXERCISES CAN BE DOWNLOADED FROM THE WEBSITE OF THE COURSE.