LABORATORY OF INFORMATICS

Fisica LABORATORY OF INFORMATICS

0512600017
DEPARTMENT OF PHYSICS "E. R. CAIANIELLO"
EQF6
PHYSICS
2022/2023

OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2017
AUTUMN SEMESTER
CFUHOURSACTIVITY
324LESSONS
336LAB
ExamDate
APPELLO DI FEBBRAIO 202303/02/2023 - 15:00
APPELLO DI FEBBRAIO 202303/02/2023 - 15:00
Objectives
THE COURSE PROVIDES THE FIRST NOTIONS OF COMPUTER SCIENCE AND THE BASIC KNOWLEDGE TO WRITE SMALL PROGRAMS IN C.

KNOWLEDGE AND UNDERSTANDING.
THE STUDENT ACQUIRES:
- BASIC KNOWLEDGE OF THE SCRUCTURE OF A MODERN COMPUTER, BOTH IN TERMS OF ARCHITECTURE AND SOFTWARE.
- ADEQUATE KNOWLEDGE OF THE PRINCIPLES OF COMPUTER PROGRAMMING ALSO IN VIEW OF POSSIBLE APPLICATIONS TO PHYSICS.
- KNOWLEDGE OF THE BASIC SINTAX OF THE C PROGRAMMING LANGUAGE.

APPLYING KNOWLEDGE AND UNDERSTANDING.
THE STUDENT ACQUIRES:
- CAPACITY OF DESIGNING SIMPLE ALGORITHMS.
- CAPACITY OF IMPLEMENTING AN ALGORITHM IN THE C LANGUAGE.
- CAPACITY OF USING COMPUTER PROGRAMMING FOR PROCESS SIMULATION.
MAKING JUDGEMENTS
- THE STUDENT WILL BE ABLE TO IDENTIFY THE MOST PROPER AND EFFICIENT ALGORITHMIC SOLUTION TO A PROBLEM.

COMMUNICATION SKILLS
- THE STUDENT WILL BE ABLE TO DESCRIBE RIGOROUSLY, WITH THE PROPER TECHNICAL TERMINOLOGY, THE ELEMENTARY STEPS THAT FROM THE ALGORITHMIC IDEA LEAD TO THE IMPLEMENTATION AND THE COMPILATION OF A COMPUTER PROGRAM.

LEARNING SKILLS
- THE STUDENT WILL BE ABLE TO PROCEED AUTONOMOUSLY IN THE STUDY OF THE MOST ADVANCED TOPICS IN COMPUTER PROGRAMMING AND THEORY OF ALGORITHMS.
Prerequisites
NONE (THE COURSE IS FOR FIRST-YEAR PHYSICS STUDENTS).
Contents
- NOTIONS ON COMPUTER ARCHITECTURE (LECTURE: 2H / LABORATORY: 0H)
THE VON NEWMANN COMPUTER. INSTRUCTION SET. CLOCK CYCLE. MEMORY READING AND WRITING.

- FOUNDATIONS OF COMPUTER PROGRAMMING AND PROGRAM COMPILATION (LECTURE: 2H / LABORATORY: 3H)
WRITING A SIMPLE PROGRAM. VARIABLES AND ASSIGNMENT. READING INPUT. DEFINING NAMES FOR CONSTANTS. PREPROCESSING. COMPILING. LINKING.

- FORMATTED INPUT/OUTPUT (LECTURE: 2H / LABORATORY: 2H)
THE PRINTF FUNCTION. CONVERSION SPECIFICATIONS. THE SCANF FUNCTION.

- EXPRESSIONS (LECTURE: 3H / LABORATORY: 2H)
ARITHMETIC OPERATORS AND ASSIGNMENT OPERATORS. COMPOSITE ASSIGNMENT; INCREMENT AND DECREMENT OPERATORS; EXPRESSION EVALUATION.

- CONDITIONAL STATEMENTS (LECTURE: 2H / LABORATORY: 2H)
LOGICAL EXPRESSIONS. THE IF STATEMENT. THE ELSE CLAUSE. THE SWITCH STATEMENT.

- LOOPS (LECTURE: 2H / LABORATORY: 2H)
WHILE, DO-WHILE AND FOR INSTRUCTIONS. EXITING FROM A LOOP: BREAK, CONTINUE AND GOTO STATEMENTS.

- BASIC DATA TYPES (LECTURE: 4H / LABORATORY: 2H)
INTEGER TYPES. FLOATING TYPES. CHARACTER TYPES. READING AND WRITING CHARACTERS USING GETCHAR AND PUTCHAR. IMPLICIT AND EXPLICIT (CAST) TYPE CONVERSIONS.

- ARRAYS (LECTURE: 4H / LABORATORY: 2H)
ONE-DIMENSIONAL ARRAYS. MULTI-DIMENSIONAL ARRAYS.

- FUNCTIONS, PROGRAMS AND ALGORITHMS (LECTURE: 6H / LABORATORY: 3H)
DEFINING AND CALLING FUNCTIONS. ARGUMENTS. THE RETURN STATEMENT. PROGRAM TERMINATION. RECURSION. LOCAL AND EXTERNAL VARIABLES. FROM THE ALGORITHM TO THE PROGRAM. EXAMPLE OF A SORTING ALGORITHM. ELEMENTARY NOTIONS OF COMPLEXITY.

- POINTERS (LECTURE: 5H / LABORATORY: 3H)
POINTER VARIABLES. POINTER ASSIGNMENT. POINTERS AS ARGUMENTS. POINTER ARITHMETIC. USING POINTERS FOR ARRAY PROCESSING. USING THE ARRAY NAME AS A POINTER. POINTERS AND MULTI-DIMENSIONAL ARRAYS.

- STRINGS (LECTURE: 4H / LABORATORY: 3H)
STRING LITERALS. STRING VARIABLES. READING AND WRITING STRINGS. ACCESSING THE CHARACTERS IN A STRING. THE C STRING LIBRARY. STRING IDIOMS. ARRAYS OF STRINGS AND
COMMAND LINE ARGUMENTS.
Teaching Methods
THE COURSE INCLUDES BOTH CLASS LECTURES AND LABORATORY PROGRAMMING PRACTICE. EACH TOPIC IS FIRST PRESENTED IN THE THEORY LECTURES AND THEN DEVELOPED IN THE LABORATORY EXERCISES. THE LABORATORY PRACTICE HOURS INCLUDE ALSO THE DEVELOPMENT OF PROGRAMMING PROJECTS UNDER THE GUIDANCE OF THE TEACHER.
Verification of learning
WRITTEN TEST AND LABORATORY TEST. THE LABORATORY TEST IS ONLY FOR STUDENTS WHO PASSED THE WRITTEN TEST WITH A GRADE OF AT LEAST 18/30.
- THE WRITTEN TEST IS A FIRST EVALUATION OF THE STUDENT'S BASIC KNOWLEDGE ON COMPUTER SCIENCE AND COMPUTER PROGRAMMING IN C. IN PARTICULAR, THE STUDENT HAS TO SHOW THE ABILITY OF UNDERSTANDING A C CODE, ALSO IDENTIFYING POSSIBLE ERRORS AND PROPOSING SUITABLE CORRECTIONS. THE GRADE OF THE WRITTEN TEST TAKES INTO ACCOUNT THE CORRECTNESS, THE COMPLETENESS AND THE CLARITY OF THE ANSWERS.

- THE LABORATORY TEST AIMS TO EVALUATE THE ABILITY OF THE STUDENT TO WRITE AUTONOMOUSLY A SMALL PROGRAM FOR A GIVEN PROBLEM. THE TEST REQUIRES ALSO THE COMPILATION, THE EXECUTION OF THE PROGRAM AND FINALLY A TESTING PHASE TO CHECK THE CORRECTNESS OF THE SOLUTION. THE GRADE OF THE LABORATORY TEST DEPENDS ON THE CORRECTNESS OF THE CODE, ITS LOGICAL CLARITY AND ITS EFFICIENCY.

THE FINAL GRADE IS THE MEAN OF THE RESULTS OF TWO TESTS.
THE MINIMUM GRADE (18/30) IS ASSIGNED TO STUDENTS WHO SHOW A LIMITED KNOWLEDGE OF THE BASIC PRINCIPLES OF COMPUTER PROGRAMMING AND SEVERAL DOUBTS ON THEIR APPLICATION.
THE MAXIMUM GRADE (30/30) IS ASSIGNED TO STUDENTS WHO SHOW A DEEP KNOWLEDGE OF THE BASIC PRINCIPLES OF COMPUTER SCIENCE AND COMPUTER PROGRAMMING AS WELL AS THE ABILITY OF WRITING CLEAR AND ESSENTIAL CODE. THE LAUDE IS ATTRIBUTED TO STUDENTS WHO SHOW A VERY HIGH KNOWLEDGE OF THE THEORETICAL PRINCIPLES AS WELL AS THE ABILITY TO FIND EXTREMELY ELEGANT AND EFFICIENT SOLUTIONS.

AS FAR AS THE RESTRICTIONS IMPOSED BY COVID-19 EMERGENCY WILL BE IN FORCE, THE ABOVE MENTIONED TESTS MIGHT BE OPERATED REMOTELY.
Texts
TITLE: C PROGRAMMING: A MODERN APPROACH
AUTHOR: K. N. KING
PUBLISHER: W. W. NORTON & COMPANY, SECOND EDITION, 2008.

TITLE: THE C PROGRAMMING LANGUAGE.
AUTHORS: BRIAN W. KERNIGHAN, DENNIS M. RITCHIE.
PUBLISHER: PRENTICE HALL; 2 EDITION.
More Information
TEACHER'S E-MAIL ADDRESS: GIDEMARCO@UNISA.IT
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2023-01-23]