Introduction to Computational Thinking

Brought by: MIT OpenCourseWare

Overview

This class uses revolutionary programmable interactivity to combine material from three fields creating an engaging, efficient learning solution to prepare students to be sophisticated and intuitive thinkers, programmers, and solution providers for the modern interconnected online world.

Upon completion, students are well trained to be scientific “trilinguals”, seeing and experimenting with mathematics interactively as math is meant to be seen, and ready to participate and contribute to open source development of large projects and ecosystems.

Syllabus

  • Module 1: Images, Transformations, Abstractions
    • 1.1 - Images as Data and Arrays
    • 1.2 - Abstraction
    • 1.3 - Automatic Differentiation
    • 1.4 - Transformations with Images
    • 1.5 - Transformations II: Composability, Linearity and Nonlinearity
    • 1.6 - The Newton Method
    • 1.7 - Dynamic Programming
    • 1.8 - Seam Carving
    • 1.9 - Taking Advantage of Structure
  • Module 2: Social Science & Data Science
    • 2.1 - Principal Component Analysis
    • 2.2 - Sampling and Random Variables
    • 2.3 - Modeling with Stochastic Simulation
    • 2.4 - Random Variables as Types
    • 2.5 - Random Walks
    • 2.6 - Random Walks II
    • 2.7 - Discrete and Continuous
    • 2.8 - Linear Model, Data Science, & Simulations
    • 2.9 - Optimization
  • Module 3: Climate Science
    • 3.1 - Time stepping
    • 3.2 - ODEs and parameterized types
    • 3.3 - Why we can't predict the weather
    • 3.4 - Our first climate model
    • 3.5 - GitHub & Open Source Software
    • 3.6 - Snowball Earth and hysteresis
    • 3.7 - Advection and diffusion in 1D
    • 3.8 - Resistors, stencils and climate models
    • 3.9 - Advection and diffusion in 2D
    • 3.10 - Climate Economics
    • 3.11 - Solving inverse problems

Taught by

Alan Edelman, David P. Sanders, and Charles E. Leiserson

Introduction to Computational Thinking
Go to course

Introduction to Computational Thinking

Brought by: MIT OpenCourseWare

  • MIT OpenCourseWare
  • Free
  • English
  • Certificate Not Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version1.05sRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (686ms)
    • Application (359ms)
    • 1 x Booting (65.51%)
      685.91ms
      1 x Application (34.24%)
      358.51ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed8.76ms
      • select * from `courses` where `slug_en` = 'introduction-to-computational-thinking' limit 1
        6.86ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introduction-to-computational-thinking
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-20 06:08:17' where `id` = 559
        850μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-20 06:08:17
        • 1. 559
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (1)
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (3) and `institutions`.`deleted_at` is null
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (9) and `providers`.`deleted_at` is null
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 553 limit 1
        270μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 553
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        lyIaMibbPFWoNsxiB9EtcIJEyy4EX1ugfoujQTl7
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-to-computational-thinking" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/introduction-to-computational-thinking
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.118" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.118" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "952917375da0a599-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.118" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.118" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "952917375da0a599-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "56008" "REMOTE_ADDR" => "172.70.126.170" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/introduction-to-computational-thinking" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1750399696.7867 "REQUEST_TIME" => 1750399696 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Fri, 20 Jun 2025 06:08:17 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IndFL2JSclo0S3hMVmlLeDVwRFRpV3c9PSIsInZhbHVlIjoicURWV2lPRXV0NDBrbWVXczVYaitKaWFSVFJwellRVlZYODV5aVhhaWNmWjJLY1FLeWJuMFpyMWRzYlhab0V0OVlpcFFlamtSUGIvMGFadHhwa0x3ODZZTUJxeWkyNDUzd2ZCekJGL0dNWFIrTUxwZzlUcnM5MWRrL0Rxa3NScVAiLCJtYWMiOiI5ZDc0ZDQzMzNlYzBiZWNiZTgxZjRmZDMwMGQ3ZWViNWJjYzU5NDA0ZTg5M2FjZjE4OGNmZmMwZGU4ODEwNGY3IiwidGFnIjoiIn0%3D; expires=Fri, 20 Jun 2025 08:08:17 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IndFL2JSclo0S3hMVmlLeDVwRFRpV3c9PSIsInZhbHVlIjoicURWV2lPRXV0NDBrbWVXczVYaitKaWFSVFJwellRVlZYODV5aVhhaWNmWjJLY1FLeWJuMFpyMWRzYlhab0V0OVlpcFFla" 1 => "laravel_session=eyJpdiI6Ik1DeGRPbTJRemIrRy9CK2VwRndlL3c9PSIsInZhbHVlIjoiTTJHbzJFZHpHTnp3eE9oYnJGSTBVSGJLZks5YjVUdFhOeHhhWVZGWXZPVGNDRXhCSGE1R1RWczh6TU9KRzV3MFo5TzFld1lxTkd3blozVXNXaHh1V0YvakJBbGg4dUJ1U284KzRkZ05iY1JHbXNoY2ZRZm5ueGYrSmVtbVpLdCsiLCJtYWMiOiI4NzlhYzViODk1MWI1OGFmZWJhYzlmM2E3NmQ2ZGEzZWU3YWEzNjEwNjBiY2ZlZjY1ZDI5NDgxOTA3YjlmMmI3IiwidGFnIjoiIn0%3D; expires=Fri, 20 Jun 2025 08:08:17 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ik1DeGRPbTJRemIrRy9CK2VwRndlL3c9PSIsInZhbHVlIjoiTTJHbzJFZHpHTnp3eE9oYnJGSTBVSGJLZks5YjVUdFhOeHhhWVZGWXZPVGNDRXhCSGE1R1RWczh6TU9KRzV3MFo5" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IndFL2JSclo0S3hMVmlLeDVwRFRpV3c9PSIsInZhbHVlIjoicURWV2lPRXV0NDBrbWVXczVYaitKaWFSVFJwellRVlZYODV5aVhhaWNmWjJLY1FLeWJuMFpyMWRzYlhab0V0OVlpcFFlamtSUGIvMGFadHhwa0x3ODZZTUJxeWkyNDUzd2ZCekJGL0dNWFIrTUxwZzlUcnM5MWRrL0Rxa3NScVAiLCJtYWMiOiI5ZDc0ZDQzMzNlYzBiZWNiZTgxZjRmZDMwMGQ3ZWViNWJjYzU5NDA0ZTg5M2FjZjE4OGNmZmMwZGU4ODEwNGY3IiwidGFnIjoiIn0%3D; expires=Fri, 20-Jun-2025 08:08:17 GMT; path=/XSRF-TOKEN=eyJpdiI6IndFL2JSclo0S3hMVmlLeDVwRFRpV3c9PSIsInZhbHVlIjoicURWV2lPRXV0NDBrbWVXczVYaitKaWFSVFJwellRVlZYODV5aVhhaWNmWjJLY1FLeWJuMFpyMWRzYlhab0V0OVlpcFFla" 1 => "laravel_session=eyJpdiI6Ik1DeGRPbTJRemIrRy9CK2VwRndlL3c9PSIsInZhbHVlIjoiTTJHbzJFZHpHTnp3eE9oYnJGSTBVSGJLZks5YjVUdFhOeHhhWVZGWXZPVGNDRXhCSGE1R1RWczh6TU9KRzV3MFo5TzFld1lxTkd3blozVXNXaHh1V0YvakJBbGg4dUJ1U284KzRkZ05iY1JHbXNoY2ZRZm5ueGYrSmVtbVpLdCsiLCJtYWMiOiI4NzlhYzViODk1MWI1OGFmZWJhYzlmM2E3NmQ2ZGEzZWU3YWEzNjEwNjBiY2ZlZjY1ZDI5NDgxOTA3YjlmMmI3IiwidGFnIjoiIn0%3D; expires=Fri, 20-Jun-2025 08:08:17 GMT; path=/; httponlylaravel_session=eyJpdiI6Ik1DeGRPbTJRemIrRy9CK2VwRndlL3c9PSIsInZhbHVlIjoiTTJHbzJFZHpHTnp3eE9oYnJGSTBVSGJLZks5YjVUdFhOeHhhWVZGWXZPVGNDRXhCSGE1R1RWczh6TU9KRzV3MFo5" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "lyIaMibbPFWoNsxiB9EtcIJEyy4EX1ugfoujQTl7" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-to-computational-thinking" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]