Programming with Python for Data Science

Title Programming with Python for Data Science
Quarter Fall 2016
Instructor Amey Karkare (amey.karkare@acads.org)
Syllabus Course Description
This is a fast paced 10 week course in Python Programming for individuals with some prior experience in programming. A strong emphasis will be placed on understanding programming fundamentals and application of software design principles to real life problems. This course will introduce students to important Python libraries like NumPy, SciPy, Matplotlib and their usage.

Course Contents
  • Variables and Expressions
  • Loops and Conditional statements
  • Functions, Scope, Recursion
  • Introduction to Python datatypes (Lists, Dictionaries, Data frames, Tuples, strings)
  • Object Oriented programming concepts
  • Exception Handling, Testing and Debugging
  • File I/O
  • Introduction to Python Scientific libraries (e.g. PyLab, NumPy)
  • Introduction to Algorithmic complexity
Course Objectives:
At the completion of the course, students will be able to do the following:
  • Write Python programs for a medium difficulty real world problems using re-usable software design principles
  • Given a data problem, will be able to decide on the appropriate data type to use for storing and processing the data
  • Given a python program, will be able to do quick complexity analysis.
  • Should be able to describe advantages of encapsulation
  • Define and instantiate classes
  • Read data from a csv file, process read data and write results out to a csv file
  • Learn how to use python libraries for handling mathematical calculations
Instruction Format Coursework will have following four important components:
  • Weekly Live Lectures via video conferencing
    • The course instructor will go over important programming and software engineering concepts
    • Python language fundamentals
  • Weekly Lab with Teaching Assistants. The purpose of these labs will be:
    • Discussion on topics from the week
    • Working on group and individual projects
    • Group projects will require students to work together for designing object oriented solution where classes will be developed independently and later put together to work. This will require students to come up with all the object and interface requirements before coding
    • Assignment discussions
    • Quizzes and Exams
The classrooms will be wi-fi enabled and students are required to bring their laptops for the lab sessions
  • Reading Assignment and homework for the week
  • Virtual office hour with TA/Instructor via video conferencing
Assessment A letter grade A,B,C,D or F for the course will be decided based on

Projects: 40% of the final grade

  • 2 group projects and 2 individual projects
Mid Term Exam: 10% of the final grade
  • 30 minutes duration which will include both multiple choice and subjective problems
Final Exam: 15% of the final grade
  • 30 minutes duration which will include both multiple choice and subjective problems
Homework: 20% of the final grade
  • There will be 6-8 homework which will be manually graded and feedback will be provided
Quizzes: 10% of the final grade
  • There will be 4 quizzes which will have multiple choice format
Class Participation:10% of the final grade
  • Your participation will be evaluated based on lab discussion, questions/comments, replies on the discussion forum and teamwork on the group projects
TextBook Introduction to Computation and Programming Using Python
by John Guttag
Pre-Requisite Prior experience with programming in any language
Time Lecture Time:
Lab Time:
Virtual Office Hour time:
Location  
TA Information Prasanna Kumar, PhD Candidate, Computer Science, IIT Bombay
Effort Required 6-10 hours per week
Certification Participants who complete the course will receive an instructor-signed certificate with a letter grade