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.
You are leaving MIT OpenCourseWare
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.
Dr. Rizwan Rehman
Course certificate.
DOWNLOAD APP
SWAYAM SUPPORT
Please choose the SWAYAM National Coordinator for support. * :
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.
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
DOWNLOAD APP
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
IMAGES
VIDEO
COMMENTS
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.
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.
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.
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.
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.
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.
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.
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.
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 ...
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