Francesco COLACE | FOUNDATIONS OF COMPUTER SCIENCE
Francesco COLACE FOUNDATIONS OF COMPUTER SCIENCE
cod. 0612400005
FOUNDATIONS OF COMPUTER SCIENCE
0612400005 | |
DIPARTIMENTO DI INGEGNERIA INDUSTRIALE | |
EQF6 | |
ELECTRONIC ENGINEERING | |
2017/2018 |
OBBLIGATORIO | |
YEAR OF COURSE 1 | |
YEAR OF DIDACTIC SYSTEM 2016 | |
PRIMO SEMESTRE |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
INF/01 | 6 | 60 | LESSONS |
Objectives | |
---|---|
The course provides students with the basic elements for analyzing and solving complex problems through the formulation of algorithms. Students will also learn the ability to implement algorithms through the C programming language. This will enable learners to compare the basic aspects of information representation by including the operation of modern information processing systems in the field. The course offers practical exercises in which students will acquire methodologies and techniques of "Problem Solving" and the ability to implement original solutions through a programming language. KNOWLEDGE AND UNDERSTANDING Knowledge of computer architecture and encoding information, constructs of a high level programming language, representation of pseudocode algorithms and flowcharts, remarkable algorithms, major data structures. APPLYING KNOWLEDGE AND UNDERSTANDING Students at the end of the course will acquire: - the ability to design and develop complex algorithms by decomposing it into sub-problems - the ability to translate in the C language algorithms through the adoption of structured programming "state of the art" methodologies - the ability to verify through "testing" procedures the correctness of the programs. JUDGMENT AUTONOMY Students will acquire the ability to select the best solution for solving a given problem by evaluating and choosing the appropriate programming language constructs to encode the algorithm. COMMUNICATION SKILLS At the end of the course the student will acquire the basic vocabulary of computer science. In particular, the student will be able to represent the algorithm through appropriate formalisms and translate it into language C, commenting appropriately. CAPACITY TO APPLY KNOWLEDGE The course aims to develop students' learning abilities to allow them to continuously update their knowledge and skills. Students should be able to apply the acquired knowledge to different contexts from those presented during the course and to deepen the topics discussed using materials other than those proposed |
Prerequisites | |
---|---|
None |
Contents | |
---|---|
BASIC CONCEPTS 8 Hours (5 hours of LESSON - 3 hours of EXERCISE) INFORMATION, ALGORITHMS, HARDWARE AND SOFTWARE ARCHITECTURE OF AN INFORMATION PROCESSING SYSTEM: VON NEUMANN MACHINE ELEMENTS, DIGITAL CODIFICATION OF DATA AND INFORMATION, BOOLE ALGEBRA - Design and implementation of algorithms 20 hours (10 hours LESSON 10 HOUR EXERCISE). DEVELOPMENT ENVIRONMENTS. BASIC ALGORITHMS. DEVELOPMENT OF ALGORITHMS ON VECTORS AND MATRICES, SEARCH AND SORTING ALGORITHMS. INTRODUCTION TO POINTERS IN C LANGUAGE - Introduction to Coding 32 hours (5 hours LESSON 27 hours EXERCISE) HIGH AND LOW LEVEL PROGRAMMING LANGUAGES. C LANGUAGE. TYPES AND VARIABLES. SIMPLE TYPES (TYPE INT, FLOAT AND DOUBLE, CHAR, DEFINED BY USER). OPERATORS. EXPRESSIONS. ASSIGNMENT. SELECTION INSTRUCTIONS. CYCLES. STRUCTURAL TYPES (ARRAY, MATRIX, STRUCTURES, STRING MANAGEMENT) INCREMENTAL BUILDING OF TOP-DOWN PROGRAMS. FUNCTIONAL DECOMPOSITION. FUNCTIONS, PROTOTYPES, CALLS FOR VALUE AND REFERENCE, COLLATERAL EFFECTS, VISIBILITY RULES, MANAGEMENT oF TEXT FILE, READING AND WRITING OPERATIONS. |
Teaching Methods | |
---|---|
THE COURSE INCLUDES CLASSROOM LECTURES AIMED AT PRESENTING THE THEORY AND NUMERICAL EXCERCISES TO STRENGTHEN THE OPERATIONAL SKILLS. THE EXERCISES ASSIGNED TO STUDENTS ARE SOLVED IN CLASS BY THE TEACHER USING THE TECHNIQUES PRESENTED IN THEORY LECTURES. THE EXCERCISES ARE LED BY THE TEACHER TO DEVELOP THE STUDENT'S ABILITY TO IDENTIFY THE MOST APPROPRIATE SOLUTION TECHNIQUES AND PRESENT THE RESULTS IN A CLEAR AND EFFICIENT WAY. |
Verification of learning | |
---|---|
THE ASSESSMENT OF THE ACHIEVEMENT OF LEARNING OBJECTIVES IS CARRIED OUT BY A WRITTEN AND AN ORAL TEST. A MININUM GRADE OF 18/30 HAS TO BE OBTAINED AT THE WRITTEN TEST TO PROCEED TO THE ORAL EXAM. PARTIAL (WRITTEN) TESTS ARE ORGANIZED DURING THE COURSE PERIOD. iN CASE OF POSITIVE RESULTS, THEY ALLOW ADMISSION TO THE ORAL TEST. THE WRITTEN TEST IS DESIGNED TO EVALUATE THE OPERATIONAL CAPABILITIES IN DESIGNING AND IMPLEMENTING ALGORITHMS. THE ORAL EXAMINATION IS AIMED AT VERIFYING THE LEVEL OF THE THEORETICAL KNOWLEDGE AND SKILLS GAINED BY THE STUDENT. THE FINAL SCORE IS OBTAINED BY THE AVERAGE OF THE TWO TESTS. |
Texts | |
---|---|
- Sciuto, Buonanno, Mari, Introduzione ai Sistemi Informatici, McGraw Hill, V Edizione - Brian W. Kernighan, Dennis M. Ritchie Il linguaggio C. Principi di programmazione e manuale di riferimento, Pearson - Power Point Presentations and Lecture Notes avalaible on the Professor Web Site http://docenti.unisa.it/003563/home |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-05-14]