Skip to main content

Python for Beginners

Learn the art of Computer Programming in Python with interactive sessions based on interesting examples and fun programs

Enrollment for this course is open now

About This Course

This course is designed for Ivey Business School students interested in learning the art of Python programming. In this course we will explore programming in Python. Think of it like learning a new language: in addition to learning syntax, and writing code, we will work on developing computational thinking and breaking down big problems into simple individual tasks.

We live in the Information Age and the computer is the engine that drives progress. Computers powered by programs that we write are the best tools we have today to process information. Many important jobs and careers will go to those who can learn to design, program and maintain the programs that will drive our economy in this information age.

To fully use computers, you have to learn to program them and Python is a versatile, modern programming language that you can use to write an app, build a website, analyze data, control a robot or even build a self driving car.

Course Contents

1. Introduction To Python Programming Language
  • 1.1 Introduction to Computers, Programming, Computational Thinking and Python
  • Interactive programming with Python
  • Computational thinking: Asking and answering interesting questions
  • Decomposing problems into smaller problems
  • Using algorithms and algorithmic thinking
  • 1.2 Building Blocks for Your Programs - Variables and Types
  • Variables
  • Types
  • Quiz 1
2. Functions and Operators
  • 2.1 Building Blocks for Your Programs - Functions
  • Functions: Signature, interfaces and encapsulation
  • Functions - Decomposition of problems
  • Recursive functions
  • Function Composition
  • 2.2 Making Logical Choices and Performing Repetitions - Operators, Logic and Loops
  • The discrete mathematics of logic - Boolean variables and logical operators
  • Making comparisons - Writing the logic of your programs using comparison operators
  • Making choices - Performing different actions using logical operators
  • Encoding and Controlling Repetitions - Loops
  • Quiz 2
3. Strings
  • 3.1 Working with Collections of Items - Strings
  • Creating Strings
  • Accessing substrings - Indexing and slicing
  • Basic Operations on Strings
  • Displaying Strings
  • Quiz 3
4. Data Structures
  • 4.1 Working with Collections of Items - Lists, Dictionaries and Tuples
  • Distinguishing features of different collections
  • Creating Lists, dictionaries and tuples
  • Accessing elements of a collection
  • Operations on collections
  • Quiz 4
5. Functional Programming and Test Driven Development
  • 5.1 Functional Programming
  • Lambda functions
  • Higher order functions
  • The map-reduce pattern
  • 5.2 Ensuring code quality
  • Type Checking
  • Unit Testing
  • Test Driven Development
  • Quiz 5 and Coding Assignment 1
6: Introduction to Data Science using Python
  • Introduction to Jupyter Notebooks
  • Generating random variables and understanding distributions
  • Relationships (signals) encoded in Data
  • Decoding relationships (signals) encoded in Data
  • Inference and prediction
  • Quiz 6 and Coding Assignment 2
In this course you will learn to:
  • Write intermediate difficulty programs in Python - which is a powerful modern computer programming language
  • Experience the power of Python Data Structures for storing and manipulating data
  • Develop the precision required to communicate with computers which will give you an insight into more structured ways to think
  • Develop computational thinking skills
  • Discover the pleasure of finding things out by exploring interesting problems through programs¬†you write
Prerequisites

Familiarity with basic computer programming will be helpful but not a requirement. Make sure you have a laptop or computer to use during the course to practice programming. Knowledge of High School Mathematics

Length: 6 Weeks
Start Date: Jan 14th
Effort: 1.5 hours lecture + 3 hours study, review and practice hours per week
Live Lectures: Monday 10:00 AM EST 90 minutes Office Hours: Friday 10:00 - 11:00 AM EST
Course Staff
Dr. Varghese John
Dr. Varghese John

Dr. Varghese John (VJ) is an experienced technologist with a scientific research background and a love for learning and teaching science, technology and mathematics. He has led large technology teams delivering innovative solutions to complex problems for leading financial service organizations. VJ is passionate about STEM education and has worked with people from diverse backgrounds enabling them to discover a love for learning and helping them achieve their educational goals.

Dr. Amey Karkare
Dr. Amey Karkare

Dr. Amey Karkare is an Associate Professor in the Department of CSE at IIT Kanpur. He is currently the head of Computer Center and Associate Dean for Digital Infrastructure at IIT Kanpur. Dr Karkare completed his Ph.D. from IIT Bombay in 2009 and his B.Tech. from IIT Kanpur in 1998. His areas of interest include Intelligent Tutoring Systems, Program Analysis, Compiler Optimizations, and Functional Programming. He has more than 7 years of industry experience most of which is in the area of Compiler Optimizations. Dr. Karkare received prestigious Infosys fellowship during his Ph.D., and P. K. Kelkar Young Research Fellowship at IIT Kanpur. He has been visiting researcher at Microsoft Research, Redmond, and IIT Bombay. Last few years his focus is on improving how introductory programming courses are taught. He has co-taught large online courses on programming that had registration of more than 30,000 students. The software he developed is being used at several premier institutes in India like IIT Kanpur, IIT Bombay, IIT Goa, IISER Bhopal to name a few.

Enroll