COMPUTER SCIENCE AND PROGRAMMING FOUNDATIONS

Mario Casillo COMPUTER SCIENCE AND PROGRAMMING FOUNDATIONS

0612600046
DIPARTIMENTO DI INGEGNERIA INDUSTRIALE
EQF6
INDUSTRIAL ENGINEERING AND MANAGEMENT
2020/2021

OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2018
SECONDO SEMESTRE
CFUHOURSACTIVITY
880LESSONS


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. LEARN HOW TO INTERPRET AND UNDERSTAND A SIMPLE SQL INSTRUCTION.
APPLYING KNOWLEDGE AND UNDERSTANDING – ENGINEERING DESIGN
ABILITY TO ENCODE SIMPLE ALGORITHMS USING PYTHON LANGUAGE. ABILITY TO VERIFY THE CORRECT FUNCTIONING OF PYTHON PROGRAMS. ABILITY TO STRUCTURE SIMPLE QUERIES USING THE SQL LANGUAGE.
MAKING JUDGMENTS – ENGINEERING PRACTICE
ABILITY TO CHOOSE AND USE THE BASIC CONSTRUCTS OF PYTHON LANGUAGE FOR CODING ALGORITHMS. ABILITY TO PRODUCE SIMPLE QUERIES IN SQL LANGUAGE, IN ORDER TO RETRIEVE DATA FROM A DATABASE.
COMMUNICATION SKILLS – TRANSVERSAL SKILLS
THE STUDENT WILL LEARN THE TERMINOLOGY CONCERNING THE COMPUTER SCIENCE AND THE BASIC PRINCIPLES OF THE DATABASE, THE PYTHON PROGRAMMING LANGUAGE AND THE BASIC IDEAS BEHIND THE SQL LANGUAGE.
LEARNING SKILLS – TRANSVERSAL SKILLS
THE AIM OF THE COURSE IS TO DEVELOP STUDENTS' LEARNING ABILITIES, ENABLING THEM TO CONTINUOUSLY UPDATE THEIR KNOWLEDGE AND SKILLS, APPLYING METHODOLOGIES ACQUIRED IN AREAS DIFFERENT FROM THOSE INVESTIGATED DURING THE COURSE, AND USING SOURCES OF INFORMATION OTHER THAN ADOPTED TEXTBOOKS, SUCH AS INFORMATION RETRIEVABLE ONLINE.
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.
INTRODUZIONE ALLE BASI DI DATI ED AL LINGUAGGIO SQL (10H THEORY)
oINTRODUCTION TO DATABASES, DBMS, DATABASE DESIGN PHASES, E-R MODEL.
oINTRODUCTION TO SQL LANGUAGE, DEFINITION OF TABLES, SQL QUERIES, UPDATING INSTRUCTIONS.
oAGGREGATE FUNCTIONS, ALIAS IN SQL, GROUPING.
LINGUAGGIO SQL (10H THEORY)
oDEFINITION OF TABLES, IMPLEMENTATION OF SIMPLE QUERIES, DEFINITION OF UPDATE INSTRUCTIONS, REPRESENTATION OF SIMPLE E-R SCHEMES.
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 ARGUMENTS TREATED IN THE FIRST PART OF THE COURSE. THE SECOND ONE WILL BE ON PRACTICAL EXERCISES RELATED TO THE DEVELOPMENT OF A PROGRAM IN PYTHON. THE THIRD ONE WILL FOCUS ON THE BASICS OF DATABASE IN THE SQL LANGUAGE.
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 AND REGARDING THE DATABASE.
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 CAPACITY 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. BACKGROUND KNOWLEDGE ON DATABASES.
THE CANDIDATE ACHIEVE AN OUTSTANDING GRADE IF HE/SHE IS ABLE TO ADDRESS UNUSUAL PROBLEMS, AS WELL AS PROBLEMS NOT EXPLICITLY COVERED DURING THE COURSE.
THE EVALUATION IS BASED ON THE SKILLS ACQUIRED ON THE CONTENTS AND METHODOLOGICAL TOOLS PRESENTED DURING THE COURSE, ALSO TAKING INTO ACCOUNT THE QUALITY OF THE WRITTEN AND ORAL EXPOSURE, AS WELL AS THE SHOWN AUTONOMOUS ASSESSMENTS.
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.
More Information
SUBJECT DELIVERED IN ITALIAN.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]