Since 2016, the Georgetown University Law Center has offered a three-credit course in "Computer Programming for Lawyers" to train lawyers-to-be how to become computer programmers and to explore how practicing lawyers can write computer programs to become better, more efficient practitioners.

This blog will introduce both Georgetown insiders and outsiders to this course. It will also contain the occasional musings about the intersection of computer programming and the law of Professor Paul Ohm and invited guests.

This post, describing the philosophy of the course, is probably the best introduction for any audience.

Prospective students will also want to read these posts about the textbook, the problem sets, and the side-effects of the course.

Teachers and administrators at other law schools thinking about adding the course will also want to read these posts about the administrative costs of the course, the pros and cons of hosting the course within a law school versus across campus, and the problem sets.

Practitioners might be interested in an argument against merely outsourcing programming to trained experts.

An introduction to writing Python programs in

Welcome to Computer Programming for Lawyers! Update 2023: This overview was created in 2021. Replit has had some small user interface changes and feature upgrades, so the screenshots below may look slightly different. Everything described below should remain unchanged. This class will make heavy use of on two online services, Canvas (with Panopto) and Canvas and Panopto will be where you will find videos, discussions, and hyperlinks to Zoom sessions. [Read More]

Moving the class to, Part One

As we enter the sixth year for the course, I’m contemplating making the biggest move we have made to date: We’re probably going to use to host most of our core infrastructure. is a cloud-hosted service that provides a computer programming IDE, complete with interpreters and libraries in a cloud-based Linux environment, accessible in your web browser. Although it now supports more than fifty programming languages, its roots are in Python. [Read More]

The Intermediate Course, Part 1: Goals and Administrative Details

In the Spring 2018 semester, we launched a new innovation: a second course in intermediate computer programming for lawyers. Having just finished teaching this course for the first time, I’m going to write (at least) two blog posts about it. In this first post, I’m going to go over the administrative nitty gritty, partly to make it available to prospective students in future years who want to learn more about the course. [Read More]

The First Annual Rock, Papers, Scissors Competition for ICPL

This year, we added a second computer programming course at Georgetown Law, for Intermediate students. I will write more about this course (which I am thoroughly enjoying) later, but I said a little about it in this post. For now, I just wanted to share the homework assignment for next week. I owe a special debt of inspiration to contests like this one: This contest is not open to outside submissions! [Read More]

CP4L: The Textbook

We couldn’t find a perfect book for this course*, so we decided to write one! The result is called, quite creatively, _Computer Programming for Lawyers_. Perhaps the very best thing about the book is the striking ASCII Art Jonathan Frankle created, freehand, for the cover: Part I of the book introduces the fundamentals of Python in legal practice, while Part II (mostly yet to be written) covers slightly more advanced Python topics. [Read More]

The Administrative Costs of the Course

My primary motivation for creating this blog was to help me respond efficiently to professors and administrators at other law schools who have inquired about the course. I sincerely hope that computer programming will be offered at many other law schools before too long. The startup costs are pretty significant, however, so I wanted to make sure people knew what they were facing. Instructor Given the philosophy of the course, it is best to find an instructor who is experienced with both legal practice and computer programming. [Read More]

Graded Problem Sets and the Expectations of Law Students

The two people who devised this course–Jonthan Frankle and I–both studied computer programming in college (he much more recently than I) and took from those experiences the critical importance of weekly, graded problem sets. Students in this class must complete a problem set every week of the semester. These are calibrated to be quite tricky, full of small details and annoying little edge cases that require time and hard work to perfect. [Read More]

The Team

Computer Programming for Lawyers at Georgetown Law is headed by Professor Paul Ohm. Running this course requires a small army of people. This page will list everybody who has helped create or maintain the course and will serve as an archive of personnel from the past. Jonathan Frankle: My true partner in crime, Jonathan created the course with me and co-taught it the first time it was offered, in Spring 2016. [Read More]

FAQ: Shouldn't practicing lawyers just hire programmers?

FAQ: Rather than teach lawyers to write programs themselves, why not encourage them to hire professional programmers? The benefits of programming for legal practice I am touting could probably also be realized by lawyers and programmers working together. As such, some people have asked me, isn’t it more realistic and more productive to encourage lawyers to hire programmers? I don’t think so, for many reasons: First, trained programmers command very high pay for their work, even more than starting lawyers in many cases. [Read More]

FAQ: Why can't students just take computer programming in another department?

FAQ: Why do we need to teach this class inside a law school? Shouldn’t we partner with professionals who know how to teach computer programming across campus? This is perhaps my most frequently asked question. I have many responses. Most importantly, there are tons of other ways a law student or lawyer can learn to code. If a law student can take a programming course across campus in computer science or engineering or some other departments, it might be a great fit for her or him. [Read More]