Programming 102: Think Like a Computer Scientist

Brought by: 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
Go to course

Programming 102: Think Like a Computer Scientist

Brought by: FutureLearn

  • FutureLearn
  • Free
  • English
  • Certificate Available
  • Certain days
  • intermediate
  • N/A
8.1.2PHP Version940msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (609ms)
    • Application (329ms)
    • 1 x Booting (64.81%)
      609.47ms
      1 x Application (34.94%)
      328.52ms
      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 executed10.29ms
      • select * from `courses` where `slug_en` = 'programming-102:-think-like-a-computer-scientist' limit 1
        8.6ms/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-12 09:05:03' where `id` = 2672
        560μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-12 09:05:03
        • 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)
        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)
        200μ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
        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 * from `providers` where `providers`.`id` in (4) and `providers`.`deleted_at` is null
        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 * from `html_files` where `html_files`.`id` = 2663 limit 1
        270μ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
        8Y7GcRfszWXq1dicWiHqvZWVfpb1yRq4j8MU0xB3
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/programming-102:-think-like-a-computer-sc...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/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 => "216.73.216.123" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.123" ] "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 => "94e82f23edc245f5-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.123" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.123" "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" => "94e82f23edc245f5-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" => "36592" "REMOTE_ADDR" => "172.69.17.95" "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/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" => 1749719102.3419 "REQUEST_TIME" => 1749719102 ]
        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 => "Thu, 12 Jun 2025 09:05:03 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjByZmlaeWZudnRWUWV4MTh0UUhTaXc9PSIsInZhbHVlIjoiZVR6L2JpajRRKzdIY2gyckxORGN6U0Y2U2FDWUY1bWVsOEsrTHQwbnNTSlliZEEvU1hZK0ZUYVBGUE1wNm9RMXIrbkRSRnpabnVCWEwwdnpBR0kwaGpBYUc1Vjcvc1hrbytLc3hkbmZraVd5cFYycWJuU1FiUjMrRjZMeXAraTQiLCJtYWMiOiI4ZGFiYzIyNDc4YTlmYjlhMzlkMzkwM2Q1MWI0Yjc4ZmFlOWM5YjU5Mjk5Zjg5M2ExMTlhMGVjNWZjOTU1NGE4IiwidGFnIjoiIn0%3D; expires=Thu, 12 Jun 2025 11:05:03 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjByZmlaeWZudnRWUWV4MTh0UUhTaXc9PSIsInZhbHVlIjoiZVR6L2JpajRRKzdIY2gyckxORGN6U0Y2U2FDWUY1bWVsOEsrTHQwbnNTSlliZEEvU1hZK0ZUYVBGUE1wNm9RMXIrbkRSR" 1 => "laravel_session=eyJpdiI6ImJEOU1sYVgwbFBNaHh0aGs3ZmlJTWc9PSIsInZhbHVlIjoiZW9SYUo4dUJrT2tNR0x3VTY5cC9nd0RFOXdNSUVvY3ErMmNCTGlCUWJyUVJFWWJ5QkErZmpBaHNFZlRQdG1YbC9MWFoyanB3MEF5MTBzQlRGR2V1bllVdnBZbm02cDRZYUJvNTVneGJuY3AwQlF5WElCRGJFaFc3YU8xUG1PbWQiLCJtYWMiOiIxNDk4MjlkMTg1Y2RhNDVlNmUzN2Q4Y2UxNGU5YjkwMGYxYmZhM2MwYzRjOGNmYjMwMTcwNTZhYTFmYzZkYjZjIiwidGFnIjoiIn0%3D; expires=Thu, 12 Jun 2025 11:05:03 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImJEOU1sYVgwbFBNaHh0aGs3ZmlJTWc9PSIsInZhbHVlIjoiZW9SYUo4dUJrT2tNR0x3VTY5cC9nd0RFOXdNSUVvY3ErMmNCTGlCUWJyUVJFWWJ5QkErZmpBaHNFZlRQdG1YbC9M" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjByZmlaeWZudnRWUWV4MTh0UUhTaXc9PSIsInZhbHVlIjoiZVR6L2JpajRRKzdIY2gyckxORGN6U0Y2U2FDWUY1bWVsOEsrTHQwbnNTSlliZEEvU1hZK0ZUYVBGUE1wNm9RMXIrbkRSRnpabnVCWEwwdnpBR0kwaGpBYUc1Vjcvc1hrbytLc3hkbmZraVd5cFYycWJuU1FiUjMrRjZMeXAraTQiLCJtYWMiOiI4ZGFiYzIyNDc4YTlmYjlhMzlkMzkwM2Q1MWI0Yjc4ZmFlOWM5YjU5Mjk5Zjg5M2ExMTlhMGVjNWZjOTU1NGE4IiwidGFnIjoiIn0%3D; expires=Thu, 12-Jun-2025 11:05:03 GMT; path=/XSRF-TOKEN=eyJpdiI6IjByZmlaeWZudnRWUWV4MTh0UUhTaXc9PSIsInZhbHVlIjoiZVR6L2JpajRRKzdIY2gyckxORGN6U0Y2U2FDWUY1bWVsOEsrTHQwbnNTSlliZEEvU1hZK0ZUYVBGUE1wNm9RMXIrbkRSR" 1 => "laravel_session=eyJpdiI6ImJEOU1sYVgwbFBNaHh0aGs3ZmlJTWc9PSIsInZhbHVlIjoiZW9SYUo4dUJrT2tNR0x3VTY5cC9nd0RFOXdNSUVvY3ErMmNCTGlCUWJyUVJFWWJ5QkErZmpBaHNFZlRQdG1YbC9MWFoyanB3MEF5MTBzQlRGR2V1bllVdnBZbm02cDRZYUJvNTVneGJuY3AwQlF5WElCRGJFaFc3YU8xUG1PbWQiLCJtYWMiOiIxNDk4MjlkMTg1Y2RhNDVlNmUzN2Q4Y2UxNGU5YjkwMGYxYmZhM2MwYzRjOGNmYjMwMTcwNTZhYTFmYzZkYjZjIiwidGFnIjoiIn0%3D; expires=Thu, 12-Jun-2025 11:05:03 GMT; path=/; httponlylaravel_session=eyJpdiI6ImJEOU1sYVgwbFBNaHh0aGs3ZmlJTWc9PSIsInZhbHVlIjoiZW9SYUo4dUJrT2tNR0x3VTY5cC9nd0RFOXdNSUVvY3ErMmNCTGlCUWJyUVJFWWJ5QkErZmpBaHNFZlRQdG1YbC9M" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "8Y7GcRfszWXq1dicWiHqvZWVfpb1yRq4j8MU0xB3" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/programming-102:-think-like-a-computer-scientist" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]