+1 -1 +24
Vote on this proposal

Problem Solving in Python - How to write correct and efficient programs with ease

by Rahul Pydimukkala (speaking)

Section
Core Python
Technical level
Intermediate

Objective

The talk focuses on implementing data structures and algorithms in Python and teaches principles behind program correctness and efficiency.

Description

How can we write a program to search for a node in a given graph? How can we implement a balanced binary search tree data structure? How about finding a shortest path between two nodes in a graph? How about a program that generates all permutations of a given list of objects? How about printing 999th prime number? How about drawing a 5th Hilbert curve? How about finding the GCD of 100 positive integers or solving 8 Queens problem? This list goes on.

If we know how to solve the above problems, how ease are we at translating our solutions into working Python programs? Given that we have implemented a program that solves a problem, how would we reason about its correctness even before we test it? How efficient(practical/empirical sense) is our program on large inputs? How can we do better? These are some questions one often needs to answer.

In this session we will answer these questions. We find that to answer these questions the best way we would need a language that allows us to think from first principles and how Python allows that. We learn how good Python is for solving problems, doing so correctly and efficiently. We wade through the core Python language facilities that make it possible namely, higher-order functions, recursion, list comprehensions, data abstraction and some functional programming principles.

Requirements

Pen and paper.

Speaker bio

Rahul Pydimukkala is an entrepreneur and founder, CEO of The Art of Programming Edulabs (www.artofprogramming.org) . He is also a trainer and teaches programming to working professionals from industry and has 7 years of experience as a professional programmer. He believes in promoting quality programming education at all levels in an affordable and accessible manner and that doing so would empower people in great ways. Rahul attended IIT Kanpur as an undergraduate in Computer Science and Engineering discipline.