Alfredo Troiano | FUNDAMENTALS OF COMPUTER SCIENCE
Alfredo Troiano FUNDAMENTALS OF COMPUTER SCIENCE
cod. 0612200003
FUNDAMENTALS OF COMPUTER SCIENCE
0612200003 | |
DIPARTIMENTO DI INGEGNERIA INDUSTRIALE | |
EQF6 | |
CHEMICAL ENGINEERING | |
2020/2021 |
OBBLIGATORIO | |
YEAR OF COURSE 1 | |
YEAR OF DIDACTIC SYSTEM 2016 | |
SECONDO SEMESTRE |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
INF/01 | 6 | 60 | LESSONS |
Objectives | |
---|---|
KNOWLEDGE AND UNDERSTANDING: THE COURSE PROVIDES THE STUDENTS WITH THE BASICS OF PROBLEM SOLVING, THROUGH THE FORMULATION OF ALGORITHMS IMPLEMENTED BY THE MATLAB 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. 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. THE CONCEPTS ARE PRESENTED DURING LECTURES AND THE SOLUTIONS ARE REALIZED BY IMPLEMENTING PROGRAMS IN THE MATLAB LANGUAGE DURING THE HOURS OF PRACTICE. 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 MATLAB CODE, BY ADOPTING STRUCTURED PROGRAMMING METHODOLOGIES AND TAKING CARE OF THE COMPREHENSIBILITY OF THE PROGRAMS. LEARN HOW TO INTERPRET AND UNDERSTAND MATLAB CODE. APPLYING KNOWLEDGE AND UNDERSTANDING – ENGINEERING DESIGN ABILITY TO ENCODE SIMPLE ALGORITHMS USING MATLAB LANGUAGE. ABILITY TO VERIFY THE CORRECT FUNCTIONING OF MATLAB PROGRAMS. MAKING JUDGMENTS - ENGINEERING PRACTICE: ABILITY TO CHOOSE AND USE THE BASIC CONSTRUCTS OF MATLAB LANGUAGE FOR CODING ALGORITHMS. COMMUNICATION SKILLS – TRANSVERSAL SKILLS: THE STUDENT WILL LEARN THE TERMINOLOGY CONCERNING THE COMPUTER SCIENCE AND THE MATLAB PROGRAMMING 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) - INFORMATION AND DATA, INFORMATION PROCESSING, HARDWARE AND SOFTWARE. - ARCHITECTURE OF AN INFORMATION PROCESSING SYSTEM. COMPONENTS OF THE VON NEUMANN MACHINE AND ITS OPERATION. FETCH-DECODE-EXECUTE CYCLE. MACHINE CODE. MEMORY HIERARCHY. - REPRESENTATION 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. - BOOLEAN 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) - FORMAL 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-LIFE ACTIVITIES. - STRUCTURED PROGRAMMING. CONTROL STRUCTURES: SEQUENCE, SELECTION, ITERATION. REPRESENTATION OF ELEMENTARY ALGORITHMS BY MEANS OF FLOWCHARTS. - PHASES OF THE PROGRAMMING PROCESS. PROGRAMMING LANGUAGES. BUILDING BLOCKS OF PROGRAMMING LANGUAGES. INTERPRETER, COMPILER AND ASSEMBLER. - CHARACTERISTICS OF A SOFTWARE FOR LEARNING STRUCTURED PROGRAMMING. IMPLEMENTATION OF CONTROL STRUCTURES THROUGH SUCH A SOFTWARE. HOW TO CREATE SIMPLE ALGORITHMS THROUGH SUCH A SOFTWARE. [MATLAB PROGRAMMING] (20H THEORY) - INTRODUCTION TO MATLAB ENVIRONMENT AND MATLAB PROGRAMMING. VARIABLES. ARITHMETIC OPERATORS AND THEIR PRIORITY. WORKSPACE E WORKING SESSION. DOCUMENTATION AND HELP. - MATRIX AND ARRAY. MATRIX AND ARRAY INDEXING. ELEMENTARY OPERATIONS (CREATE, EDIT, DELETE) AND ARITHMETIC OPERATIONS ON ARRAYS AND MATRICES. - INCREMENTAL 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. M-FILE (M-FILE SCRIPT AND M-FILE FUNCTION). INPUT/OUTPUT IN MATLAB. - RELATIONAL OPERATORS AND LOGICAL OPERATORS. SELECTION: IF, IF-ELSE, IF-ELSEIF-ELSE, SWITCH-CASE. ITERATION: FOR, WHILE AND DO-WHILE. BREAK E CONTINUE. - CREATION AND MANAGEMENT OF FILES IN MATLAB. WRITING/READING FILES. IMPORT DATA FROM FILES. - CHARTS IN MATLAB (BAR, HISTOGRAM, ETC.). CREATING AND CUSTOMIZING CHARTS. PLOTTING AND SUBPLOTTING. - AN OVERVIEW OF SIMULINK, DEBUGGING AND RECURSION. [DEVELOPMENT OF ALGORITHMS IN MATLAB] (20H PRACTICE) - DESIGN, DEVELOPMENT AND TESTING OF ALGORITHMS FOR VECTOR AND MATRIX, TO SOLVE TYPICAL PROGRAMMING PROBLEMS: MIX, MAX, MATRIX TRANSPOSE, SCALAR PRODUCT, MATRIX PRODUCT, GREATEST COMMON DIVISOR, LEAST COMMON MULTIPLE, FACTORIAL, PRIMALITY TEST, FIND DIVISORS, ETC. ALGORITHMS FOR SEARCHING. ALGORITHMS FOR SORTING. - DESIGN, DEVELOPMENT AND TESTING OF ALGORITHMS ON VECTORS AND MATRICES, TO SOLVE “REAL LIFE” PROBLEMS, BELONGING TO DIFFERENT CONTEXT |
Teaching Methods | |
---|---|
THE COURSE CONSISTS IN FRONT LESSONS (36 H) AND CLASSROOM EXERCISES (24 H) FOR A TOTAL AMOUNT OF 60 HOURS WHICH ARE WORTH 6 CREDITS. IN PARTICULAR, DURING THE EXERCISES, THE PROPOSED PROBLEMS ARE SOLVED THROUGH ALGORITHMS AND TRANSLATED INTO MATLAB CODE, WHICH WILL BE TESTED TO VERIFY THE RELATIVE CORRECTNESS. ATTENDANCE AT LECTURES IS STRONGLY RECOMMENDED. |
Verification of learning | |
---|---|
THE LEARNING ASSESSMENT CAN OCCUR IN TWO MODES: - DURING THE COURSE (IN ITINERE) A) TWO MIDTERM EXAMS, TO BE CARRIED OUT IN THE PERIOD OF DIDACTIC ACTIVITIES. THE FIRST MIDTERM EXAM CONCERNS THEORETICAL QUESTIONS, REGARDING THE FIRST PART OF THE COURSE, WHEREAS, THE SECOND ONE, REGARDS THE DEVELOPMENT OF MATLAB PROGRAMS. B) ORAL EXAMINATION, CONCERNING THE TOPICS COVERED DURING THE COURSE, AS WELL AS THE MATLAB PROGRAMS WRITTEN BY THE CANDIDATE. - EXAM A) THE WRITTEN TEST CONSISTS IN THE DEVELOPMENT OF MATLAB 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 MATLAB 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 MATLAB (ARRAY AND MATRIX): IN PARTICULAR, THE CANDIDATE NEEDS TO BE ABLE TO INDEX AND MANAGE SUCH DATA STRUCTURES, AS WELL AS TO DEMONSTRATE THE ABILITY IN USING THE MAIN MATLAB FUNCTIONS WORKING ON MATRICES (MIN, MAX, SEARCHING, ETC.). THE CANDIDATE NEEDS TO BE ABLE TO CREATE AND EXPLAIN MATLAB CHARTS. 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 | |
---|---|
- DONATELLA SCIUTO, GIACOMO BUONANNO, LUCA MARI - INTRODUZIONE AI SISTEMI INFORMATICI V EDIZIONE, MCGRAW-HILL. - WILLIAM J. PALM III, MATLAB 7 PER L’INGEGNERIA E LE SCIENZE, MCGRAW-HILL. |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]