The student will be able to:
1. explain basic programming constructs
2. solve a problem by constructing a structured program. The problem should be of the nature so that it needs iteration, selection, variables, functions with several arguments and definition of at least one data structure.
3. use the standard library of the programming language
4. perform basic debugging of a program
Programming: basic knowledge in structured programming as well as problem solving and debugging.
The programming language: basic language concepts such as data types, logical operations, selection, iteration, functions, call-by-value, call-by-reference, recursion, arrays, data structures, strings, input and output, file handling and dynamic memory management.
The course presents fundamentals of programming computers by adopting C ++ as the reference language. In particular, basic concepts of structured programming and the OOP (Object-Oriented Programming) are introduced. Furthermore, encoding of fundamental algorithms and some OOP software design techniques are discussed.
Knowledge and understanding the primary objective of the course is the students' acquisition of the "philosophy" of the structured programming and of the OOP, as well as the detailed knowledge of the syntax and the semantics of the C++ programmig language.
Applying knowledge and understanding the goal of the course is to provide the tools to achieve the following skills: - Translate algorithmic ideas into code; - Design, describe and implement programs in C++; - Debug C++ programs with professional tools; - Understand simple recursive algorithms; - Analyze and describe Object-Oriented solutions using UML (Unified Language Modeling) class diagrams; - Design, implement and correctly use hierarchies of polymorphic classes and generic code; - Read, understand and analyze third-party C++ code also in terms of efficiency; - Orient yourself in the documentation of the libraries.
Making judgments: through the examination of a large number of examples of Object-Oriented programs and various practical programming sessions, the student will be able, both independently and in a cooperative form, to analyze problems and design and implement related software solutions.
Communication skills the student will acquire the necessary communication skills and expressive appropriateness in the use of technical verbal language and UML visual language in computer programming.
Learning skills the course aims to provide to the student the theoretical and practical methodologies needed in professional contexts and, in particular, the ability to formulate ad-hoc algorithms for problem solving and the opportunity to learn quickly the C++ programming language.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
To familiarise students with essential elements of computer programming in general and the C programming language in particular.
To provide a basic understanding of algorithmic problem solving principles and develop further coding skills towards moderately
complex applications.
1st Week Computer architecture basics, hardware, software, operating systems.
2nd Week Design of computer programmes, algorithm development, flowcharts.Programming languages: classification, examples, history, components. Compilers, interpreters, assemblers and their characteristics.
3rd Week Introduction to the C programming language: history, features.
4th Week Variables, basic data types. Operators: numerical, bitwise, relational, logical and their priorities.
5th Week Data input-output and formatting. Functions enabling character input-output.
6th Week Algebraic operators. Logical expressions, statements and operators.
7th Week Programme flow control fundamentals. The if-else commands and variants. The switch command.
8th Week The while command. The do-while command. The for command. Nested execution.
9th Week Functions: user-defined, library, declaration and call.
10th Week Pointers, string management.
11th Week Arrays, character arrays and associated declaration procedures.
12th Week Passing arrays to functions. Multi-dimensional arrays.
13th Week Structures: definition, fields, variable declaration. Arrays of structures. Passing structure elements to functions. Pointers to structures. Nested structures.