Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues

Brought by: edX

Overview

The Data Structures & Algorithms course begins with a review of some important Java techniques and nuances in programming. The course requires some prior knowledge of Java and object-oriented programming, but not in data structures or algorithms. This course introduces you to time complexity, and threads this concept throughout all data structures and algorithms presented in the course. You will work with the principles of data storage in Arrays and LinkedList nodes. You will program the low-level data structures: Singly, Circular and Doubly LinkedLists; and explore edge cases and efficiencies. LinkedLists and Arrays are used to implement Abstract Data Types, ADTs: Stacks, Queues and Deques. Harnessing the power of recursion to move through these data structures is necessary. As the size changes in your data structures, it becomes important to examine amortized analysis of the operations.

The course design has several components and is built around modules. A module consists of a series of short (3-5 minute) instructional videos. In between the videos, there are textual frames with additional content information for clarification, as well as video errata dropdown boxes. All modules include an Exploratory Lab that incorporates a Visualization Tool specifically designed for this course. The lab includes discovery questions that lead you towards delving deeper into the efficiency of the data structures and examining the edge cases. This is followed by a set of comprehension questions on topics covered in the module that count for 10% of your grade. The modules end with Java coding assignments which are 60% of your grade. Lastly, you'll complete a course exam, which counts for the remaining 30% of your grade.

This is a great course that has been derived from the on-campus version of CS1332 at the Georgia Institute of Technology, and is backed with an impressive reputation.

Syllabus

Module 0: Introduction and Review

  • Review of important Java principles involved in object-oriented design
  • The Iterator & Iterable design patterns, and the Comparable & Comparator interfaces
  • Basic “Big-Oh” notation and asymptotic analysis

Module 1: Arrays, ArrayLists and Recursion

  • The array class, access vs. search of an array, static allocation and efficiency
  • The List abstract data type (ADT) which is backed by an array and uses dynamic resizing and amortized analysis
  • Recursive methods that are applied to the array and ArrayList data structures

Module 2: LinkedLists

  • The Singly LinkedList data structure, its implementation, methods and time complexity
  • The use of the iterable interface and recursive methods in LinkedLists
  • Creating variations of LinkedLists such as Doubly-Linked and Circularly-Linked

Module 3: Stacks, Queues, and Deques

  • The Stack ADT based on the last-in, first-out principle, and its implementations using Arrays and LinkedLists
  • The Queue ADT based on the first-in, first-out principle, and its implementations using Arrays and LinkedLists
  • Creating variations of Stacks and Queues such as Priority Queues and Deques

Taught by

Mary Hudachek-Buswell

Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues
Go to course

Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues

Brought by: edX

  • edX
  • Free
  • English
  • Certificate Available
  • Certain days
  • intermediate
  • English
8.1.2PHP Version383msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (234ms)
    • Application (148ms)
    • 1 x Booting (61.02%)
      233.84ms
      1 x Application (38.75%)
      148.49ms
      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 executed4.8ms
      • select * from `courses` where `slug_en` = 'data-structures-&-algorithms-i:-arraylists,-linkedlists,-stacks-and-queues' limit 1
        3.11ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. data-structures-&-algorithms-i:-arraylists,-linkedlists,-stacks-and-queues
        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-02-10 20:08:26' where `id` = 70
        280μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-10 20:08:26
        • 1. 70
        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)
        330μ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)
        230μ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 (22) and `institutions`.`deleted_at` is null
        270μ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
        240μ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` = 70 limit 1
        340μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 70
        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
        xGfpUIAG8ZTWOidDMPZz8syoKWhoSlVobQAiuVua
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/data-structures-&-algorithms-i:-arraylist...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/data-structures-&-algorithms-i:-arraylists,-linkedlists,-stacks-and-queues
        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 [ "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" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "18.221.190.79" ] "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" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "18.221.190.79" ] "cf-ray" => array:1 [ 0 => "90febb2d3c74f85a-ORD" ] "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_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_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "18.221.190.79" "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_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "18.221.190.79" "HTTP_CF_RAY" => "90febb2d3c74f85a-ORD" "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" => "51904" "REMOTE_ADDR" => "172.70.130.210" "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/data-structures-&-algorithms-i:-arraylists,-linkedlists,-stacks-and-queues" "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" => 1739218106.6934 "REQUEST_TIME" => 1739218106 ]
        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, 10 Feb 2025 20:08:27 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlhqaVRPU3lBZlFCNzUzZ1c2a0lSM1E9PSIsInZhbHVlIjoiTjcvVDZiOUQyK2sraVA4bjZZK2RNc0J3SnM4bWhkZTFzOUdmQmtyeEhiam5aaEptaHZpMTNjeCtYdm5sMDBNZVFYaFR6dCtnWm5NTm4vanVOTTdzK3NoVzFhNzUyVU9nekk5a1AwWllpcnNHbHRIOGpUNHExV0ZQaWtwbER3TEEiLCJtYWMiOiI3YWQ1ZWIzNDJkMmZhYmI2Mzk3ZjBkMGQyODc5N2FiMGE2ZWE1YjVkZTIyMmE0MDJiMWQ1MDE5ZGEzZjdlMzVmIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 22:08:27 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlhqaVRPU3lBZlFCNzUzZ1c2a0lSM1E9PSIsInZhbHVlIjoiTjcvVDZiOUQyK2sraVA4bjZZK2RNc0J3SnM4bWhkZTFzOUdmQmtyeEhiam5aaEptaHZpMTNjeCtYdm5sMDBNZVFYaFR6d" 1 => "laravel_session=eyJpdiI6InpBdWlqeHVlU0tVdmJwYzBGY3JUQXc9PSIsInZhbHVlIjoiVWZHM3lMeWZHblJsSHZub2ExODRLakhsdS9VSkR2MnRKbXoxQkhqVkErZmQyb1VNY2VvOUFqVkhReHZua0FJY0xuV1J0Y1I1RFhXajVKRWMvei9lbUFwT1RkWStOZkFJL2R4czE5Z0lPN3lXVGJkNk5mb3M4TlFZbUw0b3FVY3MiLCJtYWMiOiIwMjZlZWE3OGI1MDZmYTkyMTk5YzEyNjM3MjY3YjBhODc4ZDAyNzA3ZDE4NjZiNWU1MmZmYjRhMmU2MTMzZTUyIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 22:08:27 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InpBdWlqeHVlU0tVdmJwYzBGY3JUQXc9PSIsInZhbHVlIjoiVWZHM3lMeWZHblJsSHZub2ExODRLakhsdS9VSkR2MnRKbXoxQkhqVkErZmQyb1VNY2VvOUFqVkhReHZua0FJY0xu" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlhqaVRPU3lBZlFCNzUzZ1c2a0lSM1E9PSIsInZhbHVlIjoiTjcvVDZiOUQyK2sraVA4bjZZK2RNc0J3SnM4bWhkZTFzOUdmQmtyeEhiam5aaEptaHZpMTNjeCtYdm5sMDBNZVFYaFR6dCtnWm5NTm4vanVOTTdzK3NoVzFhNzUyVU9nekk5a1AwWllpcnNHbHRIOGpUNHExV0ZQaWtwbER3TEEiLCJtYWMiOiI3YWQ1ZWIzNDJkMmZhYmI2Mzk3ZjBkMGQyODc5N2FiMGE2ZWE1YjVkZTIyMmE0MDJiMWQ1MDE5ZGEzZjdlMzVmIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 22:08:27 GMT; path=/XSRF-TOKEN=eyJpdiI6IlhqaVRPU3lBZlFCNzUzZ1c2a0lSM1E9PSIsInZhbHVlIjoiTjcvVDZiOUQyK2sraVA4bjZZK2RNc0J3SnM4bWhkZTFzOUdmQmtyeEhiam5aaEptaHZpMTNjeCtYdm5sMDBNZVFYaFR6d" 1 => "laravel_session=eyJpdiI6InpBdWlqeHVlU0tVdmJwYzBGY3JUQXc9PSIsInZhbHVlIjoiVWZHM3lMeWZHblJsSHZub2ExODRLakhsdS9VSkR2MnRKbXoxQkhqVkErZmQyb1VNY2VvOUFqVkhReHZua0FJY0xuV1J0Y1I1RFhXajVKRWMvei9lbUFwT1RkWStOZkFJL2R4czE5Z0lPN3lXVGJkNk5mb3M4TlFZbUw0b3FVY3MiLCJtYWMiOiIwMjZlZWE3OGI1MDZmYTkyMTk5YzEyNjM3MjY3YjBhODc4ZDAyNzA3ZDE4NjZiNWU1MmZmYjRhMmU2MTMzZTUyIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 22:08:27 GMT; path=/; httponlylaravel_session=eyJpdiI6InpBdWlqeHVlU0tVdmJwYzBGY3JUQXc9PSIsInZhbHVlIjoiVWZHM3lMeWZHblJsSHZub2ExODRLakhsdS9VSkR2MnRKbXoxQkhqVkErZmQyb1VNY2VvOUFqVkhReHZua0FJY0xu" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "xGfpUIAG8ZTWOidDMPZz8syoKWhoSlVobQAiuVua" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/data-structures-&-algorithms-i:-arraylists,-linkedlists,-stacks-and-queues" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]