Course Syllabus

Computer Programming for Lawyers
LAW 276.34 SEM 001 (4 credits)
CCN 32042

TuTh 3:35 PM - 5:25 PM
Location: Law 170
From January 11, 2022
To April 22, 2022

Instructor: Chris Hoofnagle

Office Hours: Wednesday, 10:30-11:30.

Tutoring Sessions: Mondays (Lydia) 5:15-7:15 in Simon 486 & Zoom
Fridays (Abhay) 12-2 in Berkeley Law TBD & Zoom

Zoom Link: Zoom Rooms for Class and Tutoring

 

 

Course Description | Attendance | Assessment | Collaboration policy

Course Schedule

CPL TuTh 3:35-5:25
From January 11, 2022
To April 22, 2022
Class Date Topics/Assignments
OH Week of Dec. 27, 2021 I'll do special office hours over the holidays on Zoom for those interested in getting an early start!
OH 10-Jan at 10:30-11:30, 1:30-2:30 Special office Hours. You must participate in this session if your Jupyter environment is not working
1 11-Jan
Week 1: Introduction to Python
Before first class material e.g. Read Chapters 1, 3, and 4 (skip sections 4.2, 4.3.1, 4.3.2, and 4.4) in Ohm & Frankle
Actions
 and complete Problem Set 0 
 Download Problem Set 0.
2 13-Jan Please attempt PS1 before lab.
TUTORING 17-Jan Lydia will host a special session 2-4
3 18-Jan Week 2: Conditionals and While-Loops
PS1 due before class. Submit via bcourses
Read Chapters 5 and 6 in Ohm & Frankle
4 20-Jan Please attempt PS2 before lab
TUTORING 21-Jan Aahay's weekly Friday tutoring session is from 12-2
5 25-Jan Week 3: Lists and Iteration I
PS2 due before class.
Please Read Chapters 7, 8, & 9 in Ohm & Frankle
6 27-Jan Please attempt PS3 before lab
7 1-Feb Week 4: Lists and Iteration II
PS3 due before class
Review chapter 8, read chapter 10.1-10.3 plus the cheatsheet
8 3-Feb Please attempt PS4 before lab
9 8-Feb REVIEW WEEK
10 10-Feb REVIEW WEEK
11 15-Feb Week 5: Datastructures
Please read Chapter 4.4 (text files), review Chapter 8.4 (lists and text files)
Please read Chapter 10.4-10.6
12 17-Feb Please attempt PS5 before lab
13 22-Feb Week 6: Functions I
We're going to have less material this week as part of a catch up and synthesis effort
PS5 due before class
14 24-Feb Please read Chapter 11.1-11.2.
Please attempt PS6 before lab
15 1-Mar Week 7: Functions II
PS6 due before class
Please review Chapter 11.1-11.2 and read 11.3-end of chapter
16 3-Mar This week we will work our problem set in class.
17 8-Mar Week 8: Files and Directories
Please read Chapter 12
Please attempt PS8 before lab
18 10-Mar
19 15-Mar Week 9: Regex
Please read Chapter 13
20 17-Mar For Problem Set 9, we'd like you to practice your Regex skills using RegexOne. Spend some time on the tutorial (15 lessons) and the problems (9). Don't worry about donating--I've already done so on your behalf :) You need only look over this for lab. But please complete all the lessons and problems by Week 10's lecture.
Spring Break 22-Mar
Spring Break 24-Mar
21 29-Mar Week 10: Regex II, PDF, and Excel
PS9: due (survey)
Please read Chapters 14 and 15
22 31-Mar Please attempt PS10 before lab
23 5-Apr Week 11: Web Scraping I
PS10 due before class
Please read Chapter 16
24 7-Apr Please attempt PS12 before lab (to keep up with numbering, we're not using PS #11)
25 12-Apr Week 12: Web Scraping II and JavaScript 101
PS12 due before class
Please review Chapter 16; other reading TBD
26 14-Apr Please attempt PS 13 before lab
27 19-Apr Week 13: APIs
PS13 due before class
Please read Chapter 17
28 21-Apr We will work APIs in class

 

 

 

Before the first class: Install Anaconda: https://www.anaconda.com/products/individual  Use the latest version (Python 3.9) This manages "Jupyter Notebook" If you are a Windows user, choose to *also* install **Anaconda Prompt** -- this will be your terminal from which you will activate virtual environments and access your labs. On windows, Anaconda may prompt you to "Add Anaconda3 to my PATH environment variable. Please selection this option.  Watch the Introduction to Jupyter Video (in Files>Videos) and spend some time playing with Jupyter Notebook. You'll want to download this video because bCourses reduces its resolution if you watch it through the website. Read Chapters 1, 3, and 4 (skip sections 4.3.1, 4.3.2, and 4.4) in Ohm & Frankle. The textbook is in Files >. Starting with Chapter 3, please create a Jupyter notebook for the chapter. Please type in every line of code that is given as an example in Ohm & Frankle (with certain exceptions). For instance, in section 3.1, the textbook asks you to enter 2 + 2 and evaluate the expression in a program called "IDLE." We'd like you to test those expressions, but instead of entering them into IDLE, evaluate them in Jupyter Notebook. Exceptions: The Ohm textbook is based on using a text editor to compose code and Terminal/PowerShell to execute it, whereas we will be using Jupyter for both composing and execution. Code examples with a "$" symbol denote a command line argument. In Jupyter, those examples must be preceded by a "bang" (an exclamation point), as in !ls or !pwd  The exercise of typing in the code examples may seem tedious, but you will find that learning Python is like learning a foreign language. You can read examples and "get it," but you will be unable to "speak it" without actual practice. Complete Problem Set 0 and submit it via bCourses. Register for Piazza: https://piazza.com/berkeley/spring2022/law27634sem001/home and introduce yourself on Piazza.