YoVDO

Programming, Data Structures and Algorithms in Python

Offered By: Chennai Mathematical Institute via Swayam

Tags

Programming Courses Python Courses Algorithms Courses Data Structures Courses Dynamic programming Courses Memory Management Courses

Course Description

Overview

Learn the fundamentals of programming, data structures, and algorithms using Python in this 8-week course. Explore topics ranging from basic Python syntax and control structures to advanced concepts like object-oriented programming and dynamic programming. Develop problem-solving skills through hands-on coding exercises, including implementing sorting algorithms, data structures, and recursive functions. Gain practical experience with file handling, exception management, and algorithm analysis. By the end of the course, master essential programming techniques and acquire a solid foundation in computer science principles, preparing you for more advanced studies or real-world software development challenges.

Syllabus

Week 1
Informal introduction to programmin, algorithms and data structures viagcd
Downloading and installing Python
gcd in Python: variables, operations, control flow - assignments, condition-als, loops, functions

Week 2
Python: types, expressions, strings, lists, tuples
Python memory model: names, mutable and immutable values
List operations: slices etc
Binary search
Inductive function denitions: numerical and structural induction
Elementary inductive sorting: selection and insertion sort
In-place sorting

Week 3
Basic algorithmic analysis: input size, asymptotic complexity, O() notation
Arrays vs lists
Merge sort
Quicksort
Stable sorting

Week 4
Dictionaries
More on Python functions: optional arguments, default values
Passing functions as arguments
Higher order functions on lists: map, lter, list comprehension

Week 5
Exception handling
Basic input/output
Handling files
String processing

Week 6
Backtracking: N Queens, recording all solutions
Scope in Python: local, global, nonlocal names
Nested functions
Data structures: stack, queue
Heaps

Week 7
Abstract datatypes
Classes and objects in Python
"Linked" lists: find, insert, delete
Binary search trees: find, insert, delete
Height-balanced binary search trees

Week 8
Effcient evaluation of recursive denitions: memoization
Dynamic programming: examples
Other programming languages: C and manual memory management
Other programming paradigms: functional programming


Taught by

Madhavan Mukund

Tags

Related Courses

2D image processing
Higher School of Economics via Coursera
Abstraction, Problem Decomposition, and Functions
University of Colorado System via Coursera
AWS Alexa Skill Builder Essentials
A Cloud Guru
Azure Cosmos DB Deep Dive
A Cloud Guru
PostgreSQL Administration Deep Dive
A Cloud Guru