COMPUTER PROGRAMMING

Francesco ORCIUOLI COMPUTER PROGRAMMING

0212700119
DIPARTIMENTO DI SCIENZE AZIENDALI - MANAGEMENT & INNOVATION SYSTEMS
EQF6
BUSINESS MANAGEMENT
2018/2019

OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2014
PRIMO SEMESTRE
CFUHOURSACTIVITY
1060LESSONS
Objectives
TEACHING REFERS TO A FIRST COMPUTER PROGRAMMING COURSE.

KNOWLEDGE AND UNDERSTANDING:
STUDENTS WILL GAIN KNOWLEDGE RELATED TO THE CONCEPTS OF "ALGORITHMIC PROBLEM", "PROBLEM INSTANCE", "PROGRAMMING LANGUAGE", "PROGRAM" AND "INPUT/OUTPUT OF A PROGRAM". THE COURSE AIMS AT ALLOWING STUDENTS TO UNDERSTAND THE FUNDAMENTAL CONSTRUCTS OF HIGH LEVEL PROGRAMMING LANGUAGES AND PROBLEM SOLVING TECHNIQUES. STUDENTS WILL ALSO GAIN KNOWLEDGE ON PYTHON PROGRAMMING LANGUAGE AND THEY WILL UNDERSTAND THE IMPORTANCE OF TOOLS AND METHODS FOR SOFTWARE ENGINEERING.

APPLYING KNOWLEDGE AND UNDERSTANDING:
AT THE END OF THE COURSE, STUDENTS WILL BE ABLE TO APPLY THE ACQUIRED SKILLS FOR UNDERSTANDING AND ANALYZING PROBLEMS, DESIGNING ALGORITHMS, DEVELOPING PYTHON PROGRAMS AND REALIZING COMMAND-LINE SOFTWARE.
STUDENTS WILL DEVELOP THE ABILITY TO COMMUNICATE AND CORRECTLY SHARE INFORMATION, IDEAS, PROBLEM STATEMENTS AND SOLUTIONS IN THE CONTEXT OF SOFTWARE DEVELOPMENT PROCESSES.
MOREOVER, STUDENTS WILL DEVELOP THE ABILITY TO IDENTIFY THE MOST APPROPRIATE DATA STRUCTURES AND CONSTRUCTS TO SOLVE SPECIFIC ALGORITHMIC PROBLEMS.
LASTLY, STUDENTS WILL DEVELOP THE ABILITY TO FACE THE STUDY OF OTHER PROGRAMMING LANGUAGES/TECHNIQUES AND LEARN, IN FURTHER STUDIES, THE ALGORITHM COMPLEXITY ANALYSIS.
Prerequisites
BASIC NOTIONS RELATED TO COMPUTER ARCHITECTURES, OPERATING SYSTEMS AND NETWORKING ARE CONSIDERED USEFUL TO FRUITFULLY ATTEND THIS COURSE.
Contents
THE MAIN SUBJECTS OF THE COURSE WILL BE:

- BASIC NOTIONS ON COMPUTER ARCHITECTURES (4 HOURS)
- INTRODUCTION TO COMPUTER PROGRAMMING (4 HOURS)
- PROBLEM SOLVING TECHNIQUES (6 HOURS)
- ALGORITHM DESIGN AND DESCRIPTION (8 HOURS)
- PYTHON PROGRAMMING AND MAIN PROGRAMMING CONSTRUCTS: DATA TYPES AND EXPRESSIONS, CONTROL STATEMENTS, STRINGS AND FILES, LISTS AND DICTIONARIES, FUNCTIONS (28 HOURS)
- LISTS FOR IMPLEMENTING ARRAYS AND MATRICES (10 HOURS)
Teaching Methods
THE TEACHING ACTIVITIES WILL BE DIVIDED INTO LECTURES (AIDED BY MULTIMEDIA MATERIAL) AND LABORATORY LESSONS WHERE STUDENTS WILL APPLY WHAT THEY LEARNED IN THE CLASSROOM AND THROUGH INDIVIDUAL STUDIES.
Verification of learning
THE FINAL EXAM WILL CONSIST OF TWO PARTS: THE PRACTICAL TEST (2 HOURS) AND THE ORAL EXAMINATION (30 MINUTES). FOR THE PRACTICAL TEST, WHICH IS A PREREQUISITE FOR THE PARTICIPATION TO ORAL EXAMINATION, IT WILL BE ASKED TO WRITE A PROGRAM IN PYTHON TO SOLVE A GIVEN PROBLEM. THE ORAL EXAMINATION WILL FOCUS ON A DISCUSSION RELATED TO ALL TOPICS COVERED DURING THE TEACHING ACTIVITIES AND ON STUDENTS’ SELF-ASSESSMENT. STUDENTS WILL BE EVALUATED BY USING A SCALE OF 30.
Texts
MAIN TEXTBOOK:

- KENNETH A. LAMBERT, “FUNDAMENTAL OF PYTHON: FIRST PROGRAMS, COURSE TECHNOLOGY” - CENGAGE LEARNING, 2012

OTHER MATERIAL:

- ADITYA Y. BHARGAVA, “GROKKING ALGORITHMS: AN ILLUSTRATED GUIDE FOR PROGRAMMERS AND OTHER CURIOUS PEOPLE”, MANNING, 2016
More Information
ADDITIONAL LEARNING RESOURCES WILL BE AVAILABLE ON THE WEB SITE OF THE TEACHER.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-10-21]