Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Coding exercises and Problem Sets for MITx: 6.00.1x Introduction to Computer Science and Programming Using Python, Jun-Aug 2019

Notifications You must be signed in to change notification settings

jillvp/MITx_6.00.1x

Repository files navigation

MITx_6.00.1x Introduction to Computer Science and Programming Using Python

This repository contains my solutions to the Coding exercises, Problem Sets and Final Exam for MITx: 6.00.1x Introduction to Computer Science and Programming Using Python, edX, Jun-Aug 2019

About This Course (description from edX)

An introduction to computer science as a tool to solve real-world analytical problems using Python 3.5.

This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning.

Since these courses may be the only formal computer science courses many of the students take, we have chosen to focus on breadth rather than depth. The goal is to provide students with a brief introduction to many topics so they will have an idea of what is possible when they need to think about how to use computation to accomplish some goal later in their career. That said, they are not "computation appreciation" courses. They are challenging and rigorous courses in which the students spend a lot of time and effort learning to bend the computer to their will.

What you’ll learn

  • A Notion of computation
  • The Python programming language
  • Some simple algorithms
  • Testing and debugging
  • An informal introduction to algorithmic complexity
  • Data structures

List of Lecture Topics

Week 1

  • Lecture 1 – Introduction to Python:

    • Knowledge
    • Machines
    • Languages
    • Types
    • Variables
    • Operators and Branching
  • Lecture 2 – Core elements of programs:

    • Bindings
    • Strings
    • Input/Output
    • IDEs
    • Control Flow
    • Iteration
    • Guess and Check

Week 2

  • Lecture 3 – Simple Programs:

    • Approximate Solutions
    • Bisection Search
    • Floats and Fractions
    • Newton-Raphson
  • Lecture 4 – Functions:

    • Decomposition and Abstraction
    • Functions and Scope
    • Keyword Arguments
    • Specifications
    • Iteration vs Recursion
    • Inductive Reasoning
    • Towers of Hanoi
    • Fibonacci
    • Recursion on non-numerics
    • Files

Week 3

  • Lecture 5 – Tuples and Lists:

    • Tuples
    • Lists
    • List Operations
    • Mutation, Aliasing, Cloning
  • Lecture 6 – Dictionaries:

    • Functions as Objects
    • Dictionaries
    • Example with a Dictionary
    • Fibonacci and Dictionaries
    • Global Variables

Week 4

  • Lecture 7 – Debugging:

    • Programming Challenges
    • Classes of Tests
    • Bugs
    • Debugging
    • Debugging Examples
  • Lecture 8 – Assertions and Exceptions

    • Assertions
    • Exceptions
    • Exception Examples

Week 5

  • Lecture 9 – Classes and Inheritance:

    • Object Oriented Programming
    • Class Instances
    • Methods
    • Classes Examples
    • Why OOP
    • Hierarchies
    • Your Own Types
  • Lecture 10 – An Extended Example:

    • Building a Class
    • Viualizing the Hierarchy
    • Adding another Class
    • Using Inherited Methods
    • Gradebook Example
    • Generators

Week 6

  • Lecture 11 – Computational Complexity:

    • Program Efficiency
    • Big Oh Notation
    • Complexity Classes
    • Analyzing Complexity
  • Lecture 12 – Searching and Sorting Algorithms:

    • Indirection
    • Linear Search
    • Bisection Search
    • Bogo and Bubble Sort
    • Selection Sort
    • Merge Sort

Week 7

  • Lecture 13 – Visualization of Data:

    • Visualizing Results
    • Overlapping Displays
    • Adding More Documentation
    • Changing Data Display
    • An Example
  • Lecture 14 – Summary

About

Coding exercises and Problem Sets for MITx: 6.00.1x Introduction to Computer Science and Programming Using Python, Jun-Aug 2019

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages