Computer science | ADVANCED PROGRAMMING
Computer science ADVANCED PROGRAMMING
cod. 0512100047
ADVANCED PROGRAMMING
0512100047 | |
DIPARTIMENTO DI INFORMATICA | |
EQF6 | |
COMPUTER SCIENCE | |
2020/2021 |
YEAR OF COURSE 3 | |
YEAR OF DIDACTIC SYSTEM 2017 | |
PRIMO SEMESTRE |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
INF/01 | 6 | 48 | LESSONS |
Objectives | |
---|---|
KNOWLEDGE AND UNDERSTANDING THE STUDENT WILL ACQUIRE KNOWLEDGE, SKILLS, AND THE PRACTICAL EXPERIENCE NEEDED TO DESIGN AND IMPLEMENT COMPLEX PROGRAMS, IN PARTICULAR WITH REGARD TO THE OOP AND FUNCTIONAL PROGRAMMING PARADIGMS. DURING THE INITIAL PART OF THE COURSE THE STUDENT WILL UNDERSTAND THE TECHNOLOGIES (STATE OF THE ART) NEEDED TO DESIGN A COMPLEX PROGRAM. LATER ON, THE STUDENT WILL BE ENCOURAGED TO APPLY THE ACQUIRED KNOWLEDGE IN DESIGNING AND DEVELOPING A MORE COMPLEX APPLICATION WITH ROBUSTNESS AND EFFICIENCY REQUIREMENTS. APPLYING KNOWLEDGE AND UNDERSTANDING AT THE END OF THE COURSE, THE STUDENT WILL BECOME FAMILIAR WITH THE MOST IMPORTANT CONSTRUCTS OF OBJECT-ORIENTED PROGRAMMING AND FUNCTIONAL PROGRAMMING, AND WITH OTHER RELEVANT ADVANCED ASPECTS OF PYTHON PROGRAMMING, SUCH AS CONCURRENCY AND NETWORKING. MOREOVER, THE STUDENT WILL BE ABLE TO USE THE STUDIED DESIGN PATTERNS AS GENERAL SCHEMES FOR THE SOLUTION OF SPECIFIC PROBLEMS IN SOFTWARE DEVELOPMENT. THE STUDENT WILL BE ABLE TO DESIGN AND DEVELOP COMPLEX PROGRAMS, AND TO VERIFY THEIR CORRECTNESS, PORTABILITY AND MAINTAINABILITY. |
Prerequisites | |
---|---|
BASIC KNOWLEDGE OF AN IMPERATIVE PROGRAMMING LANGUAGE AND AN OBJECT ORIENTED PROGRAMMING LANGUAGE. |
Contents | |
---|---|
A REVIEW OF THE FUNDAMENTALS OF PYTHON PROGRAMMING (4 HOURS) OBJECT ORIENTED PROGRAMMING IN PYTHON (3 ORE) EXCEPTIONS, ASSERTIONS (2 HOURS) FUNCTIONAL PROGRAMMING (5 HOURS) CREATIONAL DESIGN PATTERNS (3 HOURS) STRUCTURAL DESIGN PATTERN (4 HOURS) BEHAVIORAL DESIGN PATTERNS (6 HOURS) INTROSPECTION (4 HOURS) GENERATORS, COROUTINES (3 ORE) MEMORY MANAGEMENT, GARBAGE COLLECTION (2 HOURS) INPUT-OUTPUT, SERIALIZATION (2 HOURS) MULTIPROCESSING (3 HOURS) MULTITHREADING (3 HOURS) NETWORKING (4 HOURS) |
Teaching Methods | |
---|---|
THE COURSE CONSISTS OF 48 HOURS OF CLASS LECTURES AIMED AT SHOWING CONCEPTS OF ADVANCED PROGRAMMING ALSO THROUGH MANY EXAMPLES OF CODE FRAGMENTS. THE STUDENTS WILL BE ALSO ENCOURAGED TO SOLVE PROGRAMMING EXERCISES THAT INVOLVE THE USE OF THE ILLUSTRATED TECHNIQUES. |
Verification of learning | |
---|---|
THE EXAM CONSISTS IN A PROGRAMMING EXAMINATION AND AN ORAL DISCUSSION. THE EXAM IS MAINLY INTENDED TO ASSESS THE LEVEL OF KNOWLEDGE AND UNDERSTANDING OF THE METHODOLOGIES PRESENTED IN CLASS. THE FINAL GRADE IS THE AVERAGE OF THE GRADES OF THE PROGRAMMING EXAM AND THE ORAL DISCUSSION. |
Texts | |
---|---|
MARK LUTZ, "LEARNING PYTHON", O'REILLY, 5TH EDITION. MARK SUMMERFIELD, “PYTHON IN PRACTICE: CREATE BETTER PROGRAMS USING CONCURRENCY, LIBRARIES, AND PATTERNS ”, ADDISON-WESLEY PROFESSIONAL. TEACHING MATERIAL MADE AVAILABLE BY THE LECTURER AND MATERIAL TAKEN FROM TEXTBOOKS THAT WILL BE REFERENCED DURING THE LESSONS. |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]