Some hints on hardware components and computer architecture.
Algorithms: properties and some examples.
Basic principles of structured programming.
Sequential (linear) search and binary search algorithms.
On algorithm complexity.
Basics on propositional logic.
Basics on binary calculus.
Data structures (stack, queue, binary tree, array, linked list).
The course aims to provide the students with fundamnetal knowledge and understanding in computer science. The concepts of data structure and algoritmh are presented as basic elements of computer science. The course also aims to endow the students with the basic tools in order to correctly apply a computer method to deal with some problem.
Prerequisites
Courses required: none
Teaching Methods
Lectures: presentation of the theory described in the course program, with teacher-student direct interaction, to ensure a full understanding of the subject. Training sessions: some computer application on simple problems.
Type of Assessment
Final written and oral examination. Some exercises and open questions are proposed. The tests are designed to assess the ability of the students to apply their skills. In the evaluation, some attention is paid to the capability of the student to present a short topic in a clear and concise way, with the due correctness.
Course program
Historical introduction to Computer Science. Hints to hardware components and compuer architecture. Main storage and mass storage. Address space. Some on devices. Algorithm. properties and some examples of algorithms. Structured programming: declaration and initialization of variables, selection and iteration constructs. Linear (sequential) search and binary search algorithms. Sorting algorithms: BubbleSort, Insertion Sort, Selection Sort. Hints to algorithm complexity. Basics on binary calculus. Base conversions. Operations with binary numbers. Two's-complement representation for negative numbers. Basics on propositional logic: boolean connectors (AND, OR, NOT), logic connectors via boolean connectors. Tautology and contradiction. Data structures. Array and linked list: insertion, search, deletion and their complexity. Stack, queue, binary tree. Visiting trees. Inorder, postorder, preorder visiting of binary trees. Binary search trees.