Principles of Computing (Part 1)

بواسطة: Coursera

Overview

This two-part course builds upon the programming skills that you learned in our Introduction to Interactive Programming in Python course. We will augment those skills with both important programming practices and critical mathematical problem solving skills. These skills underlie larger scale computational problem solving and programming. The main focus of the class will be programming weekly mini-projects in Python 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 1 of this course, the programming aspect of the class will focus on coding standards and testing. The mathematical portion of the class will focus on probability, combinatorics, and counting with an eye towards practical applications of these concepts in Computer Science.

Recommended Background - Students should be comfortable writing small (100+ line) programs in Python using constructs such as lists, dictionaries and classes and also have a high-school math background that includes algebra and pre-calculus.

Syllabus

  • Required Python knowledge, coding standards, and machine grading
    • This week, we will introduce you to the structure and standards of the Principles of Computing courses.
  • Testing, plotting, and grids
    • This week, we will explain the importance of testing. We will also learn to solve problems with grids.
  • Probability, randomness, and objects/references
    • This we will learn how to use probability and randomness to solve problems.
  • Combinatorics, generators, and debugging
    • This week, we will learn how to use combinatorics to solve problems.
  • Counting, growth of functions, higher-order functions
    • This week, we will explain the importance of counting in solving complex problems.

Taught by

Scott Rixner, Joe Warren and Luay Nakhleh

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

Principles of Computing (Part 1)

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • intermediate
  • Arabic, French, Portuguese, Italian, German, Russian, English, Spanish, Thai, Indonesian, Kazakh, Hindi, Swedish, Korean, Greek, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version354msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (227ms)
    • Application (126ms)
    • 1 x Booting (64.11%)
      226.87ms
      1 x Application (35.64%)
      126.11ms
      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.42ms
      • select * from `courses` where `slug_ar` = 'principles-of-computing-(part-1)' limit 1
        2.27ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. principles-of-computing-(part-1)
        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 05:31:04' where `id` = 19
        400μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-10 05:31:04
        • 1. 19
        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)
        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 `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        130μ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
        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 * 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` = 19 limit 1
        170μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 19
        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
        o2hTxEJnhHPWas0Whr112CwWxZx3Spm7wLFlDDO7
        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-1%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 => "18.222.197.132" ] "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 => "92dfdb17482f10ae-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" ] "x-forwarded-for" => array:1 [ 0 => "18.222.197.132" ] "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" => "18.222.197.132" "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" => "92dfdb17482f10ae-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "18.222.197.132" "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" => "10498" "REMOTE_ADDR" => "172.69.59.162" "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-1%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" => 1744263064.4681 "REQUEST_TIME" => 1744263064 ]
        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 05:31:04 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlUxZFVjYzhiYmUrQ1U5MXFsTThVNWc9PSIsInZhbHVlIjoiNzJhdE5yUjJOYkdDdDJtZGh3Uk5wQlZRQ0Z6aHdrVURkcDlaR3NpaWJrcVh5T0tYc2xoa1ZkSmdyUlFsSzhpejlEN0pLNWpqczlSeG1OQi9lVHozT29FYWc1QTdkd2hJdW5Ka3pPbE1ZWE1RVXNsWk5mNzIreXZkZDJJbmJvR2ciLCJtYWMiOiIyMmViNDRmN2JkMjgzZTUyZGY1YTJmMzRhYzg1NGE0MGI3ZmE1NjU2ZmNiZTY0NzYxNmViZjg3Njc4NTdlZDE0IiwidGFnIjoiIn0%3D; expires=Thu, 10 Apr 2025 07:31:04 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlUxZFVjYzhiYmUrQ1U5MXFsTThVNWc9PSIsInZhbHVlIjoiNzJhdE5yUjJOYkdDdDJtZGh3Uk5wQlZRQ0Z6aHdrVURkcDlaR3NpaWJrcVh5T0tYc2xoa1ZkSmdyUlFsSzhpejlEN0pLN" 1 => "laravel_session=eyJpdiI6IjQycGIxTVRlQWlFdW8yb0dLK0JUOHc9PSIsInZhbHVlIjoiVm15YjZ2cFpQNUYyN3BJRXR5OW42NDdmbk9NbU45d1l1SXFTdjJ2Z25DbXZXM0tNaDg4S1BBZ0NOQ2FzYTFGek8wSmFyTEZGd1NQQWp2WVN2RzZXc1k2Qy9QV1l2eGthNUVRNDR4T2xWTkgwNlYyVUl6WFRyM2d4NmFLTG1nR3IiLCJtYWMiOiI3OGVmZDgyMWM0YWU1YWI5M2U0YTA3NGRmNWIxYTZiOGZkYmE2MWZiYjZlMmM0NTBlZDE5Yjk1NzI1ODU4ODU3IiwidGFnIjoiIn0%3D; expires=Thu, 10 Apr 2025 07:31:04 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjQycGIxTVRlQWlFdW8yb0dLK0JUOHc9PSIsInZhbHVlIjoiVm15YjZ2cFpQNUYyN3BJRXR5OW42NDdmbk9NbU45d1l1SXFTdjJ2Z25DbXZXM0tNaDg4S1BBZ0NOQ2FzYTFGek8w" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlUxZFVjYzhiYmUrQ1U5MXFsTThVNWc9PSIsInZhbHVlIjoiNzJhdE5yUjJOYkdDdDJtZGh3Uk5wQlZRQ0Z6aHdrVURkcDlaR3NpaWJrcVh5T0tYc2xoa1ZkSmdyUlFsSzhpejlEN0pLNWpqczlSeG1OQi9lVHozT29FYWc1QTdkd2hJdW5Ka3pPbE1ZWE1RVXNsWk5mNzIreXZkZDJJbmJvR2ciLCJtYWMiOiIyMmViNDRmN2JkMjgzZTUyZGY1YTJmMzRhYzg1NGE0MGI3ZmE1NjU2ZmNiZTY0NzYxNmViZjg3Njc4NTdlZDE0IiwidGFnIjoiIn0%3D; expires=Thu, 10-Apr-2025 07:31:04 GMT; path=/XSRF-TOKEN=eyJpdiI6IlUxZFVjYzhiYmUrQ1U5MXFsTThVNWc9PSIsInZhbHVlIjoiNzJhdE5yUjJOYkdDdDJtZGh3Uk5wQlZRQ0Z6aHdrVURkcDlaR3NpaWJrcVh5T0tYc2xoa1ZkSmdyUlFsSzhpejlEN0pLN" 1 => "laravel_session=eyJpdiI6IjQycGIxTVRlQWlFdW8yb0dLK0JUOHc9PSIsInZhbHVlIjoiVm15YjZ2cFpQNUYyN3BJRXR5OW42NDdmbk9NbU45d1l1SXFTdjJ2Z25DbXZXM0tNaDg4S1BBZ0NOQ2FzYTFGek8wSmFyTEZGd1NQQWp2WVN2RzZXc1k2Qy9QV1l2eGthNUVRNDR4T2xWTkgwNlYyVUl6WFRyM2d4NmFLTG1nR3IiLCJtYWMiOiI3OGVmZDgyMWM0YWU1YWI5M2U0YTA3NGRmNWIxYTZiOGZkYmE2MWZiYjZlMmM0NTBlZDE5Yjk1NzI1ODU4ODU3IiwidGFnIjoiIn0%3D; expires=Thu, 10-Apr-2025 07:31:04 GMT; path=/; httponlylaravel_session=eyJpdiI6IjQycGIxTVRlQWlFdW8yb0dLK0JUOHc9PSIsInZhbHVlIjoiVm15YjZ2cFpQNUYyN3BJRXR5OW42NDdmbk9NbU45d1l1SXFTdjJ2Z25DbXZXM0tNaDg4S1BBZ0NOQ2FzYTFGek8w" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "o2hTxEJnhHPWas0Whr112CwWxZx3Spm7wLFlDDO7" "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-1%29" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]