Programming for Jurists


General objective: know the main aspects of Python programming logic.
Specific objectives:
1) Understand technical aspects of using a computer beyond the ¿basic user¿ level.
2) Understand the main aspects of programming logic.
3) Know the basic commands used in the Python language.
4) Stimulate creativity in search of technological solutions for the legal area.

General characterization





Responsible teacher

André Damas Mora, José Fonseca


Weekly - 4.5

Total - 54

Teaching language



Basic computer skills from the user's perspective.


The following bibliography is only a suggestion, as students will be able to get information about Python programming from various sources on the internet.





  • Python Crash Course: A Hands-On, Project-Based Introduction to Programming  Eric Matthes


  • Head First Python  Paul Barry


  • Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code  Zed A. Shaw


  • Python Programming: An Introduction to Computer Science  John Zelle, Michael Smith


  • Python Cookbook: Recipes for Mastering Python 3  David Beazley, Brian K. Jones


  • Introduction to Machine Learning with Python: A Guide for Data Scientists ¿ Andreas Muller


  • Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners  Al Sweigart

Teaching method

The program will be accomplished through lectures in PowerPoint on the topics of syllabus and through the constant use of computer - by the teacher and students - in class. Although there are theoretical aspects to be explained, the content will be better understood through students' practical interaction with the Python language.

Evaluation method

Two evaluation activities will be held throughout the semester on the dates indicated in the schedule of activities (see below). Each activity will account for 50% of the student's final grade. A maximum of 20 points will be awarded for each activity, and the student's final grade in the subject will correspond to the sum of the marks for each activity divided by two (simple arithmetic mean).

Briefly, each activity will consist of solving exercises using the Python language. As far as content is concerned, the evaluation will be cumulative, which is justified by the very logic of the discipline. In exercises that require the creation of a program in Python, the evaluation criterion is unique: the required program must work without errors and must do what is asked of it. There will be a final exam.

Specific evaluation criteria:

  1. The activities can be developed individually, in pairs or in groups of a maximum of 3 people.
  2. The final exam will not be mandatory for all students. Students who are in one of the following situations should take the final exam on a date to be announced in due course:
    1. Those who have not reached the minimum grade for approval in the subject;
    2. Those who have achieved the minimum grade for approval in the subject, but wish to improve their final grade.
  3. If the student finds himself in the situation described in item 2.1, his final grade in the subject will correspond to the grade obtained in the final exam - that is, the grade obtained as the result of the average of the two activities will not be considered.
  4. If the student is in the situation foreseen in item 2.2, his/her final grade in the subject will correspond to the average between the grade obtained in the final exam and the average of the two activities performed during the semester.

Questions can be clarified with the professor directly in class or by the above mentioned e-mail.

Subject matter

Basic presentation of the main components of an electronic device.
Structuring of the programming logic.
Technical aspects of the Python language.


Programs where the course is taught: