The module starts with the basic aspects of computer engineering, i.e., architectures, programming and simple algorithms. Programming is seen as a problem-solving approach, starting from the understanding and upgrading of existing programs. Basic programming notions are introduced, such as abstraction, abstract data types, control structures. |
Basic notions on mathematical functions, relations and set theory. |
The initial main goal of this corse is to provide the student with the fundamentals on computer architecture and to introduce the C. Programming skills are then seen as a way to solve problems of increasing complexity focusing on the designer’s ability of the students. Notions related to the dynamic memory structures, abstract data types, and recursive programming are introduced. |
-
Data representation. Boolean algebra, logic functions, basic notions on computer architecture
-
Problem solving and algorithms: problem definition, decomposition, data and control flow, variables, constants, expressions, flow charts, elementary debugging strategies
-
Fundamental programming statements in C
-
Syntax and semantics of C
-
Variables, types and assignments
-
Iterative and conditional statements
-
Basic I/O
-
Functions and parameter passing
-
Data structures: scalars, arrays and structure
-
files, strings, structures, dynamic memory allocation
-
Simple problem solving: quadratic sorting algorithms, linear and binary search, merge of arrays, dynamic manipulation of one-dimensional arrays, dynamic manipulation of two-dimensional arrays, queues and stacks on static and dynamic array structures.
-
Recursion basics: recursion tree, termination condition. Simple recursive problem solving: factorial computation, Fibonacci’s numbers, binary search, merge sort, the 8-queens problem.
-
Basic dynamic data structures: lists, queues, stacks
-
Basic notions of algorithms’ complexity
|
Kim N. King: C a Modern approach, 2nd edition
Deitel & Deitel: – C How to program, 5th edition. |
The most part of the lessons are accompanied with some exercises to have the student apply what has learned from the videolesson. |
Professor/Tutor responsible for teaching
|
|