Programming for Lawyers


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



Weekly - 4.5

Total - Available soon

Teaching language



Available soon


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

Four evaluative activities will be carried out during the semester, on dates indicated in the activity schedule. Each activity will correspond to 25% of the student's final grade: each activity will be given a maximum of 20 values ¿¿and the student's final grade will correspond to the sum of each of the activities divided by four (number of activities).

Briefly, each activity will consist of creating a Python program on a topic to be given by the teacher to the students on the assessment day. Regarding the content, the evaluation will be cumulative, which is justified by the very logic of the chair.

General evaluation criteria:

1) The required program will need to work without errors and perform what is required (60% - 12 points);
2) Form of presentation of results to the user (10% - 2 points);
3) Reduced number of lines of code (15% - 3 values);
4) Creative way to structure the program presented (15% - 3 points).

Specific evaluation criteria:

1) Each of the activities should be performed exclusively in groups, with a minimum of 3 and a maximum of 4 components.
2) On the day of the activities the group may use, during the development of the code and at their own choice, a single computer, or each member of the group may use their own equipment individually.
3) After the group has finished creating the code, it should be sent to the form indicated by the professor. The file must be sent no later than the class's final time (18h if the activity is held on a Wednesday or 15h if the activity is performed on a Thursday). Shipping delays will not be accepted under any circumstances; If the file is sent after the time indicated above it will be disregarded, with the group automatically receiving the zero score in that activity. The teacher will send a reply email confirming receipt of the file.
4) The code authorship should be indicated in the file in which the code was written. Authorship should be indicated solely on the basis of student number, in the form of commentary in the code, right from the first lines.
5) The final grade will be attributed to the group as a whole, with no hypothesis of different evaluation for members of the same group.
6) If any student can not be present on the day of a particular activity his group should not indicate the student number of the person who is absent. In this case, the grade for the next activity will be double for the absent student, in order to compensate for the grade of the activity for which the student did not get a grade. For calendar reasons this criterion does not apply if the student is absent on Activity 4 day; In this case, the absent student will be given a grade of zero in this activity.
7) The final exam will not be compulsory for all students. Students who are in one of the following situations must take the final exam on the date indicated in the schedule:
7.1) Those who have not reached the minimum grade for passing the course;
7.2) Those who have achieved the minimum passing grade but wish to improve their final grade.
8) If the student is in the situation provided for in item 7.1, his final grade in the chair will correspond to the grade obtained in the final exam - that is, the grade obtained as a result of the average of the four activities will be disregarded.
9) If the student is in the situation provided for in item 7.2, his final grade in the chair will correspond to the average between the grade obtained in the final exam and the average of the four activities performed during the semester.
10) Regarding grade valuation, the final exam will follow the same - General Evaluation Criteria  previously presented.

Questions can be answered by the teacher directly in the classroom or by the emails indicated above.

Subject matter

Modern legal practice requires a deep understanding of technology. Jurists in general must understand what it means at the technical level to "talk" online, "sign" a digital contract, "search" on a computer, or "delete" evidence. In turn, law firms need to understand which tasks can be performed most efficiently by custom software and what are the best tasks that should be left to be performed by humans. This course teaches students how to be effective entry-level computer programmers and thus to deconstruct and understand the technologies they may encounter throughout their careers. Basic computer programming skills using the Python programming language will be covered. The course is intended for students with no computer programming experience.


Programs where the course is taught: