Course10610614545 lectures
Programming, Data Structures And Algorithms Using Python
Prof. Madhavan Mukund · Chennai Mathematical Institute
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
- Lecture 1: Algorithms and programming: simple gcd
- Lecture 2: Improving naive gcd
- Lecture 3: Euclid's algorithm for gcd
- Lecture 4: Downloading and installing Python
Week 2: Basics of Python
- Lecture 1: Assignment statement, basic types - int, float, bool
- Lecture 2: Strings
- Lecture 3: Lists
- Lecture 4: Control Flow
- Lecture 5: Functions
- Lecture 6: Examples
Week 3: Lists, inductive function definitions, sorting
- Lecture 1: More about range()
- Lecture 2: Manipulating lists
- Lecture 3: Breaking out of a loop
- Lecture 4: Arrays vs lists, binary search
- Lecture 5: Efficiency
- Lecture 6: Selection Sort
- Lecture 7: Insertion Sort
- Lecture 8: Recursion
Week 4: Sorting, Tuples, Dictionaries, Passing Functions, List Comprehension
- Lecture 1: Mergesort
- Lecture 2: Mergesort, analysis
- Lecture 3: Quicksort
- Lecture 4: Quicksort analysis
- Lecture 5: Tuples and dictionaries
- Lecture 6: Function definitions
- Lecture 7: List Comprehension
Week 5: Exception handling, input/output, file handling, string processing
- Lecture 1: Exception Handling
- Lecture 2: Standard input and output
- Lecture 3: Handling files
- Lecture 4: String functions
- Lecture 5: Formatting printed output
- Lecture 6: pass, del() and None
Week 6: Backtracking, scope, data structures; stacks, queues and heaps
- Lecture 1: Backtracking, N queens
- Lecture 2: Global scope, nested functions
- Lecture 3: Generating permutations
- Lecture 4: Sets, stacks, queues
- Lecture 5: Priority queues and heaps
Week 7: Classes, objects and user defined datatypes
- Lecture 1: Abstract datatypes, classes and objects
- Lecture 2: Classes and objects in Python
- Lecture 3: User defined lists
- Lecture 4: Search trees
Week 8: Dynamic programming, wrap-up
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
More like this
Course
Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
34 lectures · Video