Subject: Introdution to Programming

Scientific Area:

Computer Science

Workload:

64 Hours

Number of ECTS:

6,5 ECTS

Language:

Portuguese

Overall objectives:

1 - Identify the different execution environments and know the main types of tools used in software development;
2 - Identify the main characteristics of programming languages;
3 - Develop programs using the Java programming language (or other);
4 - Know and implement the main types of data;
5 - Develop and implement an algorithm;
6 - Analyse the efficiency of algorithms;
7 - Know and implement the main ordering algorithms;
8 - Know and implement the main search algorithms.

Syllabus:

1 - Introduction to programming.
1.1 - Computing environments and programming languages.
1.2 - Software development tools.
2 - Introduction to the Java programming language.
2.1 - Elementary notions: class, attribute, method.
2.2 - Primitive data types.
2.3 - Vectors and strings.
2.4 - Control structures.
3 - Data types and data structures.
3.1 - Primitive types versus data structures.
3.2 - Structured data type: queue, stack and list.
4 - Algorithms
4.1 - Algorithms and implementation.
4.2 - Brief notions about complexity of algorithms.
4.3 - Elementary ordering algorithms (direct insertion, direct selection and bubblesort).
4.4 - Advanced sorting algorithms (shellsort, heapsort and quicksort).
4.5 - Search algorithms: linear and binary.

Literature/Sources:

Rocha, A. A. , 2011 , Estruturas de Dados e Algoritmos em Java , FCA
Sedgewick, R. , 1998 , Algorithms in C, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching), 3rd ed. , Addison-Wesley
Sedgewick, R. , 2002 , Algorithms in C, Part 5 (Graph Algorithms). 3rd ed. , Addison-Wesley

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
In accordance with the expected for the Professional Higher Technical Courses.