Francesco ORCIUOLI | SOFTWARE DESIGN
Francesco ORCIUOLI SOFTWARE DESIGN
cod. 0212800018
SOFTWARE DESIGN
0212800018 | |
DEPARTMENT OF ECONOMICS AND STATISTICS | |
EQF6 | |
STATISTICS FOR BIG DATA | |
2024/2025 |
OBBLIGATORIO | |
YEAR OF COURSE 3 | |
YEAR OF DIDACTIC SYSTEM 2018 | |
SPRING SEMESTER |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
INF/01 | 10 | 60 | LESSONS |
Exam | Date | Session | |
---|---|---|---|
ORCIUOLI | 27/01/2025 - 15:00 | SESSIONE ORDINARIA | |
ORCIUOLI | 27/01/2025 - 15:00 | SESSIONE DI RECUPERO | |
ORCIUOLI | 10/02/2025 - 15:00 | SESSIONE ORDINARIA | |
ORCIUOLI | 10/02/2025 - 15:00 | SESSIONE DI RECUPERO | |
ORCIUOLI | 14/04/2025 - 15:00 | SESSIONE ORDINARIA |
Objectives | |
---|---|
THE COURSE AIMS TO INTRODUCE METHODOLOGIES, TECHNIQUES AND TOOLS SUSTAINING THE SOFTWARE DEVELOPMENT PROCESSES, WITH SPECIFIC REFERENCE TO THE PARADIGMS OF OBJECT-ORIENTED DESIGN AND PROGRAMMING. KNOWLEDGE AND UNDERSTANDING THE COURSE WILL ALLOW STUDENTS TO ACQUIRE KNOWLEDGE AND SKILLS RELATED TO SOFTWARE ENGINEERING, OBJECT-ORIENTED (OO) ANALYSIS/DESIGN/PROGRAMMING, UML (UNIFIED MODELING LANGUAGE), DESIGN PATTERNS AND SOFTWARE ARCHITECTURES AND, LASTLY, TO THE BASIC NOTIONS RELATED TO SOFTWARE PROJECT MANAGEMENT. MOREOVER, STUDENTS WILL HAVE THE OPPORTUNITY TO FACE THE STUDY OF THE OO CONSTRUCTS OF PYTHON PROGRAMMING LANGUAGE (COMPARED TO THOSE OF OTHER LANGUAGES SUCH AS JAVA). ABILITY OF KNOWLEDGE AND UNDERSTANDING THE ACQUIRED KNOWLEDGE AND THE DEVELOPED SKILLS WILL ENABLE STUDENTS TO MATURE COMPETENCIES USEFUL FOR UNDERSTANDING, ANALYZING AND MANAGING PROBLEMS THAT MAY ARISE DURING THE EXECUTION OF SOFTWARE DEVELOPMENT PROCESSES, TO SELECT AND APPLY SUITABLE TOOLS FOR ADDRESSING AND SOLVING THE ABOVE PROBLEMS AND TO CRITICALLY EVALUATE THE ACHIEVED RESULTS. AT THE END OF THE COURSE, STUDENTS WILL LEARN TO DESIGN AND IMPLEMENT DESKTOP AND WEB-BASED SOFTWARE APPLICATIONS, TO INTEGRATE THEIR SOFTWARE WITH BOTH THIRD-PARTY APIS AND THE MOST USED STORAGE SYSTEMS, TO PRODUCE EFFECTIVE DOCUMENTATION AND, LASTLY, TO BETTER MANAGE THE RESOURCES THROUGHOUT THE DEVELOPMENT PROCESS. |
Prerequisites | |
---|---|
HAVING PASSED THE FINAL EXAM OF PROGRAMMING IS MANDATORY TO SOFTWARE DESIGN. MOREOVER, IN ORDER TO ADEQUATELY FACE THIS COURSE, STUDENTS HAVE TO BE ACQUIRED THE FOLLOWING KNOWLEDGE: - COMPUTER PROGRAMMING (PYTHON) - DATABASES AND SQL |
Contents | |
---|---|
THE COURSE FORESEES 60 HOURS OF LESSONS, 40 OF WHICH ARE FRONTAL LESSONS AND 20 OF CLASSROOM EXERCISES. THE MAIN TOPICS OF THE COURSE, ORGANIZED AS A SINGLE MODULE, ARE: - BASICS: IMPROVEMENTS TO BUILT-IN DATA STRUCTURES (8 HOURS OF FRONTAL LESSONS) - STRUCTURED ANALYSIS: ANALYSIS METHODS, FUNCTIONAL DECOMPOSITION, DIAGRAMS, FUNCTIONAL PROGRAMMING (6 HOURS OF FRONTAL LESSONS; 2 HOURS OF PRACTICE) - OBJECT-ORIENTED ANALYSIS AND DESIGN: OO CONSTRUCTS, UML CLASS DIAGRAM AND SEQUENCE DIAGRAM (6 HOURS OF FRONTAL LESSONS; 2 HOURS OF PRACTICE) - OBJECT-ORIENTED PROGRAMMING IN PYTHON: BASIC NOTIONS, ADVANCED NOTIONS, HANDLING OF EXCEPTIONS, HANDLING OF TEXT FILES, MAGIC METHODS (12 HOURS OF FRONTAL LESSONS; 12 HOURS OF PRACTICE) - PATTERN: DESIGN PATTERN, ARCHITECTURAL PATTERN (8 HOURS OF FRONTAL LESSONS; 4 HOURS OF PRACTICE) |
Teaching Methods | |
---|---|
THE TEACHING ACTIVITIES WILL BE DIVIDED INTO LECTURES (AIDED BY MULTIMEDIA MATERIAL), 40 HOURS, AND PRACTICE, 20 HOURS, WHERE STUDENTS WILL APPLY WHAT THEY LEARNED IN THE CLASSROOM AND THROUGH INDIVIDUAL STUDIES. |
Verification of learning | |
---|---|
THE PROFICIENCY EXAM WILL CONSIST OF TWO TESTS: THE WRITTEN TEST (2 HOURS), WHICH IS MEASURED IN THIRTIETHS, AND THE ORAL TEST (MAX 30 MINUTES), ALSO MEASURED IN THIRTIETHS, WHICH WILL BE TAKEN BY THE STUDENT ONLY IF THE WRITTEN TEST IS PASSED (AND THUS SCORED GREATER THAN OR EQUAL TO 18/30). THE WRITTEN TEST GENERALLY CONSISTS OF THREE QUESTIONS. THE FIRST QUESTION (MAX 10 POINTS) AIMS TO ASSESS THE STUDENT'S KNOWLEDGE AND SKILLS REGARDING OBJECT-ORIENTED DESIGN AND THUS THE USE OF UML (SPECIFICALLY CLASS DIAGRAM AND SEQUENCE DIAGRAM). THE SECOND QUESTION (MAX 10 POINTS) ASSESSES THE STUDENT'S KNOWLEDGE AND SKILLS IN APPLYING IN PYTHON THE OBJECT-ORIENTED, FUNCTIONAL AND PROCEDURAL TECHNIQUES EXPLORED IN CLASS. IN THAT QUESTION, THE STUDENT WILL BE ASKED TO DEVELOP THE PYTHON CODE OF A PART OF THE DESIGN PATTERN MADE IN THE FIRST QUESTION. THE THIRD QUESTION AIMS TO ASSESS THE STUDENT'S KNOWLEDGE AND SKILL WITH RESPECT TO THE APPLICATION OF DESIGN PATTERNS (IN PYTHON) TO SPECIFIC CODE DEVELOPMENT PROBLEMS. THE ORAL TEST WILL BE ESSENTIALLY BASED ON AN INTERVIEW THAT WILL FOCUS ON THE DISCUSSION AND CRITICAL ANALYSIS OF THE WRITTEN PROOF DEVELOPED BY THE STUDENT. THE STUDENT WILL, IN ADDITION, BE INVITED TO DISCUSS SOME OF THE TOPICS COVERED DURING THE LECTURES. THE SCORE OF THE ORAL TEST WILL DEPEND ON THE STUDENT'S ABILITY TO EFFECTIVELY PRESENT THE CONTENT AND CRITICALLY DISCUSS THE TOPICS EXPLAINED. THE MINIMUM GRADE FOR THE ORAL EXAM INVOLVES KNOWLEDGE OF THE FUNDAMENTAL CONSTRUCTS OF OBJECT-ORIENTED DESIGN (CLASSES, OBJECTS, ASSOCIATIONS, CONSTRUCTORS/INITIATORS, INHERITANCE, POLYMORPHISM, INFORMATION HIDING) AND THEIR IMPLEMENTATION IN PYTHON. THE TOP GRADE IS ACHIEVED WHEN THE STUDENT DEMONSTRATES THE ABILITY TO CORRECTLY ILLUSTRATE AND DISCUSS, IN ADDITION TO THE ABOVE FUNDAMENTAL CONSTRUCTS, TECHNIQUES AND APPROACHES FOR DEVELOPING HIGH QUALITY CODE (DESIGN PATTERNS, ARCHITECTURAL PATTERNS, DESIGN METHODOLOGIES, ADVANCED PYTHON PROGRAMMING MECHANISMS, ETC.). THE FINAL GRADE WILL BE IN THIRTIETHS AND WILL BE OBTAINED FROM THE AVERAGE OF THE TWO GRADES (WRITTEN AND ORAL). HONORS REQUIRES ACHIEVING THE HIGHEST SCORE ON ALL TESTS AND HAVING DEMONSTRATED ABILITY AND SKILL IN FINDING EFFECTIVE (E.G., USE OF THE MOST APPROPRIATE PATTERN) AND EFFICIENT (MEMORY AND RUN-TIME OPTIMIZATION SOLUTIONS) SOLUTIONS TO SPECIFIC PROBLEMS. |
Texts | |
---|---|
- DUSTY PHILLIPS - "PYTHON 3 OBJECT-ORIENTED PROGRAMMING" - THIRD EDITION - PACKT - JOHN HUNT - "ADVANCED GUIDE TO PYTHON 3 PROGRAMMING" - SPRINGER - JOHN HUNT - "A BEGINNERS GUIDE TO PYTHON 3 PROGRAMMING" - SPRINGER - DANE HILLARD - "PRACTICES OF THE PYTHON PRO" - MANNING - ANAND BALACHANDRAN - "SOFTWARE ARCHITECTURE WITH PYTHON" - PACKT - ANAND BALACHANDRAN - "SOFTWARE ARCHITECTURE WITH PYTHON" - PACKT - KAMON AYEVA - "MASTERING PYTHON DESIGN PATTERNS" - SECOND EDITION - PACKT |
More Information | |
---|---|
ADDITIONAL LEARNING RESOURCES WILL BE AVAILABLE ON THE WEB SITE OF THE TEACHER. |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2025-01-16]