Algorithm Design and Analysis

بواسطة: edX

Overview

This course is running for one last time and will retire soon. Last day to enroll is November 23rd.

How do you optimally encode a text file? How do you find shortest paths in a map? How do you design a communication network? How do you route data in a network? What are the limits of efficient computation?

This course, part of the Computer Science Essentials for Software Development Professional Certificate program, is an introduction to design and analysis of algorithms, and answers along the way these and many other interesting computational questions.

You will learn about algorithms that operate on common data structures, for instance sorting and searching; advanced design and analysis techniques such as dynamic programming and greedy algorithms; advanced graph algorithms such as minimum spanning trees and shortest paths; NP-completeness theory; and approximation algorithms.

After completing this course you will be able to design efficient and correct algorithms using sophisticated data structures for complex computational tasks.

Syllabus

Week 1: Mathematical Preliminaries; Asymptotic analysis and recurrence relations; Sorting and Searching; Heaps and Binary Search Trees

Week 2: Algorithm Design Paradigms - Divide-and-Conquer algorithms, Dynamic Programming, Greedy Algorithms

Week 3: Graphs and graph traversals; minimum spanning trees; shortest paths

Week 4: Flows; NP-completeness; Approximation Algorithms

Taught by

Sampath Kannan

Algorithm Design and Analysis
الذهاب الي الدورة

Algorithm Design and Analysis

بواسطة: edX

  • edX
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • intermediate
  • English
8.1.2PHP Version222msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (138ms)
    • Application (82.75ms)
    • 1 x Booting (62.42%)
      138.32ms
      1 x Application (37.34%)
      82.75ms
      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 executed6.69ms
      • select * from `courses` where `slug_ar` = 'algorithm-design-and-analysis' limit 1
        5.42ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. algorithm-design-and-analysis
        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-16 17:08:26' where `id` = 1947
        390μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 17:08:26
        • 1. 1947
        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)
        210μ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 (23) 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 (1) 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` = 1938 limit 1
        200μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1938
        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
        owJfEqSbpY63CUrqV5mV3KrXr3Q9DUyPfkyVDjnM
        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/algori...
        _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/algorithm-design-and-analysis
        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.21.39.85" ] "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 => "931548dfbc22d6fa-CDG" ] "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.21.39.85" ] "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.21.39.85" "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" => "931548dfbc22d6fa-CDG" "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.21.39.85" "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" => "20294" "REMOTE_ADDR" => "172.71.130.98" "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/algorithm-design-and-analysis" "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" => 1744823306.2215 "REQUEST_TIME" => 1744823306 ]
        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 => "Wed, 16 Apr 2025 17:08:26 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkpBVlZXRkU0TzBjY2RMRDdCNmZaNXc9PSIsInZhbHVlIjoiT2RIUkRkWlNMT3RCZ2h2WUptQnU1V0FoMjRsWjhkNzVGdlg4b25KZEw0dS95UTVyVGg2clAvYkJUY3oxZFEzbUdBSFhiOCsrbXV4Qk1hNjVPUmFNbmFIQ3JlZ2ZtdW9oZjJBTVNCOTIxWTFHK0wxNWFTUjRKMHU4WnNXckI3aisiLCJtYWMiOiJmYWFlZWI3ZDg2Y2MxMTNkNzZlMWZhYjczMmEwOWE3ZWQzZDk3OGY0ZDIyMjk3OTViYmQ2NTg1NDVlNjdkMTY2IiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 19:08:26 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IkpBVlZXRkU0TzBjY2RMRDdCNmZaNXc9PSIsInZhbHVlIjoiT2RIUkRkWlNMT3RCZ2h2WUptQnU1V0FoMjRsWjhkNzVGdlg4b25KZEw0dS95UTVyVGg2clAvYkJUY3oxZFEzbUdBSFhiO" 1 => "laravel_session=eyJpdiI6IlpWNkRZUXI5Y21FYTJUNmYrSHdBV2c9PSIsInZhbHVlIjoia2F4QkJWY0hsUmQ0OWdWVUlmcGpIL3NZMUZibXlENDR0dnF2ZDFCZzBQbTE4RzlaNTVTUVhYeFQ3aGNlZS9vRFlWckJKZlFjUjlYVHlGbEFqMEFhcDZHaGVuTU1WRmZBakN2aFdDTFN6M1VCczhLd0pCZkFxZWpKeTBlZTByUWsiLCJtYWMiOiI0NDhlZTU0NzYwOGM1OTIyNTM0NjhkZmEyMGY1M2Y3MmQzZmNiMWIzNzViMjhkMzM5YzI5NzZjZDczY2FkMjFhIiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 19:08:26 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlpWNkRZUXI5Y21FYTJUNmYrSHdBV2c9PSIsInZhbHVlIjoia2F4QkJWY0hsUmQ0OWdWVUlmcGpIL3NZMUZibXlENDR0dnF2ZDFCZzBQbTE4RzlaNTVTUVhYeFQ3aGNlZS9vRFlW" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkpBVlZXRkU0TzBjY2RMRDdCNmZaNXc9PSIsInZhbHVlIjoiT2RIUkRkWlNMT3RCZ2h2WUptQnU1V0FoMjRsWjhkNzVGdlg4b25KZEw0dS95UTVyVGg2clAvYkJUY3oxZFEzbUdBSFhiOCsrbXV4Qk1hNjVPUmFNbmFIQ3JlZ2ZtdW9oZjJBTVNCOTIxWTFHK0wxNWFTUjRKMHU4WnNXckI3aisiLCJtYWMiOiJmYWFlZWI3ZDg2Y2MxMTNkNzZlMWZhYjczMmEwOWE3ZWQzZDk3OGY0ZDIyMjk3OTViYmQ2NTg1NDVlNjdkMTY2IiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 19:08:26 GMT; path=/XSRF-TOKEN=eyJpdiI6IkpBVlZXRkU0TzBjY2RMRDdCNmZaNXc9PSIsInZhbHVlIjoiT2RIUkRkWlNMT3RCZ2h2WUptQnU1V0FoMjRsWjhkNzVGdlg4b25KZEw0dS95UTVyVGg2clAvYkJUY3oxZFEzbUdBSFhiO" 1 => "laravel_session=eyJpdiI6IlpWNkRZUXI5Y21FYTJUNmYrSHdBV2c9PSIsInZhbHVlIjoia2F4QkJWY0hsUmQ0OWdWVUlmcGpIL3NZMUZibXlENDR0dnF2ZDFCZzBQbTE4RzlaNTVTUVhYeFQ3aGNlZS9vRFlWckJKZlFjUjlYVHlGbEFqMEFhcDZHaGVuTU1WRmZBakN2aFdDTFN6M1VCczhLd0pCZkFxZWpKeTBlZTByUWsiLCJtYWMiOiI0NDhlZTU0NzYwOGM1OTIyNTM0NjhkZmEyMGY1M2Y3MmQzZmNiMWIzNzViMjhkMzM5YzI5NzZjZDczY2FkMjFhIiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 19:08:26 GMT; path=/; httponlylaravel_session=eyJpdiI6IlpWNkRZUXI5Y21FYTJUNmYrSHdBV2c9PSIsInZhbHVlIjoia2F4QkJWY0hsUmQ0OWdWVUlmcGpIL3NZMUZibXlENDR0dnF2ZDFCZzBQbTE4RzlaNTVTUVhYeFQ3aGNlZS9vRFlW" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "owJfEqSbpY63CUrqV5mV3KrXr3Q9DUyPfkyVDjnM" "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/algorithm-design-and-analysis" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]