Browse Course Material

Course info, instructors.

  • Dr. Ana Bell
  • Prof. Eric Grimson
  • Prof. John Guttag

Departments

  • Electrical Engineering and Computer Science

As Taught In

  • Algorithms and Data Structures
  • Programming Languages

Learning Resource Types

Introduction to computer science and programming in python, course description.

A black backlit keyboard.

You are leaving MIT OpenCourseWare

swayam-logo

Programming in Python

Page Visits

Course layout.

Week 1 : Planning the Computer Program: Concept of problem solving, Problem definition, Program design, Debugging, Types of errors in programming, Documentation.

Week 2 :  Techniques of Problem Solving: Flowcharting, decision table, algorithms, Structured programming concepts, Programming methodologies viz. top-down and bottom-up programming.

Week 3 :  Introduction to Python: Structure of a Python Program, Elements of Python, Python Interpreter, Using Python as calculator, Python shell, Indentation. Atoms, Identifiers and keywords, Literals, Strings and Operators.

Week 4 :  Conditional Statements and Looping: Branching, Looping, Conditional Statement, Exit function, Difference between break, continue and pass.

Week 5 :  String Manipulation: Understanding string, Accessing Strings, Basic Operations, String slices, Function and Methods.

Week 6 :  List: Introduction to list, Accessing list, list operations, Working with lists, Function and Methods.

Week 7 :  Tuples:  Introduction to tuple, Accessing tuples, Operations, Working, Functions and Methods.

Week 8 :   Dictionary:  Introduction to dictionaries, Accessing values in dictionaries, Working with dictionaries, Properties, Functions.

Week 9 :  Python Functions: Defining a function, Calling a function, Types of functions, Function Arguments, Anonymous functions, Global and local variables, Organizing python codes using functions.

Week 10 :  Python Modules: Organizing python projects into modules, Importing own module as well as external modules, Understanding Packages, modules and external packages.

Week 11 :  Input-Output: Printing on screen  , Reading data from keyboard , Opening and closing file , Reading and writing files , Functions.

Week 12 :  Exception Handling: Introduction to Exception, Exception Handling, Except clause, Try ? finally clause, User Defined Exceptions.

Books and references

Instructor bio.

introduction to problem solving and programming in python

Dr. Rizwan Rehman

Course certificate.

introduction to problem solving and programming in python

DOWNLOAD APP

introduction to problem solving and programming in python

SWAYAM SUPPORT

Please choose the SWAYAM National Coordinator for support. * :

swayam-logo

Programming, Data Structures And Algorithms Using Python

Note: This exam date is subject to change based on seat availability. You can check final exam date on your hall ticket.

Page Visits

Course layout, books and references, instructor bio.

introduction to problem solving and programming in python

Prof. Madhavan Mukund

Course certificate.

  • Assignment score = 25% of average of best 6 assignments out of the total 8 assignments given in the course. 
  • ( All assignments in a particular week will be counted towards final scoring - quizzes and programming assignments). 
  • Unproctored programming exam score = 25% of the average scores obtained as part of Unproctored programming exam - out of 100
  • Proctored Exam score =50% of the proctored certification exam score out of 100

introduction to problem solving and programming in python

DOWNLOAD APP

introduction to problem solving and programming in python

SWAYAM SUPPORT

Please choose the SWAYAM National Coordinator for support. * :

  • Why Python?
  • The Anaconda Distribution of Python
  • Installing Anaconda on Windows
  • Installing Anaconda on MacOS
  • Installing Anaconda on Linux
  • Installing Python from Python.org
  • Review Questions

Orientation

Introduction.

Welcome to the world of problem solving with Python! This first Orientation chapter will help you get started by guiding you through the process of installing Python on your computer. By the end of this chapter, you will be able to:

Describe why Python is a useful computer language for problem solvers

Describe applications where Python is used

Detail advantages of Python over other programming languages

Know the cost of Python

Know the difference between Python and Anaconda

Install Python on your computer

Install Anaconda on your computer

  • Table of Contents
  • Scratch ActiveCode
  • Navigation Help
  • Help for Instructors
  • About Runestone
  • Report A Problem
  • 1. Introduction
  • 2. Analysis
  • 3. Basic Data Structures
  • 4. Recursion
  • 5. Sorting and Searching
  • 6. Trees and Tree Algorithms
  • 7. Graphs and Graph Algorithms

Problem Solving with Algorithms and Data Structures using Python ¶

By Brad Miller and David Ranum, Luther College (as remixed by Jeffrey Elkner)

  • 1.1. Objectives
  • 1.2. Getting Started
  • 1.3. What Is Computer Science?
  • 1.4. What Is Programming?
  • 1.5. Why Study Data Structures and Abstract Data Types?
  • 1.6. Why Study Algorithms?
  • 1.7. Review of Basic Python
  • 1.8.1. Built-in Atomic Data Types
  • 1.8.2. Built-in Collection Data Types
  • 1.9.1. String Formatting
  • 1.10. Control Structures
  • 1.11. Exception Handling
  • 1.12. Defining Functions
  • 1.13.1. A Fraction Class
  • 1.13.2. Inheritance: Logic Gates and Circuits
  • 1.14. Summary
  • 1.15. Key Terms
  • 1.16. Discussion Questions
  • 1.17. Programming Exercises
  • 2.1. Objectives
  • 2.2. What Is Algorithm Analysis?
  • 2.3. Big-O Notation
  • 2.4.1. Solution 1: Checking Off
  • 2.4.2. Solution 2: Sort and Compare
  • 2.4.3. Solution 3: Brute Force
  • 2.4.4. Solution 4: Count and Compare
  • 2.5. Performance of Python Data Structures
  • 2.7. Dictionaries
  • 2.8. Summary
  • 2.9. Key Terms
  • 2.10. Discussion Questions
  • 2.11. Programming Exercises
  • 3.1. Objectives
  • 3.2. What Are Linear Structures?
  • 3.3. What is a Stack?
  • 3.4. The Stack Abstract Data Type
  • 3.5. Implementing a Stack in Python
  • 3.6. Simple Balanced Parentheses
  • 3.7. Balanced Symbols (A General Case)
  • 3.8. Converting Decimal Numbers to Binary Numbers
  • 3.9.1. Conversion of Infix Expressions to Prefix and Postfix
  • 3.9.2. General Infix-to-Postfix Conversion
  • 3.9.3. Postfix Evaluation
  • 3.10. What Is a Queue?
  • 3.11. The Queue Abstract Data Type
  • 3.12. Implementing a Queue in Python
  • 3.13. Simulation: Hot Potato
  • 3.14.1. Main Simulation Steps
  • 3.14.2. Python Implementation
  • 3.14.3. Discussion
  • 3.15. What Is a Deque?
  • 3.16. The Deque Abstract Data Type
  • 3.17. Implementing a Deque in Python
  • 3.18. Palindrome-Checker
  • 3.19. Lists
  • 3.20. The Unordered List Abstract Data Type
  • 3.21.1. The Node Class
  • 3.21.2. The Unordered List Class
  • 3.22. The Ordered List Abstract Data Type
  • 3.23.1. Analysis of Linked Lists
  • 3.24. Summary
  • 3.25. Key Terms
  • 3.26. Discussion Questions
  • 3.27. Programming Exercises
  • 4.1. Objectives
  • 4.2. What Is Recursion?
  • 4.3. Calculating the Sum of a List of Numbers
  • 4.4. The Three Laws of Recursion
  • 4.5. Converting an Integer to a String in Any Base
  • 4.6. Stack Frames: Implementing Recursion
  • 4.7. Introduction: Visualizing Recursion
  • 4.8. Sierpinski Triangle
  • 4.9. Complex Recursive Problems
  • 4.10. Tower of Hanoi
  • 4.11. Exploring a Maze
  • 4.12. Dynamic Programming
  • 4.13. Summary
  • 4.14. Key Terms
  • 4.15. Discussion Questions
  • 4.16. Glossary
  • 4.17. Programming Exercises
  • 5.1. Objectives
  • 5.2. Searching
  • 5.3.1. Analysis of Sequential Search
  • 5.4.1. Analysis of Binary Search
  • 5.5.1. Hash Functions
  • 5.5.2. Collision Resolution
  • 5.5.3. Implementing the Map Abstract Data Type
  • 5.5.4. Analysis of Hashing
  • 5.6. Sorting
  • 5.7. The Bubble Sort
  • 5.8. The Selection Sort
  • 5.9. The Insertion Sort
  • 5.10. The Shell Sort
  • 5.11. The Merge Sort
  • 5.12. The Quick Sort
  • 5.13. Summary
  • 5.14. Key Terms
  • 5.15. Discussion Questions
  • 5.16. Programming Exercises
  • 6.1. Objectives
  • 6.2. Examples of Trees
  • 6.3. Vocabulary and Definitions
  • 6.4. List of Lists Representation
  • 6.5. Nodes and References
  • 6.6. Parse Tree
  • 6.7. Tree Traversals
  • 6.8. Priority Queues with Binary Heaps
  • 6.9. Binary Heap Operations
  • 6.10.1. The Structure Property
  • 6.10.2. The Heap Order Property
  • 6.10.3. Heap Operations
  • 6.11. Binary Search Trees
  • 6.12. Search Tree Operations
  • 6.13. Search Tree Implementation
  • 6.14. Search Tree Analysis
  • 6.15. Balanced Binary Search Trees
  • 6.16. AVL Tree Performance
  • 6.17. AVL Tree Implementation
  • 6.18. Summary of Map ADT Implementations
  • 6.19. Summary
  • 6.20. Key Terms
  • 6.21. Discussion Questions
  • 6.22. Programming Exercises
  • 7.1. Objectives
  • 7.2. Vocabulary and Definitions
  • 7.3. The Graph Abstract Data Type
  • 7.4. An Adjacency Matrix
  • 7.5. An Adjacency List
  • 7.6. Implementation
  • 7.7. The Word Ladder Problem
  • 7.8. Building the Word Ladder Graph
  • 7.9. Implementing Breadth First Search
  • 7.10. Breadth First Search Analysis
  • 7.11. The Knight’s Tour Problem
  • 7.12. Building the Knight’s Tour Graph
  • 7.13. Implementing Knight’s Tour
  • 7.14. Knight’s Tour Analysis
  • 7.15. General Depth First Search
  • 7.16. Depth First Search Analysis
  • 7.17. Topological Sorting
  • 7.18. Strongly Connected Components
  • 7.19. Shortest Path Problems
  • 7.20. Dijkstra’s Algorithm
  • 7.21. Analysis of Dijkstra’s Algorithm
  • 7.22. Prim’s Spanning Tree Algorithm
  • 7.23. Summary
  • 7.24. Key Terms
  • 7.25. Discussion Questions
  • 7.26. Programming Exercises

Acknowledgements ¶

We are very grateful to Franklin Beedle Publishers for allowing us to make this interactive textbook freely available. This online version is dedicated to the memory of our first editor, Jim Leisy, who wanted us to “change the world.”

Indices and tables ¶

  • Module Index
  • Search Page

Creative Commons License

IMAGES

  1. problem solving and python programming unit 1

    introduction to problem solving and programming in python

  2. Problem Solving and Python Programming (with lab)

    introduction to problem solving and programming in python

  3. Introduction to Problem Solving || Programming with Python (Week#01)

    introduction to problem solving and programming in python

  4. Problem Solving and Programming with Python For Anna UniversitReema

    introduction to problem solving and programming in python

  5. [PDF] GE3151 Problem Solving and Python Programming (PSPP) Books

    introduction to problem solving and programming in python

  6. PPT

    introduction to problem solving and programming in python

VIDEO

  1. 21CSS101J Unit1 Problem Solving Programming

  2. Lec-14

  3. Lec-13: Introduction: Problem Solving-Part 1

  4. Patterns Solving (Important!!!??) in Python Programming Logic

  5. Introduction to Python Programming and Its Application L Intro

  6. Python Strings

COMMENTS

  1. Introduction to Computer Science and Programming in Python

    6.0001 Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.

  2. PDF Introduction to Problem Solving and Programming in Python

    Course Description. CIS 1051 introduces students to computers, computer programming, and problem solving using programs written in the Python language. Topics covered include the general characteristics of computers; techniques of problem solving and algorithm specifications; and the implementation, debugging, and testing of computer programs.

  3. Programming in Python

    Learners enrolled: 27277. This course covers two aspects of programming i.e. solving the problem using different techniques like algorithm, flowchart and decision table and then writing the programs using the syntax of Python language to obtain the computer solution to the problem. Python is a simple and easy to understand language.

  4. CIS 1051:Introduction to Problem Solving and Programming in Python

    DESCRIPTION. CIS 1051 introduces students to computers, computer programming, and problem solving using programs written in the Python language. . Topics covered include the general characteristics of computers; techniques of problem solving and algorithm specifications; and the implementation, debugging, and testing of computer programs.

  5. Programming, Data Structures And Algorithms Using Python

    Programming, Data Structures And Algorithms Using Python. 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.

  6. Introduction

    Introduction. Welcome to the world of problem solving with Python! This first Orientation chapter will help you get started by guiding you through the process of installing Python on your computer. By the end of this chapter, you will be able to: Describe why Python is a useful computer language for problem solvers.

  7. PDF Introduction to Problem Solving and Programming in Python

    High-Level Languages (HLL) Machine languages are hard for humans to understand Programmers create programs in high-level languages (Python, C, Java, etc.) A program written in HLL is called source code. Once written source code can either be compiled into machine language (a program) by a compiler, or interpreted by an interpreter.

  8. PDF Notes of Lesson Ge3151- Problem Solving and Python Programming

    sub function add() =a+b Step 4: Printc Step 5: Return2.NOTATIONS OF AN ALGORITHMAlgorithm can be expressed in many different notations, including Natur. l Language, Pseudo code, flowcharts and programming. languages. Natural language tends to be verbose and ambiguous. Pseudocode an.

  9. PDF Introduction to Problem Solving

    to apply problem solving techniques. Problem solving begins with the precise identification of the problem and ends with a complete working solution in terms of a program or software. Key steps required for solving a problem using a computer are shown in Figure 4.1 and are discussed in following subsections. 4.2.1 Analysing the problem It is ...

  10. Problem Solving with Algorithms and Data Structures using Python

    An interactive version of Problem Solving with Algorithms and Data Structures using Python. ... Introduction; 2. Analysis; 3. Basic Data Structures; 4. Recursion; 5. Sorting and Searching ... Object-Oriented Programming in Python: Defining Classes. 1.13.1. A Fraction Class; 1.13.2. Inheritance: Logic Gates and Circuits; 1.14. Summary