Objetives and learning outcomes

Programming II

 

This curricular unit has as objectives:

- the improvement of the knowledge in Programming (using C) by studying advanced topics (Binary Files and Dynamic Memory)

- to acquire knowledge about algorithms, in particular recursive, sorting, and searching algorithms. Evaluation of the complexity of algorithms

At the end of this curricular unit the student should be able

- to solve problems using C and he/she should understand the concepts studied

- to have developed skills on using algorithms, particularly in problems involving recursion, sorting and/or searching

- to assess the efficiency of the algorithms by analyzing the technical complexity, in order to select the most efficient algorithms to solve any given problem

 

Contents/Syllabus

Programming II

 

PART A - Advanced topics of the C language

1 - Introduction: structures (struct), pointers and text file

2 - Binary files

3 - Dynamic memory management

4 - The C preprocessor

5 - Makefiles

PART B - Algorithms

6 - Recursion

7 - Analysis of the complexity of Algorithms

8 - Sequential data structure ("List") with sequential allocation (array representation)

8.1 - List with sequential allocation using static memory

8.2 - List with sequential allocation using dynamic memory

8.3 - Sorting algorithms:

8.3.1 - Iteratives: Selection sort and Bubble sort

8.3.2 - Recursives: Quick sort and Merge sort

8.4 - Searching algorithms:

8.4.1 - Iteratives: Exhaustive search, Sequential search and Binary search

8.4.2 - Recursives: Binary search

8.5 - Hashing tables

 

References

Programming II

 

"Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms", 3rd Edition, 2001

By Robert Sedgewick

Addison-Wesley Professional

ISBN: 0201756080

 

Assessment methods and criteria

Programming II

 

Learning Period

- Written Test (WT): 16 points divided by 2 times (8 points each).

- Evaluation of Knowledge on Practical Classes (PC): 4 points divided by 2 times (2 point each).

- Final Grade (FG): WT + PC.

Exam

- Admission: PC >= 1 and FG >= 6.

- Exam: 16 points.

- Final Grade: PC + Exam.

 

Calendar of assessment

Programming II

 

Type

Date

Testing room

Written Test 1    
Written Test 2    
Practical Test 1   Practical classroom
Practical Test 2   Practical classroom

 

Classification

Programming II

 

2017/2018 (password is need):

Practical Tests

Written Test 1

Written Test 2

Learning Period (Final Grade)

Exam 1

Exam 2

 

Notes

Programming II

 

C Programming Tutorials

W3Schools

TutorialsPoint

 

PART A - Advanced topics of the C language

1 - Introduction: structures (struct), pointers and text files

2 - Binary files  +  More about Files

3 - Dynamic memory management  +  More about Dynamic Memory

4 - The C preprocessor

5 - Makefiles

PART B - Algorithms

6 - Recursion  +  More about recursion

7 - Analysis of the complexity of Algorithms

8 - Sequential data structure ("List") with sequential allocation (array representation)

8.1 - List with sequential allocation using dynamic memory

8.2 - Sorting algorithms:

8.2.1 - Iteratives: Selection sort and Bubble sort

8.2.2 - Recursives: Quick sort and Merge sort

8.3 - Searching algorithms:

8.3.1 - Iteratives: Exhaustive search, Sequential search and Binary search

8.3.2 - Recursives: Binary search

More about sorting and searching algorithms

8.4 - Hash Tables.

More about Hash Tables

More about Hash Tables

More about Hash Tables

 

Exercices

Programming II

 

Exercices 1.1 - Structures (struct)

Exercices 1.2 - Pointers

Exercices 1.3 - File text

Exercices 2 - Binary files

Exercices 3 - Dynamic memory management

Exercices 4 - The C preprocessor

Exercices 5 - Makefiles

Exercices 6 - Recursive algorithms

Exercices 7 - Análise de complexidade dos algoritmos

Exercices 8.1 - List with sequential allocation using dynamic memory

Exercices 8.2 - Shorting algorithms

Exercices 8.3 - Search algorithms

Exercices 8.4 - Hashing tables

 

Text files:

tasks.txt

data.txt

data1.txt

data2.txt

data3.txt

data4.txt

data5.txt

disks.txt

multiples.txt

text.txt

measurements01.txt

measurements02.txt

measurements03.txt

measurements04.txt

measurements05.txt

Integers.txt

IntegersPositives.txt

RealPositives.txt

IntegersWithoutRepeted.txt

IntegersWithRepeted.txt

 

Practical Test

Programação II

 

Acess from the computers in rooms 6.14 and 6.19 (use Firefox or Internet Explorer)

Evaluation Platform

 

Acess from other computers (use Firefox or Internet Explorer)

Evaluation Platform