Programming
Objectives
Bearing in mind that potential students are not experts in the field of computer science, the Programming curricular unit has several learning objectives:
- familiarize students with the basic techniques used in the field of computer science
- provide students with computer program analysis and synthesis capabilities from the programmer's perspective
- draw students' attention to the potential usefulness of programming in the area of Law
- provide students with knowledge in computer application areas that are useful for other subjects of the course
General characterization
Code
37047
Credits
6
Responsible teacher
José Fonseca
Hours
Weekly - 3
Total - 36
Teaching language
English
Prerequisites
Not Applicable
Bibliography
Python Crash Course: A Hands-On, Project-Based Introduction to Programming. Por Eric Matthes
Slides da Unidade Curricular
Teaching method
The teaching method is based on the exposition of the themes in the theoretical classes that are explored through practical exercises elaborated in the practical classes with direct supervision of the teacher. In addition, students are provided with several lists of exercises that they should try to solve autonomously, in order to stimulate their research and problem-solving skills. These exercises are discussed in practical classes and support is given to students in solving them whenever necessary. The final project of the course aims to consolidate the knowledge acquired in a medium-sized project and can be considered a fundamental part in the students' learning.
Evaluation method
The evaluation is carried out based on two components: the evaluation of the final project of the discipline and the exam. The project allows to evaluate the software development capacity of each student while the exam fundamentally evaluates the retention of the concepts presented during the theoretical classes of the discipline and the ease of producing specific algorithms. The combination of both aspects allows for a complete assessment of the knowledge and skills developed by each student.
Subject matter
Introduction to the course - Course syllabus and evaluation method
Introduction to computers architecture. Computers hardware: The Von Neumann Architecture and The Harvard architecture. Binary coding. Characters ASCII code and UTF8 coding.
Blockchain and cryptocurrency. What is Blockchain? Bitcoin. Digital signatures. Asymmetric encryption. Digital transactions
Introduction to programming - algorithms and algorithms description. What is programming? What is an algorithm? Python main characteristics and Python tools
Python main characteristics and particularities. Variables, data types, expressions and operators. User input
Python basic control structures: If, While , For, Exercises
Modules and functions: Programming based on functions and modules
Python strings manipulation
Python lists processing. Programming with lists of values in Python
Introduction to text processing