Coding for Lawyers

Instructor Prof. Wulf A. Kaal

Spring 2018

Syllabus

Course Objectives

· Students understand why software engineers use coding and coded technology applications in the context of law.

· Students understand the means by which code can be utilized and integrated in legal contexts.

· Students develop an appreciation of how software engineers code in legal technology applications.

· Students practice coding of practical legal issues through templates and learn a basic coding framework in Python and Solidity

Course Description

Coding for Lawyers, 2 Sem. Hrs.

The purpose of this course is for students to gain a general conceptual understanding of the possible applications of innovative and disruptive technologies and their algorithmic implementations in the context of law. Students learn hands-on how to code for efficient legal solutions.

The course helps students develop an appreciation for the exponential rate of disruptive algorithmic technological innovation in the legal industry and the changing role of lawyers in this context. The course explains why algorithmic technology applications in combination with big data, artificial intelligence, machine learning, and blockchain technology will continue to change the practice of law and the role of lawyers. Lawyers are no longer single zealous advocates and no longer simply work in teams of lawyers for the interests of their clients but rather need to work in interdisciplinary teams with business innovators, engineers, and programmers. This requires law students to develop the ability to engage with other professionals from diverse backgrounds and disciplines who in many cases have a completely different perception of business etc. concepts and associated legal problems than lawyers.

The course develops students’ understanding of the means by which code can be utilized and integrated in legal contexts. Legal tech startups and software engineers are increasingly using (predictive) coding and algorithms for legal applications. Lawyers benefit from such algorithmic technology applications in the context of e-discovery, contract drafting, legal research, among many others. The course evaluates the most important legal applications of algorithmic technology solutions and explains how software engineers are applying code to legal problems in an effort to provide efficient legal solutions. Students learn the very basic mathematical principles for coded technology solutions in law including legal applications of big data, artificial intelligence, machine learning, and blockchain technology. Based on the mathematical foundations, the course helps students develop basic conceptual coding skills that enable them to engage with representatives of the hard sciences on a daily basis and develop client solutions in interdisciplinary teams.

Students practice coding for practical legal issues through templates and learn a basic coding framework in Python and Solidity. Python is a widely used programming language for general-purpose programming that emphasizes code readability and a syntax which allows programmers to express concepts in fewer lines of code than in other languages. Python has a large and comprehensive standard library and runs on a wide variety of systems. Python also helps students learn object-oriented languages, such as Serpent and Solidity, that enable writing smart contracts on blockchain platforms such as Ethereum.

In the first class, we will discuss an assignment with coding applications in a legal context that students will be required to work through in groups of random four during the duration of the course. Each team will present its coded resolution for the class assignment during the final class session.

No prior coursework is required but an admission preference will be given to students who have previously taken the course on “Disruptive Innovation in Law”.