School of Law - University of Baltimore



Coding for lawyers Syllabus UNIVERSITY OF BALTIMORE SCHOOL OF LAWFALL 2019Course: Coding for Lawyers Law 795Section 550Instructors: Matthew Stubenberg matthewstubenberg@Colin Stargercstarger@ubalt.eduDays/Time: Saturday 9:00am – 11:45am Location: Room assignments are available through MyUB. Course Description and Student Learning Outcomes: Technology is quickly changing our legal landscape. As automation replaces client intake, advertising, and motion drafting, the fate of a case can rest on the ability of attorneys to manipulate big data. Attorneys who understand how software runs and who can see new ways of approaching problems will bring significantly more value to their clients.This class is designed to have students reach 2 goals: First, students will learn how software works and what computers can do quickly versus what they still struggle with. This will allow students to understand what can be automated, allow them to better interact with software developers, and spot trends in legal technology. Senior partners will more frequently find themselves needing attorneys who understand how new software works and manage its implementation. This can set a junior attorney apart from other lawyers who may have more legal experience.Second, students will learn the basics of coding in the programming language, Python. This will allow students to build basic proof of concepts and small one-off programs. This can be extremely useful when an attorney may need to gather large amounts of data from the internet or analyze and restructure large datasets. Small coding projects can also be used to convince senior partners to invest in building software to help the firm.In ten years the legal landscape will look radically different from today. The attorneys who will thrive in this shifting landscape will understand technology and be able to adapt to its implementation. The ability to code and understand how software works will be a useful tool as lawyers progress through their career.Course Textbook:Title: Automate the Boring Stuff with Python: Practical Programming for Total Beginners Author: Al SweigartAlthough the book is available online for free at , you must buy a print version of the book. The print version has page numbers and other important reference material. We suggest you compare prices on sites like Amazon before buying the book from the UB bookstore.Course Technologies:Since this is a technology-focused course, you will be asked to use a number of different technologies during the course of our work together. Thus, it is required that you have a LAPTOP in every class. (If you do not have a laptop, please let the professors know as soon as possible -- ideally before the semester begins -- and they will help arrange laptop use for you).In addition to your laptop, you will become familiar with the following:Repl.it:Much of the coding for the first half of the semester will be done using an “online interpreter” at repl.it. An online interpreter is an environment that lets users write, edit, compile, and run computer code without having to install anything on your local machine. Every student will need to sign up for a free account at repl.it prior to the first class. We’ll cover how to use repl.it in class.Slack: Slack is an increasingly popular messaging platform that is excellent for facilitating group-based work. The class has its own “Slack channel” where students will be able to ask questions, discuss issues, and generally coordinate their efforts. To join our class Slack channel, please go to . One again, we’ll go over how to use Slack in class.: We’ll use this website to post certain documents and projects as well as host final projects at the end of the semester.Additional Resources:Part of learning to code is learning how to take advantage of learning resources on the web. We suggest you become familiar with the following sites. : This is a great website that breaks down coding into simple to understand problems. If you are not understanding a concept, trying searching it here to see how they explain it. For example, here is the link to W3’s Python page. W3 has instructions on a host of other programming languages and environments as well.Stack Overflow: Stack Overflow is a question and answer forum online and is a very common place for coders to go to ask questions about the code they are writing. Google searches with specific coding questions often lead to Stack Overflow pages. For example, here is a page answering a question about “continue” in Python loops.Please note that you cannot post your homework assignments to Stack Overflow and ask others to help solve your problem. However, you could ask general questions there -- and it is always a useful place to look to see whether other people have run into similar problems and see what answers they have received. Always make sure to look at the date when the answer was posted. An answer from 2009 might not work anymore.Leetcode: If you are excelling in the class and want to test your skills, you can take test projects here and the site will rank how well your code is written based on how fast it runs and how much memory it uses.Course Expectations and Policies: It is a requirement of this course that students complete a course evaluation. The evaluation will be available later in the semester and is entirely anonymous. Faculty members will not have access to the feedback provided on course evaluations until after all grades are submitted.Grading: This class will be graded on a pass-fail basis. To earn a passing grade, students must successfully complete graded homework assignments in a timely manner (50% of grade). There will also be a final project requiring you to work as a team to implement a “legal app” of some sort (50% of grade). Attendance: Regular attendance is crucial. Coding can be difficult for people to learn on their own and even more difficult for law students who already have a heavy workload. It can be very difficult to catch up after an absence as each class builds upon the one before it. If you do miss a class, please reach out to Professor Stubenberg or Professor Starger to go over what was taught so you don’t fall behind.Class attendance is a primary obligation of each student whose right to continued enrollment in the course and to takethe examination is conditioned upon a record of attendance satisfactory to the professor. A student who exceeds the maximum allowed absences (generally 20% of class sessions) as illustrated below will be compelled to withdraw from the course. Students who are forced to withdraw for exceeding the allowed absences may receive a grade of FA (failure due to excessive absence). This policy is consistent with American Bar Association Standards for Law Schools. Based on ABA standards, you may not miss more than 2 classes.Typical Class: Class will be broken into lectures about various coding concepts followed by coding along with the Professor. In between, there will be small collaborative sessions where you modify the code you just wrote to build in extra functionality.Homework: Throughout the semester you will have small coding assignments to complete before the next class. Sometimes everything will click and you will be able to complete the assignment in less than 30 minutes. Other times you will have trouble figuring out the logic to make some code work. This is not always something you can “brute force” your way through. Coders will tell you, they have had their lightbulb moment of how to get something to work after thinking about the idea in the back of their head for a couple of days. I encourage everyone to at least start their homework right after class. Getting frustrated and working through that frustration is part of learning how to code and it is much easier to do when you can walk away from the problem for a day or two and then come back to it. If you have worked at a problem for two hours and haven’t made in progress step away, ask a question in the slack channel, and come back to the problem later. All homework will be on the students repl.it account and students will post the link in the slack channel for the professors to review. This will be explained further in class.No Experienced Programmers Allowed! This class is intended for beginners only. If you have taken any classes in college or graduate school that featured computer programming, or if you have mastered any computer programminglanguage, you are not permitted to take this class. If you are unsure whether you fall within the excluded categories, get in touch with Professor Stubenberg or Professor Starger as soon as you can.Class Cancellation: If the instructor must cancel a class, notices will be sent to students via email and posted on the classroom door. If there is inclement weather, students should visit the University of Baltimore web site or call the University's Snow Closing Line at (410) 837-4201. If the University is open, students should presume that classes are running on the normal schedule. Title IX Sexual Misconduct and Nondiscrimination Policy: The University of Baltimore’s Sexual Misconduct and Nondiscrimination policy is compliant with Federal laws prohibiting discrimination. Title IX requires that faculty, student employees and staff members report to the university any known, learned or rumored incidents of sex discrimination, including sexual harassment, sexual misconduct, stalking on the basis of sex, dating/intimate partner violence or sexual exploitation and/or related experiences or incidents. Policies and procedures related to Title IX and UB’s nondiscrimination policies can be found at: Policy: If you are a student with a documented disability who requires an accommodation for academic programs, exams, or access to the University’s facilities, please contact the Office of Academic Affairs, at ublawacadaff@ubalt.edu or (410) 837-4468.Collaboration and Academic Integrity: As you learn to code you will get stuck, a lot, and part of the process is to learn how to get unstuck. This course will contain problems designed to be worked on alone as well as group projects with collaboration. The limit of each project will be disclosed beforehand. General rules are below.Weekly Problem Sets: Assignments given out each week as homework are designed to be worked on alone.In Class Projects: These will be collaborative where you can openly work with any colleagues and ask questions.Final Project: This will be a group project where you and your group members may collaborate.Internet: The internet is a great resource and you may use the Google searches to help you solve any of the assignments given out in this course. This means googling questions about what a particular error means or “how to create a dictionary in python”. No Posting or Sharing Code: The coding assignments in this course will be given to future students in this class. Therefore, you cannot post your code to the weekly assignments or share your code with fellow law students. The code you write for your final projects you will be able to share and use how you want.Students are obligated to refrain from acts that they know or, under the circumstances, have reason to know will impair the academic integrity of the University and/or the School of Law. Violations of academic integrity include, but are not limited to: cheating; plagiarism; misuse of library materials; use of another’s book or study materials without consent; unapproved multiple submissions; material misrepresentation of one’s academic history or standing; misrepresentation of any academic matter; intentionally giving another student false or inaccurate information about class requirements; inappropriate discussion of exams; and misrepresenting or falsifying class attendance reports. The School of Law Honor Code and information about the process is available at ASSIGNMENTSNote on Second Half of the Semester: As you will see, we have an ambitious schedule for the first half of the semester. How far we get into the topics marked for the second half of the semester will depend on how comfortable the class is with the progress made up to that point. This is why you see so many TBAs in the Assignments below.ClassCoding TopicLaw TopicReading (To Be Done Before Class)Homework to be completed by the next class1- Variables/Types - If/Else Statements- input()<What algorithms can and cannot do>Traffic RegulationSkim Chapter 0Read Chapter 1 Page 18-21: Start at “Storing Values in Variables” and stop at “Your First Program”Page 23: “The input() Function”Read Chapter 2Page 37-45: Start at “Elements of Flow Control” and stop at “while Loop Statements”Modify program created in class to use Maryland traffic statute.2- Review- And, Or logic- String manipulationMinimum sentencing guidelinesRead Chapter 6Page 123 - 136: End at “Project: Password Locker.”Add in additional drugs as instructed.3- Loops and listsProp 65 carcinogen warningsRead Chapter 2Page 45 - 57: Start at “While Loop Statements” and end at “Importing Modules”Read Chapter 4Page 79 - 87: Start of Chapter 4 to “The Multiple Assignment Trick”Modify program created in class to find carcinogens under different circumstances.4- DictionariesBasic case management systemRead Chapter 55- FunctionsJurisdiction determination for court casesRead Chapter 3Page 61 -72. End at “Exception Handling”6- External FilesAuto-populating motion and client letterRead Chapter 8Page 181 - 184. End at “Saving Variables with the shelve Module”7- SQL DatabaseTBATBA8- APIsTBATBA9- HTML- CSS- JavasriptTBATBA10Basics of Web ScrapingTBATBA11Advanced Web ScrapingTBATBA12Working with a ServerTBATBA13Putting it all togetherTBATBA14Future of Legal TechTBATBA ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download