First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Engineering
COMPUTER ENGINEERING
Course unit
PROGRAMMING LABORATORY
INP8084324, A.A. 2019/20

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course First cycle degree in
COMPUTER ENGINEERING
IN0508, Degree course structure A.Y. 2011/12, A.Y. 2019/20
N0
bring this page
with you
Degree course track Common track
Number of ECTS credits allocated 6.0
Type of assessment Mark
Course unit English denomination PROGRAMMING LABORATORY
Department of reference Department of Information Engineering
E-Learning website https://elearning.dei.unipd.it/course/view.php?idnumber=2019-IN0508-000ZZ-2018-INP8084324-N0
Mandatory attendance No
Language of instruction Italian
Branch PADOVA
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Lecturers
Teacher in charge STEFANO GHIDONI ING-INF/05

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Basic courses ING-INF/05 Data Processing Systems 6.0

Course unit organization
Period First semester
Year 2nd Year
Teaching method frontal

Type of hours Credits Teaching
hours
Hours of
Individual study
Shifts
Lecture 6.0 48 102.0 No turn

Calendar
Start of activities 30/09/2019
End of activities 18/01/2020
Show course schedule 2019/20 Reg.2011 course timetable

Examination board
Board From To Members of the board
1 A.A. 2019/2020 01/10/2019 15/03/2021 GHIDONI STEFANO (Presidente)
DABERDAKU SEBASTIAN (Membro Effettivo)
FANTOZZI CARLO (Supplente)
MORO MICHELE (Supplente)

Syllabus
Prerequisites: The course relies on preliminary knowledge of: fundamentals of programming (loops, conditions, variables, functions), computer architecture, algorithmics.
Target skills and knowledge: The course will provide the following knowledge and abilities:
- Know cycles, conditions and basic algorithms in the C++ language.
- Know advanced programming patterns in C, with a focus both on syntax and semantics.
- Develop the ability of using advanced tools typical of the C++ language: pointers and memory management, generic programming, and compare them against other popular programming languages.
- Develop the ability of developing a software project of good quality, offering a high level of readability, modularity, and being easy to maintain.
- Develop the ability of linking the memory management tools in C++ with computers operation.
Examination methods: Evaluation of knowledge and abilities acquired will be as follows:
- An evaluation of the software produced in three lab experiences, guided by the teacher - 10% of the final mark.
- An evaluation of code development capabilities, based on the evaluation of an individual software project developed by the student. The project will be discussed during the oral exam. Both software produced and oral examination will determine 90% of the final mark.
Assessment criteria: Evaluation criteria are as follows:
- For the evaluation of lab session software: capability of managing fundamental and advanced C++ language tools.
- For the evaluation of software project and oral exam: capability of developing a medium-sized software project, quality of delivered software, efficiency of the algorithmic solution proposed, quality of the theoretical tools and ability of using such tools for solving a specific problem.
Course unit contents: 1. Introduction to the C++ programming language
2. Syntax and program basic structure
3. Compiling, linking and executing - building of programs and libraries
4. Main language elements - cycles, conditional instructions, variables and scoping, functions
5. Pointers and their use for effective programming
6. Memory management in C, dynamic memory allocation
7. Generic programming
8. Classes and Standard Template Library (STL)
Planned learning activities and teaching methods: Teaching is developed by means of frontal lectures (at the blackboard and/or using slides), and eight lab lectures, in which students are assisted in their first steps towards the use of software development tools introduced in the course. Interactive teaching techniques will often be used, including think-pair-share and interactive discussions of a few minutes on open questions. This will enforce active learning and the ability to reflect on things.
Additional notes about suggested reading: All topics will be covered during the lectures. Slides will be made available on Elearning, together with examples of software development. Students' notes could be integrated using the books, and further material provided by the teacher on Elearning.
Textbooks (and optional supplementary readings)
  • Stroustrup, Bjarne, Programmingprinciples and practice using C++Bjarne Stroustrup. Upper Saddle River: NJ [etc.], Addison-Wesley, 2014. Cerca nel catalogo

Innovative teaching methods: Teaching and learning strategies
  • Lecturing
  • Laboratory
  • Problem based learning
  • Case study
  • Interactive lecturing
  • Working in group
  • Problem solving
  • Flipped classroom

Innovative teaching methods: Software or applications used
  • Moodle (files, quizzes, workshops, ...)

Sustainable Development Goals (SDGs)
Quality Education Industry, Innovation and Infrastructure