Programming 102: Think Like a Computer Scientist

بواسطة: FutureLearn

Overview

Find out what else you can do with Python

On this course, you’ll explore Python programming at an intermediate level.

You’ll discover how to break down problems into smaller parts, and then design and apply algorithms to data. You’ll also explore list structures and their various uses.

Ultimately, what you learn will build upon your foundational Python skills - preparing you to progress onto more advanced programming.

This course would suit teachers with some Python experience, who are able to write simple programs demonstrating sequencing, selection, iteration and data types.

To take part in this course you’ll need to download Python, or use an online IDE.

Syllabus

  • Function as units of code
    • About this course
    • Preparing to learn
    • Functions with parameters and returns
    • Teaching functions
    • Week review
  • Algorithms, lists & counting
    • Algorithms
    • Lists
    • Algorithms and counting
    • Recap of week 2
  • Sorting
    • Welcome to week 3
    • Bubble Sort
    • Insertion Sort
    • Merge Sort
    • Week 3 recap
  • Searching
    • Welcome to week 4
    • Linear Search
    • Binary Search
    • Embedding your learning by teaching
    • End of the Course

Taught by

James Robinson

Programming 102: Think Like a Computer Scientist
الذهاب الي الدورة

Programming 102: Think Like a Computer Scientist

بواسطة: FutureLearn

  • FutureLearn
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • intermediate
  • N/A
8.1.2PHP Version322msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (202ms)
    • Application (119ms)
    • 1 x Booting (62.78%)
      201.93ms
      1 x Application (36.97%)
      118.91ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed9.01ms
      • select * from `courses` where `slug_ar` = 'programming-102:-think-like-a-computer-scientist' limit 1
        7.23ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. programming-102:-think-like-a-computer-scientist
        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-02 00:48:53' where `id` = 2672
        550μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-02 00:48:53
        • 1. 2672
        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 (6)
        180μ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)
        140μ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 (98) and `institutions`.`deleted_at` is null
        170μ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 (4) and `providers`.`deleted_at` is null
        160μ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` = 2663 limit 1
        580μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2663
        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
        GVEGyeR656boILGVtR5q7miPaqZ6rnUEKU7xN2C0
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/progra...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/programming-102:-think-like-a-computer-scientist
        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 => "3.141.202.105" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "3.141.202.105" ] "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 => "9492f2984a70e268-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" => "3.141.202.105" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "3.141.202.105" "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" => "9492f2984a70e268-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" => "52410" "REMOTE_ADDR" => "172.70.100.70" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/programming-102:-think-like-a-computer-scientist" "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" => 1748825332.7849 "REQUEST_TIME" => 1748825332 ]
        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 => "Mon, 02 Jun 2025 00:48:53 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlNmUURkUFV4eVpORk8rT3ZHbjJJaXc9PSIsInZhbHVlIjoiTHpwRGcrUUdNSDc4RVdoelYxNDZRWjN1V1hWZjlPUFZLbEh1Vkd1czFXOXRidndOVlVCN2NWYm1hOUFFM2ovYXc2VXFmUHhyWmkwNHBIcGFub1hrazh4ak5Ib2UrQ1JmYVpQS3FKZExuNnlBcGNWVGp3ZjRjR1RzOWh1NzVwV2MiLCJtYWMiOiI0ZmEyYjM3ODIwNTg3MTY2MTlhNDNhYzEwYjNiYmY1MjFhNDQ4YWY1OThiZTg5MDhmZDcxMTExMGZlZjg3ZTIxIiwidGFnIjoiIn0%3D; expires=Mon, 02 Jun 2025 02:48:53 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlNmUURkUFV4eVpORk8rT3ZHbjJJaXc9PSIsInZhbHVlIjoiTHpwRGcrUUdNSDc4RVdoelYxNDZRWjN1V1hWZjlPUFZLbEh1Vkd1czFXOXRidndOVlVCN2NWYm1hOUFFM2ovYXc2VXFmU" 1 => "laravel_session=eyJpdiI6IkUzUkM1OWQ3QisvZUVZMngvc2VONEE9PSIsInZhbHVlIjoicVJ1Q090N0lzNUk2WGpTVEJWRGxSQ3dNL014R2pWREZvSk9QMFBQU3BxRTV5SVBQU2NrR2NnZDdEL2cra25uRjNFVmRPaUNQbzhKRjJCdVpUR052UndjK1JsUHR0TkxldjBnb1AxY05GZGNjc1Z0RHVETFk5S1M3Yk1aY0hWakEiLCJtYWMiOiI4ZDU1NzRmNGY0MzBlMzc0YWFiNWU5MTJmNTFiYzk0ODVkOGYyMjMwMTg4ODhkNWQzMTkwYzI3NDcwZmFmM2NjIiwidGFnIjoiIn0%3D; expires=Mon, 02 Jun 2025 02:48:53 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkUzUkM1OWQ3QisvZUVZMngvc2VONEE9PSIsInZhbHVlIjoicVJ1Q090N0lzNUk2WGpTVEJWRGxSQ3dNL014R2pWREZvSk9QMFBQU3BxRTV5SVBQU2NrR2NnZDdEL2cra25uRjNF" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlNmUURkUFV4eVpORk8rT3ZHbjJJaXc9PSIsInZhbHVlIjoiTHpwRGcrUUdNSDc4RVdoelYxNDZRWjN1V1hWZjlPUFZLbEh1Vkd1czFXOXRidndOVlVCN2NWYm1hOUFFM2ovYXc2VXFmUHhyWmkwNHBIcGFub1hrazh4ak5Ib2UrQ1JmYVpQS3FKZExuNnlBcGNWVGp3ZjRjR1RzOWh1NzVwV2MiLCJtYWMiOiI0ZmEyYjM3ODIwNTg3MTY2MTlhNDNhYzEwYjNiYmY1MjFhNDQ4YWY1OThiZTg5MDhmZDcxMTExMGZlZjg3ZTIxIiwidGFnIjoiIn0%3D; expires=Mon, 02-Jun-2025 02:48:53 GMT; path=/XSRF-TOKEN=eyJpdiI6IlNmUURkUFV4eVpORk8rT3ZHbjJJaXc9PSIsInZhbHVlIjoiTHpwRGcrUUdNSDc4RVdoelYxNDZRWjN1V1hWZjlPUFZLbEh1Vkd1czFXOXRidndOVlVCN2NWYm1hOUFFM2ovYXc2VXFmU" 1 => "laravel_session=eyJpdiI6IkUzUkM1OWQ3QisvZUVZMngvc2VONEE9PSIsInZhbHVlIjoicVJ1Q090N0lzNUk2WGpTVEJWRGxSQ3dNL014R2pWREZvSk9QMFBQU3BxRTV5SVBQU2NrR2NnZDdEL2cra25uRjNFVmRPaUNQbzhKRjJCdVpUR052UndjK1JsUHR0TkxldjBnb1AxY05GZGNjc1Z0RHVETFk5S1M3Yk1aY0hWakEiLCJtYWMiOiI4ZDU1NzRmNGY0MzBlMzc0YWFiNWU5MTJmNTFiYzk0ODVkOGYyMjMwMTg4ODhkNWQzMTkwYzI3NDcwZmFmM2NjIiwidGFnIjoiIn0%3D; expires=Mon, 02-Jun-2025 02:48:53 GMT; path=/; httponlylaravel_session=eyJpdiI6IkUzUkM1OWQ3QisvZUVZMngvc2VONEE9PSIsInZhbHVlIjoicVJ1Q090N0lzNUk2WGpTVEJWRGxSQ3dNL014R2pWREZvSk9QMFBQU3BxRTV5SVBQU2NrR2NnZDdEL2cra25uRjNF" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "GVEGyeR656boILGVtR5q7miPaqZ6rnUEKU7xN2C0" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/programming-102:-think-like-a-computer-scientist" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]