FOUNDATIONS OF COMPUTER SCIENCE

Ingegneria Elettronica FOUNDATIONS OF COMPUTER SCIENCE

0612400005
DIPARTIMENTO DI INGEGNERIA INDUSTRIALE
EQF6
ELECTRONIC ENGINEERING
2016/2017

OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2016
PRIMO SEMESTRE
CFUHOURSACTIVITY
660LESSONS
Objectives
EXPECTED LEARNING OUTCOMES AND SKILLS

THE COURSE PROVIDES STUDENTS WITH THE BASIC ELEMENTS FOR THE RESOLUTION OF PROBLEMS THROUGH THE FORMULATION OF ALGORITHMS IMPLEMENTED IN THE C PROGRAMMING LANGUAGE, THE MAIN ASPECTS RELATED TO THE REPRESENTATION OF INFORMATION AND ITS USE WITHIN THE SYSTEM, THE OPERATION OF MODERN COMPUTERS.
THE COURSE OFFERS A VARIETY OF PRACTICAL EXERCISES TO LET STUDENTS ACQUIRE PROBLEM-SOLVING TECHNIQUES AND THE ABILITY OF IMPLEMENTING THEIR SOLUTIONS IN A HIGH LEVEL LANGUAGE. CONCEPTS ARE PRESENTED DURING THE LECTURES AND THE SOLUTIONS ARE REALIZED BY IMPLEMENTING PROGRAMS IN C LANGUAGE DURING HOURS OF EXERCISE.

- KNOWLEDGE AND UNDERSTANDING
KNOWLEDGE OF THE ARCHITECTURE OF A COMPUTER AND INFORMATION CODING, THE CONSTRUCTS OF A PROGRAMMING LANGUAGE FOR HIGH-LEVEL REPRESENTATION OF THE ALGORITHM THROUGH PSEUDOCODE AND FLOW-CHART, ALGORITHMS REMARKABLE, THE MAIN DATA STRUCTURES.

- APPLYING KNOWLEDGE AND UNDERSTANDING
ABILITY TO DEVELOP ALGORITHMS OF COMPLEXITY NOT ELEVATED THROUGH THE DECOMPOSITION INTO SUB-PROBLEMS, ABILITY TO TRANSLATE THESE ALGORITHMS IN C LANGUAGE BY ADOPTING METHODOLOGIES OF STRUCTURED PROGRAMMING, TAKING CARE OF THE COMPREHENSIBILITY OF THE PROGRAMS, THE ABILITY TO VERIFY THE CORRECT OPERATION OF THE PROGRAMS.

- MAKING JUDGEMENT
KNOW HOW TO EVALUATE AND CHOOSE THE APPROPRIATE CONSTRUCTS OF THE PROGRAMMING LANGUAGE FOR ENCODING AN ALGORITHM.

- COMMUNICATION SKILLS
THE STUDENT WILL ACQUIRE THE TERMINOLOGY OF COMPUTER SCIENCE AND PROGRAMMING LANGUAGE C.

- ABILITY TO LEARN
THE COURSE AIMS TO DEVELOP THE LEARNING CAPABILITY OF STUDENTS TO ENABLE THEM TO UPDATE, AUTONOMOUSLY AND CONTINUALLY, THEIR KNOWLEDGE AND SKILLS TO APPLY THE METHODS ACQUIRED IN OTHER AREAS THAN THOSE INVESTIGATED DURING THE COURSE, BY USING DIFFERENT INFORMATION SOURCES FROM TEXTBOOKS SUCH AS ONLINE RETRIEVABLE INFORMATION.
Prerequisites
NONE.
Contents
BASIC CONCEPTS ( 4H LECTURE 1H EXERCISE)

INTRODUCTION: INFORMATION, ALGORITHMS, HARDWARE AND SOFTWARE.

ARCHITECTURE OF A SYSTEM FOR INFORMATION PROCESSING : ELEMENTS OF THE VON NEUMANN MACHINE , CODING OF DATA AND INFORMATION (CODING OF NUMBERS, CHARACTERS, BINARY OPERATIONS)

BOOLEAN ALGEBRA

- FUNDAMENTALS OF PROGRAMMING ( 20H LECTURE 10H EXERCISE)

HIGH AND LOW LEVEL PROGRAMMING LANGUAGES. THE C PROGRAMMING LANGUAGE. TYPES AND VARIABLES. SIMPLE TYPES (THE TYPE INT , FLOAT AND DOUBLE , CHAR , USER-DEFINED ).

OPERATORS . EXPRESSIONS. ASSIGNMENT . SELECTION AND LOOP STATEMENTS.

STRUCTURED TYPES (MONO AND MULTIDIMENSIONAL ARRAYS, STRUCTURES , POINTERS, STRINGS)

INCREMENTAL CONSTRUCTION OF PROGRAMS WITH A TOP-DOWN PROCESS. FUNCTIONAL DECOMPOSITION. FUNCTIONS , PROTOTYPES, CALL BY VALUE AND BY REFERENCE, SIDE EFFECTS, VISIBILITY RULES, PREDEFINED PROCEDURES AND FUNCTIONS , C STANDARD LIBRARY.

FILES. FILE AND STREAM, SEQUENTIAL ACCESS, RANDOM ACCESS, TEXT FILES, READING AND WRITING.

- DEVELOPMENT OF ALGORITHMS ( 15 H LECTURES 10H EXERCISE).

DEVELOPMENT ENVIRONMENTS. COMPILERS AND INTERPRETERS. BASIC ALGORITHMS.
DEVELOPMENT OF ALGORITHMS ON VECTORS AND MATRICES (MINIMUM, MAXIMUM , MEAN, MEDIAN, MODE , TRANSPOSE OF A MATRIX , SCALAR PRODUCT, MATRIX PRODUCT), RESEARCH (LINEAR, BINARY ) AND SORTING (BUBBLE SORT , SELECTION SORT ), APPROXIMATION TECHNIQUES FOR SOLVE EQUATIONS NUMERICALLY, INTRODUCTION TO POINTERS AND DYNAMIC MEMORY ALLOCATION.
Teaching Methods
THE COURSE INCLUDES LECTURES AND PRACTICAL EXERCISES ON THE TOPICS COVERED IN CLASS . THE EXERCISES PROVIDE FOR THE RESOLUTION OF PROBLEMS THROUGH THE FORMULATION OF ALGORITHMS THAT ARE TRANSLATED INTO THE C PROGRAMMING LANGUAGE AND TESTED TO VERIFY THEIR CORRECTNESS.
Verification of learning
THE ACHIEVEMENT OF THE OBJECTIVES CAN BE ACHIEVED IN TWO WAYS:

- DURING THE DELIVERY OF THE COURSE:

A) FIRST VERIFICATION . CARRIED OUT DURING THE PERIOD OF SUSPENSION. IT WILL FOCUS ON PRACTICAL EXERCISES RELATED TO THE DEVELOPMENT OF A PROGRAM IN C LANGUAGE AND THEORETICAL QUESTIONS ON THE PART OF THE PROGRAM CARRIED OUT IN THE FIRST PART OF THE COURSE.

B ) FINAL VERIFICATION. IT WILL FOCUS ON PRACTICAL EXERCISES AND THEORETICAL QUESTIONS ON THE PART OF THE PROGRAM CARRIED OUT IN THE FIRST PART OF THE COURSE.

C) ORAL EXAMINATION. DISCUSSION OF THE WRITTEN TESTS AND OF THE LISTING OF THE RUNNING C PROGRAM PRESENTED BY THE STUDENT DURING THE INTERVIEW.

- SUCCESSIVE EXAMS.
A) WRITTEN TEST. THIS CONSISTS ON THE DEVELOPMENT OF A PROGRAM IN C LANGUAGE, AND QUESTIONS ON ALL THE TOPICS COVERED IN THE COURSE.

B) ORAL EXAMINATION. THE DISCUSSION WILL START FROM THE CONTENTS OF THE WRITTEN TESTS AND OF THE LISTING OF THE RUNNING C PROGRAM PRESENTED BY THE STUDENT DURING THE INTERVIEW.
Texts
M. DESANTO, F. COLACE, P. NAPOLETANO INFORMATICA PER LE ARTI VISIVE, LA MUSICA E LO SPETTACOLO, MCGRAW-HILL, 2012

PAUL J. DEITEL - HARVEY M. DEITEL, IL LINGUAGGIO C - FONDAMENTI E TECNICHE DI PROGRAMMAZIONE, PEARSON.

ADDITIONAL MATERIAL IS AVAILABLE ON THE COURSE WEBSITE.

SUGGESTED TEXTBOOKS:

FURTHER READING FOR SOME ASPECTS OF THE C LANGUAGE:
B.W. KERNIGHAN, D. RITCHIE - C LANGUAGE, PEARSON-PRENTICE HALL, 2ND EDITION.
More Information
THE COURSE IS DELIVERED IN PRESENCE WITH MANDATORY ATTENDANCE.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-03-11]