Principles of Computing (Part 2)

بواسطة: Coursera

Overview

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.

In part 2 of this course, the programming portion of the class will focus on concepts such as recursion, assertions, and invariants. The mathematical portion of the class will focus on searching, sorting, and recursive data structures. Upon completing this course, you will have a solid foundation in the principles of computation and programming. This will prepare you for the next course in the specialization, which will begin to introduce a structured approach to developing and analyzing algorithms. Developing such algorithmic thinking skills will be critical to writing large scale software and solving real world computational problems.

Syllabus

  • Searching and Data Structures
    • This week, we will explain the importance of searching. We will also explore various data structures and learn about inheritance.
  • Recursion
    • This week, we will explain the importance of recursion.
  • Trees
    • This week, we will explain the importance of trees. We will also explore how to set up game trees so that we can efficiently search them.
  • Modeling, Assertions, and Invariants
    • This week, we will explain the importance of modeling. We will also explore how to use assertions and invariants to ensure that our models are always consistent and correct.

Taught by

Scott Rixner, Joe Warren and Luay Nakhleh

Principles of Computing (Part 2)
الذهاب الي الدورة

Principles of Computing (Part 2)

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • Arabic, French, Portuguese, Italian, German, Russian, English, Spanish, Romanian, Thai, Indonesian, Kazakh, Hindi, Swedish, Korean, Greek, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version294msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (188ms)
    • Application (105ms)
    • 1 x Booting (63.87%)
      187.63ms
      1 x Application (35.88%)
      105.43ms
      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 executed3.74ms
      • select * from `courses` where `slug_ar` = 'principles-of-computing-(part-2)' limit 1
        2.48ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. principles-of-computing-(part-2)
        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-04-10 10:42:43' where `id` = 46
        480μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-10 10:42:43
        • 1. 46
        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)
        150μ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 (12) 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 (2) and `providers`.`deleted_at` is null
        140μ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` = 46 limit 1
        180μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 46
        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
        LHAUwHMDxmlpNwyCu25JJnzqUo6iKNzMB3i83X1I
        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/princi...
        _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/principles-of-computing-%28part-2%29
        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.139.103.88" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "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 => "92e1a39a487bd667-IAD" ] "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" ] "x-forwarded-for" => array:1 [ 0 => "3.139.103.88" ] "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.139.103.88" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "92e1a39a487bd667-IAD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.139.103.88" "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" => "19014" "REMOTE_ADDR" => "162.158.79.180" "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/principles-of-computing-%28part-2%29" "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" => 1744281763.1522 "REQUEST_TIME" => 1744281763 ]
        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, 10 Apr 2025 10:42:43 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjNTRE9vM1dtNEMxa2RWTWl4V2xaY1E9PSIsInZhbHVlIjoiMW0vaVhmaGIzRmNSSWp5TzVub2MwUVNiTU9yYjFyWVFDKzFlZFVoUndibE5mSndURFlDZUhvSWFRbnpjSnBHc0xsWDZWTUREUDNTYmZMbTJ1V005czYwRXBuQXgvd3VLdUlMMzVocHh0UGpCNGVXL3h5UStrSlVBcE00aTFMUmgiLCJtYWMiOiIzYjkxZTUyNzVhNTJjMjBhNjBkZGVmOTUyYmQxMTBmOTc2NWYyNTdiZWVmNTk5ZDk5N2VjZjRjM2FkMzQwOWEwIiwidGFnIjoiIn0%3D; expires=Thu, 10 Apr 2025 12:42:43 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjNTRE9vM1dtNEMxa2RWTWl4V2xaY1E9PSIsInZhbHVlIjoiMW0vaVhmaGIzRmNSSWp5TzVub2MwUVNiTU9yYjFyWVFDKzFlZFVoUndibE5mSndURFlDZUhvSWFRbnpjSnBHc0xsWDZWT" 1 => "laravel_session=eyJpdiI6IjhWSTE1eFRGZlFENUc1MHg5SmwwcWc9PSIsInZhbHVlIjoiVnc0SDh1VkZIMlFNYUx6MUEzOVdIdEpBTDZvb2h0VGxHM2xVb01OWmhORmh4eFRmY01PVXZjaVA5Uy91eWs3UkZiOUN1bzNOcUhDSUF1SmthTEVyMzJQN0lKemNQMWJ2T0dhbGxIaVltZGF5QzVlWE45bU9FQk9ZSmVMNzFSQUYiLCJtYWMiOiI2NWU2ZjhiMWE0YTQzNjZlM2ExYWIxNGQ0YjEzYzY1YmZiNGFkYTNkMmM1ZTBiMTM2MzZlMDYxZDc4MmIxMWI0IiwidGFnIjoiIn0%3D; expires=Thu, 10 Apr 2025 12:42:43 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjhWSTE1eFRGZlFENUc1MHg5SmwwcWc9PSIsInZhbHVlIjoiVnc0SDh1VkZIMlFNYUx6MUEzOVdIdEpBTDZvb2h0VGxHM2xVb01OWmhORmh4eFRmY01PVXZjaVA5Uy91eWs3UkZi" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjNTRE9vM1dtNEMxa2RWTWl4V2xaY1E9PSIsInZhbHVlIjoiMW0vaVhmaGIzRmNSSWp5TzVub2MwUVNiTU9yYjFyWVFDKzFlZFVoUndibE5mSndURFlDZUhvSWFRbnpjSnBHc0xsWDZWTUREUDNTYmZMbTJ1V005czYwRXBuQXgvd3VLdUlMMzVocHh0UGpCNGVXL3h5UStrSlVBcE00aTFMUmgiLCJtYWMiOiIzYjkxZTUyNzVhNTJjMjBhNjBkZGVmOTUyYmQxMTBmOTc2NWYyNTdiZWVmNTk5ZDk5N2VjZjRjM2FkMzQwOWEwIiwidGFnIjoiIn0%3D; expires=Thu, 10-Apr-2025 12:42:43 GMT; path=/XSRF-TOKEN=eyJpdiI6IjNTRE9vM1dtNEMxa2RWTWl4V2xaY1E9PSIsInZhbHVlIjoiMW0vaVhmaGIzRmNSSWp5TzVub2MwUVNiTU9yYjFyWVFDKzFlZFVoUndibE5mSndURFlDZUhvSWFRbnpjSnBHc0xsWDZWT" 1 => "laravel_session=eyJpdiI6IjhWSTE1eFRGZlFENUc1MHg5SmwwcWc9PSIsInZhbHVlIjoiVnc0SDh1VkZIMlFNYUx6MUEzOVdIdEpBTDZvb2h0VGxHM2xVb01OWmhORmh4eFRmY01PVXZjaVA5Uy91eWs3UkZiOUN1bzNOcUhDSUF1SmthTEVyMzJQN0lKemNQMWJ2T0dhbGxIaVltZGF5QzVlWE45bU9FQk9ZSmVMNzFSQUYiLCJtYWMiOiI2NWU2ZjhiMWE0YTQzNjZlM2ExYWIxNGQ0YjEzYzY1YmZiNGFkYTNkMmM1ZTBiMTM2MzZlMDYxZDc4MmIxMWI0IiwidGFnIjoiIn0%3D; expires=Thu, 10-Apr-2025 12:42:43 GMT; path=/; httponlylaravel_session=eyJpdiI6IjhWSTE1eFRGZlFENUc1MHg5SmwwcWc9PSIsInZhbHVlIjoiVnc0SDh1VkZIMlFNYUx6MUEzOVdIdEpBTDZvb2h0VGxHM2xVb01OWmhORmh4eFRmY01PVXZjaVA5Uy91eWs3UkZi" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "LHAUwHMDxmlpNwyCu25JJnzqUo6iKNzMB3i83X1I" "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/principles-of-computing-%28part-2%29" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]