Subject: Advanced Programming

Scientific Area:

Computing

Workload:

80 Hours

Number of ECTS:

7,5 ECTS

Language:

Portuguese

Overall objectives:

1 - Complement the programming skills acquired in the classes which serve as an introduction to different programming paradigms
2 - Parallel programming: by studying multithreading concurrency and resource scheduling
2.1 - Given a problem, correctly divide it in sub problems and implement the correct parallel solution.
2.2 - Implementation of parallel solution using threads,thread queues, semaphores, and communication
3 - Security: with the study of security measures such as encryption, access keys, authentication and different external tools for these tasks
3.1 - Given a problem, select and implement the best security solution
3.2 - Understand the computational cost of each security measure
4 - Introduction to graphical computing: By studying of low and medium level techniques for graphical presentation in a computer system
4.1 - Implement low level graphical animations
4.2 - Understand the graphical processing pipeline
4.3 - Understand the coordinate system, transformation and rendering of a computer system

Syllabus:

1 - 1. Introduction to paralel computing, examples a technologies
2 - 2. Architectures for the development of parallel/concurrent solutions
3 - 3. Threads, processes , thread queues, semaphores and synchronization
4 - 4. Information security
5 - 5. Emcryption and authentication
6 - 6. Developing security measures in JavaScript
7 - 7. Introduction to graphic computing
8 - 8. Geometrical transformations
9 - 9. Graphical processing pipeline
10 - 10. Graphic development in JavaScript (webGL and Babylon,js)

Literature/Sources:

E. Angel, D. Shreiner , 2015 , Interactive Computer Graphics: A Top-Down Approach with WebGL , Pearson Education
W. Stallings, L. Brown , 2018 , Computer Security: Principles and Practice , Peason
R. Seacord , Secure coding and C++ ,
T. Rauber , 2010 , Parallel Programming for Multicore and Cluster Systems , Springer

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
Theoretical classes in which the wide aspects of the class technologies are presented, participation is promoted with open ended questions. Small examples are also used to exemplify the conceps discussed Theoretical-practical classes in which the most important concepts from the theoretical classes are practiced using concrete exercises Discussion/presentation classes in which students present and discuss the assignments part of the class evaluation parameters Evaluation: 1. Two individual exams in normal season (40%) 2. Three projects with 4 members teams (20%) a. One project focused in paralel programming (20%) b. One project focused in security (20%) c. One project focused in graphical computing (20%)