Learn · NPTEL

Course10610614545 lectures

Programming, Data Structures And Algorithms Using Python

Prof. Madhavan Mukund · Chennai Mathematical Institute

Start with lecture 1 At NPTEL

About

This course is an introduction to programming and problem solving in Python. It does not assume any prior knowledge of programming. Using some motivating examples, the course quickly builds up basic concepts such as conditionals, loops, functions, lists, strings and tuples. It goes on to cover searching and sorting algorithms, dynamic programming and backtracking, as well as topics such as exception handling and using files. As far as data structures are concerned, the course covers Python dictionaries as well as classes and objects for defining user defined datatypes such as linked lists and binary search trees.

Intended audience: Students in any branch of mathematics/science/engineering, 1st year

Prerequisites: School level mathematics.

Lectures

Week 1 : Introduction

  1. Lecture 1: Algorithms and programming: simple gcd YouTube
  2. Lecture 2: Improving naive gcd YouTube
  3. Lecture 3: Euclid's algorithm for gcd YouTube
  4. Lecture 4: Downloading and installing Python YouTube

Week 2: Basics of Python

  1. Lecture 1: Assignment statement, basic types - int, float, bool YouTube
  2. Lecture 2: Strings YouTube
  3. Lecture 3: Lists YouTube
  4. Lecture 4: Control Flow YouTube
  5. Lecture 5: Functions YouTube
  6. Lecture 6: Examples YouTube

Week 3: Lists, inductive function definitions, sorting

  1. Lecture 1: More about range() YouTube
  2. Lecture 2: Manipulating lists YouTube
  3. Lecture 3: Breaking out of a loop YouTube
  4. Lecture 4: Arrays vs lists, binary search YouTube
  5. Lecture 5: Efficiency YouTube
  6. Lecture 6: Selection Sort YouTube
  7. Lecture 7: Insertion Sort YouTube
  8. Lecture 8: Recursion YouTube

Week 4: Sorting, Tuples, Dictionaries, Passing Functions, List Comprehension

  1. Lecture 1: Mergesort YouTube
  2. Lecture 2: Mergesort, analysis YouTube
  3. Lecture 3: Quicksort YouTube
  4. Lecture 4: Quicksort analysis YouTube
  5. Lecture 5: Tuples and dictionaries YouTube
  6. Lecture 6: Function definitions YouTube
  7. Lecture 7: List Comprehension YouTube

Week 5: Exception handling, input/output, file handling, string processing

  1. Lecture 1: Exception Handling YouTube
  2. Lecture 2: Standard input and output YouTube
  3. Lecture 3: Handling files YouTube
  4. Lecture 4: String functions YouTube
  5. Lecture 5: Formatting printed output YouTube
  6. Lecture 6: pass, del() and None YouTube

Week 6: Backtracking, scope, data structures; stacks, queues and heaps

  1. Lecture 1: Backtracking, N queens YouTube
  2. Lecture 2: Global scope, nested functions YouTube
  3. Lecture 3: Generating permutations YouTube
  4. Lecture 4: Sets, stacks, queues YouTube
  5. Lecture 5: Priority queues and heaps YouTube

Week 7: Classes, objects and user defined datatypes

  1. Lecture 1: Abstract datatypes, classes and objects YouTube
  2. Lecture 2: Classes and objects in Python YouTube
  3. Lecture 3: User defined lists YouTube
  4. Lecture 4: Search trees YouTube

Week 8: Dynamic programming, wrap-up

  1. Lecture 1: Memoization and dynamic programming YouTube
  2. Lecture 2: Grid paths YouTube
  3. Lesson 3: Longest common subsequence YouTube
  4. Lecture 4: Matrix multiplication YouTube
  5. Lecture 5: Wrap-up, Python vs other languages YouTube

Syllabus and materials

At NPTEL, as the course publishes them.

Credits and licence

Institution
Chennai Mathematical Institute
Department
Computer Science and Engineering
Teacher
Prof. Madhavan Mukund
Level
Undergraduate
Language
English
Subjects
Computer science, Engineering
Source
NPTEL
Licence
CC BY-NC-SA, as NPTEL states it. Non-commercial use only. NPTEL's terms
Attribution
NPTEL states: "Distributed under Creative Commons Attribution-ShareAlike / CC BY - NC - SA", beside a BY-NC-SA badge. Coordinated by IIT Madras.
Who can watch
NPTEL gives no rating. Invisible Network shows it to Tweens profiles and older, judged from what the source says about it. How courses are placed