This course is a variant of Harvard University’s introduction to computer science, CS50, designed especially for lawyers (and law students). Whereas CS50 itself takes a bottom-up approach, emphasizing mastery of low-level concepts and implementation details thereof, this course takes a top-down approach, emphasizing mastery of high-level concepts and design decisions related thereto. Ultimately, it equips students with a deeper understanding of the legal implications of technological decisions made by clients.
Through a mix of technical instruction and discussion of case studies, this course empowers students to be informed contributors to technology-driven conversations. In addition, it prepares students to formulate technology-informed legal arguments and opinions. Along the way, it equips students with hands-on experience with Python and SQL, languages via which they can mine data for answers themselves.
Topics include algorithms, cloud computing, databases, networking, privacy, programming, scalability, security, and more, with a particular emphasis on understanding how the work developers do and the technological solutions they employ may impact clients. Students emerge from this course with first-hand appreciation of how it all works and all the more confident in the factors that should guide their decision-making.