Software Prototyping for Data Science and Information Management

Info 206, UC Berkeley School of Information, Fall 2017

Info 206 is primarily designed for MIMS students in the School of Information. This course introduces software skills used in building prototype scripts for applications in data science and information management. The course gives an overview of procedural programming, object-oriented programming, and functional programming techniques in the Python scripting language, together with an overview of fundamental data structures, associated algorithms, and asymptotic performance analysis. Students will watch a set of instructional videos covering material and will have three hours of laboratory-style meetings each week.

At the end of the course, a successful student should be able to:

  • work collaboratively using source control
  • understand and operationalize core Python objects
  • create user-written functions in Python
  • work with classes in Python
  • clearly explain and execute good practices in software prototyping

Course Structure

The course is divided by in-class and out-of-class activities. You will be expected to watch instructional videos as well as read the relevant in advance of each in-class session. Classroom sessions are intended to review key information covered in the videos and readings, introduce new topics (e.g. algorithms and applications), and provide teams with time to work on their group projects. Each session, we will have approximately 10 minutes for a quiz, 40 minutes of review plus applications, and 30 minutes for group project collaboration.​

Syllabus (PDF)

Github (repository)

Meeting Time

Tuesdays and Thursdays 11:00 AM - 12:30 PM in 210 South Hall

Office Hours

Thursdays 2:00 PM - 4:00 PM in 6A South Hall

Class Slides

  1. Course overview, Command Line, Bash, and Git (August 24)
  2. Git Review, Teams, Python overview, Installing Python (August 29)
  3. Types, Numerics, Strings, and Polymorphism (August 31)
  4. Collections: Lists, Dictionaries, and Tuples (September 05)
  5. Statements & Syntax, Part I (September 07)
  6. Statements & Syntax, Part II (September 12)
  7. Functions (September 14)
  8. Recursion and Comprehensions (September 19)
  9. Modules, Part 1 (September 21)
  10. Modules & Regular Expressions (September 26)
  11. Object-oriented programming & Classes, Part I (September 28)
  12. Object-Oriented Programming & Classes, Part II (October 3)
  13. Complexity (October 5)
  14. Exceptions & Testing, Part I (October 10)

Academic Integrity

UC Berkeley Code of Student Conduct: