title
Dart Tutorial
description
Get Cheat Sheet Here : http://goo.gl/15S2n9
Best Dart Book : http://amzn.to/1NWdKq8
00:16 Windows Installation
04:56 Mac Installation
08:47 HTML + Dart
10:55 Import
11:47 Click Listener
12:34 Casting
13:07 querySelector
15:04 Variables
18:44 Math
21:14 If
23:18 Switch
25:12 While
25:59 Do While
26:29 For Loop
27:03 Continue
27:28 Break
29:34 Strings
34:33 Functions
35:52 Single Line Functions
37:00 Optional Parameters
38:17 Pass Function as Parameter
39:34 Recursive Functions
42:57 Lists
44:33 For Each
45:03 For In
46:18 Maps
50:07 Manipulating HTML
55:26 Change Listener
57:03 Classes
57:38 Getters / Setters
58:37 Constructors
58:57 Static Fields / Methods
1:03:34 Inheritance
1:05:08 Super
1:06:02 Abstract Class
1:09:09 Interface
1:11:17 Mixin
1:13:28 Operator Overloading
1:15:43 Exception Handling
In this video I cover Windows Installation, Mac Installation, Click Listeners, querySelector, Casting, Variables, Math, If, Switch, While, Do While, For Loop, Continue, Break, Strings, Functions, Single Line Functions, Passing Functions as Parameters, Recursive Functions, Optional Parameters, Lists, For Each, For In, Map, Manipulating HTML, Change Listener, Classes, Constructors, Static Fields / Methods, Inheritance, Abstract Classes, Interfaces, Mixins, Operator Overloading, Exception Handling and more.
detail
{'title': 'Dart Tutorial', 'heatmap': [{'end': 562.78, 'start': 508.821, 'weight': 0.762}, {'end': 2253.842, 'start': 2200.45, 'weight': 0.78}, {'end': 3566.148, 'start': 3418.752, 'weight': 0.893}, {'end': 3714.829, 'start': 3607.545, 'weight': 0.806}, {'end': 4318.473, 'start': 4264.308, 'weight': 0.751}, {'end': 4411.703, 'start': 4357.024, 'weight': 0.742}], 'summary': "The 'dart tutorial' video covers comprehensive installation of dart and sublime text 3, setting up dart environment on macintosh, adding click listener to button, javascript arithmetic, python and javascript basics, functions, variable declaration, recursion, working with lists and maps, manipulating html elements with dart and javascript, and dart's oop and html manipulation, providing step-by-step instructions and practical examples for each topic.", 'chapters': [{'end': 220.197, 'segs': [{'end': 84.127, 'src': 'embed', 'start': 60.209, 'weight': 1, 'content': [{'end': 68.515, 'text': "you might need to restart your command prompt if you have any problems and you're going to type in choco, install dart, dash, sdk dash version,", 'start': 60.209, 'duration': 8.306}, {'end': 69.136, 'text': 'and then whatever.', 'start': 68.515, 'duration': 0.621}, {'end': 71.898, 'text': 'the latest version of dart is 1.11.', 'start': 69.136, 'duration': 2.762}, {'end': 73.339, 'text': 'works perfectly fine for now,', 'start': 71.898, 'duration': 1.441}, {'end': 79.644, 'text': "and then you're going to hit enter and then that's going to run all of that script and it's going to say that you need to verify that.", 'start': 73.339, 'duration': 6.305}, {'end': 84.127, 'text': "so we're going to type in one and hit enter again, And there we go Dart has been installed.", 'start': 79.644, 'duration': 4.483}], 'summary': "Install dart sdk using 'choco install dart' command, latest version 1.11, verified installation.", 'duration': 23.918, 'max_score': 60.209, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U60209.jpg'}, {'end': 128.869, 'src': 'embed', 'start': 100.253, 'weight': 0, 'content': [{'end': 102.454, 'text': 'So type in that into your command prompt.', 'start': 100.253, 'duration': 2.201}, {'end': 105.035, 'text': "And once again, it's going to ask you to verify to run the script.", 'start': 102.654, 'duration': 2.381}, {'end': 108.896, 'text': "Type in 1, hit Enter, and that's going to install for you as well.", 'start': 105.095, 'duration': 3.801}, {'end': 113.719, 'text': "And then after that is all set up, you're all done with the command prompt and Chocolaty.", 'start': 109.056, 'duration': 4.663}, {'end': 116.901, 'text': "So let's go and make this work with Sublime Text 3.", 'start': 113.839, 'duration': 3.062}, {'end': 122.404, 'text': "Now what we're going to do is in your browser, go to packagecontrol.io forward slash installation.", 'start': 116.901, 'duration': 5.503}, {'end': 126.467, 'text': 'And this is going to make it very easy for us to install things in Sublime Text 3.', 'start': 122.705, 'duration': 3.762}, {'end': 128.869, 'text': "If you're using Sublime Text 2, you just click here.", 'start': 126.467, 'duration': 2.402}], 'summary': 'Install chocolaty via command prompt, and set up sublime text 3 with ease.', 'duration': 28.616, 'max_score': 100.253, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U100253.jpg'}, {'end': 220.197, 'src': 'embed', 'start': 191.354, 'weight': 2, 'content': [{'end': 195.36, 'text': 'if you did the installation that i did, this more than likely is going to work for you.', 'start': 191.354, 'duration': 4.006}, {'end': 197.744, 'text': 'just make sure you put two backslashes.', 'start': 195.36, 'duration': 2.384}, {'end': 198.465, 'text': 'you have to do that.', 'start': 197.744, 'duration': 0.721}, {'end': 201.467, 'text': "it's a little bit weird And then, after you do that, you're going to click on Save.", 'start': 198.465, 'duration': 3.002}, {'end': 205.95, 'text': "Now we're going to go to Preferences, Package Settings, Dart, and then Settings, User.", 'start': 201.707, 'duration': 4.243}, {'end': 209.952, 'text': "And then once again, you're going to put the location exactly as I have it right here.", 'start': 206.11, 'duration': 3.842}, {'end': 215.755, 'text': "Once again, in the description, there's a link to all this stuff typed out, so you'll be able to copy and paste if you'd like to.", 'start': 210.152, 'duration': 5.603}, {'end': 220.197, 'text': "But you're going to put it in exactly the same location right there and click on Save once again.", 'start': 215.775, 'duration': 4.422}], 'summary': 'Detailed instructions for installation with specific settings and steps.', 'duration': 28.843, 'max_score': 191.354, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U191354.jpg'}], 'start': 0.109, 'title': 'Dart tutorial and installation', 'summary': 'Covers a comprehensive dart tutorial equivalent to a 2 to 300 page book, including the installation of dart and sublime text 3 on windows and macintosh, with timestamps for easy navigation, alongside steps to run commands and set up sublime text 3 using chocolaty.', 'chapters': [{'end': 31.561, 'start': 0.109, 'title': 'Dart video tutorial and installation guide', 'summary': 'Covers a comprehensive dart tutorial equivalent to a 2 to 300 page book, including the installation of dart and sublime text 3 on windows and macintosh, with timestamps for easy navigation.', 'duration': 31.452, 'highlights': ['The tutorial covers everything equivalent to a 2 to 300 page book on Dart, with a focus on installation for Windows and Macintosh.', 'Provides guidance on installing Dart and Sublime Text 3 on Windows and Macintosh, offering timestamps for easy navigation within the tutorial.']}, {'end': 220.197, 'start': 31.561, 'title': 'Installing dart and dartium with chocolaty', 'summary': 'Explains how to install dart and dartium using chocolaty, including steps to run commands and set up sublime text 3, with a focus on the installation process and configuration steps.', 'duration': 188.636, 'highlights': ['Using Chocolaty to install Dart and Dartium, including running commands and verifying the installation', 'Setting up Sublime Text 3 for Dart development by installing Package Control and configuring Dart SDK path', 'Providing detailed steps for running commands, verifying installations, and configuring Sublime Text 3 for Dart development']}], 'duration': 220.088, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U109.jpg', 'highlights': ['Covers a comprehensive Dart tutorial equivalent to a 2 to 300 page book', 'Provides guidance on installing Dart and Sublime Text 3 on Windows and Macintosh, offering timestamps for easy navigation within the tutorial', 'Using Chocolaty to install Dart and Dartium, including running commands and verifying the installation', 'Setting up Sublime Text 3 for Dart development by installing Package Control and configuring Dart SDK path', 'Providing detailed steps for running commands, verifying installations, and configuring Sublime Text 3 for Dart development']}, {'end': 706.161, 'segs': [{'end': 301.265, 'src': 'embed', 'start': 272.899, 'weight': 1, 'content': [{'end': 276.262, 'text': "You're going to create a new file, make sure the extension ends with Dart.", 'start': 272.899, 'duration': 3.363}, {'end': 283.227, 'text': "like that and we're going to type in just a standard little dart application here just to verify that everything is working for us,", 'start': 276.582, 'duration': 6.645}, {'end': 293.273, 'text': "and whenever we run that, how we're going to run it is just by going and clicking on f7 or shift f7 if that doesn't work for you, and, as you can see,", 'start': 283.227, 'duration': 10.046}, {'end': 294.734, 'text': "everything's going to run right here.", 'start': 293.273, 'duration': 1.461}, {'end': 298.517, 'text': "so now i'm going to show you how to install the exact same things on a macintosh.", 'start': 294.734, 'duration': 3.783}, {'end': 301.265, 'text': 'Alright, to install everything on Macintosh,', 'start': 299.324, 'duration': 1.941}], 'summary': 'Creating a dart file, running a standard dart application, and installing on a macintosh.', 'duration': 28.366, 'max_score': 272.899, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U272899.jpg'}, {'end': 348.585, 'src': 'embed', 'start': 316.27, 'weight': 0, 'content': [{'end': 320.792, 'text': "you're just going to paste all this in here and you're going to hit enter and Homebrew will be installed for you.", 'start': 316.27, 'duration': 4.522}, {'end': 323.853, 'text': "I already have it installed, so I'm not going to install it once again.", 'start': 320.892, 'duration': 2.961}, {'end': 334.032, 'text': "And then specifically to install Dart, we're then going to go brew, tap, And you're going to type in dart-lang forward slash dart like that.", 'start': 324.153, 'duration': 9.879}, {'end': 334.673, 'text': 'Hit enter.', 'start': 334.253, 'duration': 0.42}, {'end': 339.577, 'text': "And then you're going to go brew install dart and hit enter once again.", 'start': 335.073, 'duration': 4.504}, {'end': 348.585, 'text': "And then you're going to type in brew install dart dash dash with content shell dash dash with dartium.", 'start': 339.597, 'duration': 8.988}], 'summary': 'Install homebrew and dart using brew commands.', 'duration': 32.315, 'max_score': 316.27, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U316270.jpg'}, {'end': 562.78, 'src': 'heatmap', 'start': 508.821, 'weight': 0.762, 'content': [{'end': 516.527, 'text': "and then what i'm going to do is i'm going to hold down the function key as well as the shift key and click on f7, and whenever i do,", 'start': 508.821, 'duration': 7.706}, {'end': 518.587, 'text': "you're going to see hello world prints down there.", 'start': 516.527, 'duration': 2.06}, {'end': 519.409, 'text': 'so there you go, guys.', 'start': 518.587, 'duration': 0.822}, {'end': 524.472, 'text': 'that is how to set up dart on windows as well as macintosh, using sublime text 3..', 'start': 519.409, 'duration': 5.063}, {'end': 528.579, 'text': "now let's get over and write some code Okay, so let's start writing some code.", 'start': 524.472, 'duration': 4.107}, {'end': 531.14, 'text': 'What I have here is an HTML file.', 'start': 528.619, 'duration': 2.521}, {'end': 538.284, 'text': 'I just called it darttut.html, and I went and created everything you see over here ahead of time just to save some time.', 'start': 531.181, 'duration': 7.103}, {'end': 544.888, 'text': "And I also went and put the styling inside of here so that we'll have everything in just one file, so it saves some time as well.", 'start': 538.485, 'duration': 6.403}, {'end': 553.573, 'text': "What we're basically going to be doing is targeting these IDs, so this sum for this guy right here, and then this will be num1,, this will be num2,", 'start': 545.128, 'duration': 8.445}, {'end': 555.674, 'text': 'and this will have the ID of button.', 'start': 553.573, 'duration': 2.101}, {'end': 562.78, 'text': "And then what we're going to, of course, need to do is bring in the script for our Dart file, or our JavaScript,", 'start': 556.034, 'duration': 6.746}], 'summary': 'Setting up dart on windows and mac using sublime text 3, writing code targeting specific ids in an html file.', 'duration': 53.959, 'max_score': 508.821, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U508821.jpg'}], 'start': 220.217, 'title': 'Setting up dart environment on macintosh', 'summary': 'Covers setting up a dart project and dart on macintosh, including creating pubspec.yaml, configuring sublime text 3, and converting dart code into javascript. it provides step-by-step instructions for the process, ensuring a comprehensive understanding of the setup.', 'chapters': [{'end': 294.734, 'start': 220.217, 'title': 'Setting up dart environment', 'summary': 'Explains the process of setting up a dart project, including creating a pubspec.yaml file, saving the project in sublime text 3, setting the build system to dart-pubspec, and verifying the setup by running a standard dart application.', 'duration': 74.517, 'highlights': ['Creating a pubspec.yaml file with specific content and saving the project in Sublime Text 3.', 'Setting the build system to Dart-PubSpec by clicking on Tools, going to Build System, and ensuring the checkmark is present.', 'Verifying the setup by creating and running a standard Dart application in the same folder as pubspec.yaml.']}, {'end': 706.161, 'start': 294.734, 'title': 'Setting up dart on macintosh', 'summary': 'Details the process of setting up dart on macintosh using homebrew, installing dart, setting up package control for sublime text 3, configuring pubspec.yaml and dart sdk path, creating a basic dart application, and converting dart code into javascript.', 'duration': 411.427, 'highlights': ['The chapter details the process of setting up Dart on Macintosh using Homebrew The process of setting up Dart on Macintosh using Homebrew is explained, which includes installing Homebrew and using it to install Dart.', 'Installing Dart and setting up package control for Sublime Text 3 is demonstrated The process of installing Dart using Homebrew and setting up package control for Sublime Text 3 is demonstrated, which involves installing Dart and configuring package control for Sublime Text 3 to work with Dart.', 'Configuring pubspec.yaml and Dart SDK path is explained The process of configuring pubspec.yaml and Dart SDK path is explained, which involves specifying project details in pubspec.yaml and setting the Dart SDK path in Sublime Text 3 settings.', "Creating a basic Dart application and converting Dart code into JavaScript is demonstrated The process of creating a basic Dart application and converting Dart code into JavaScript is demonstrated, which includes creating a basic hello world application and converting Dart code into JavaScript using 'dart to js' command."]}], 'duration': 485.944, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U220217.jpg', 'highlights': ['Setting the build system to Dart-PubSpec in Sublime Text 3', 'Creating a pubspec.yaml file with specific content in Sublime Text 3', 'Verifying the setup by creating and running a standard Dart application', 'Installing Dart using Homebrew and setting up package control for Sublime Text 3', 'Configuring pubspec.yaml and Dart SDK path in Sublime Text 3', 'Creating a basic Dart application and converting Dart code into JavaScript']}, {'end': 1248.849, 'segs': [{'end': 739.11, 'src': 'embed', 'start': 706.401, 'weight': 2, 'content': [{'end': 711.425, 'text': "Now what we're going to do is add a click listener over here to the button that whenever this button is clicked on,", 'start': 706.401, 'duration': 5.024}, {'end': 713.267, 'text': "it's going to execute an application.", 'start': 711.425, 'duration': 1.842}, {'end': 716.61, 'text': 'So, if you want to add a quick listener to this button over here,', 'start': 713.367, 'duration': 3.243}, {'end': 722.615, 'text': "you're going to type in query selector and then you're going to type in exactly what you're trying to target.", 'start': 716.61, 'duration': 6.005}, {'end': 729.161, 'text': "You're going to put a hash symbol in here, since this is an ID, and you're going to say on, click and then listen,", 'start': 722.715, 'duration': 6.446}, {'end': 734.206, 'text': "and then here you're going to type in the function you want to execute when that button is clicked on.", 'start': 729.161, 'duration': 5.045}, {'end': 739.11, 'text': 'Common error is to forget this little hash symbol or number symbol here so make sure you remember to put that in.', 'start': 734.366, 'duration': 4.744}], 'summary': 'Add a click listener to the button to execute an application using query selector and on click method.', 'duration': 32.709, 'max_score': 706.401, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U706401.jpg'}, {'end': 877.335, 'src': 'embed', 'start': 843.202, 'weight': 0, 'content': [{'end': 847.783, 'text': 'Because if you want to put something into your HTML document, it needs to be a string.', 'start': 843.202, 'duration': 4.581}, {'end': 849.324, 'text': "So that's how easy that is.", 'start': 847.924, 'duration': 1.4}, {'end': 856.289, 'text': "Now we just need to go in there and update calculation with the actual calculation that's going to be performed.", 'start': 849.784, 'duration': 6.505}, {'end': 862.994, 'text': "We're going to use query selector again and we're going to say sum so that we can get access to that, and then text,", 'start': 856.309, 'duration': 6.685}, {'end': 865.676, 'text': 'because we want to change the text, and then inside of this,', 'start': 862.994, 'duration': 2.682}, {'end': 877.335, 'text': "you're going to type in dollar sign and then your variable name plus and this is how we were able to format strings and num2 again is equal to and then type in sum again.", 'start': 865.676, 'duration': 11.659}], 'summary': 'Html document requires string input. updating calculation using query selector. formatting strings and num2.', 'duration': 34.133, 'max_score': 843.202, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U843202.jpg'}, {'end': 1140.516, 'src': 'embed', 'start': 1111.217, 'weight': 1, 'content': [{'end': 1115.72, 'text': "and And you're going to notice that you're going to separate your keys and your values with a colon.", 'start': 1111.217, 'duration': 4.503}, {'end': 1120.723, 'text': 'And then separate the different map items inside of here with commas.', 'start': 1115.96, 'duration': 4.763}, {'end': 1123.765, 'text': "So that's how we create all of those different data types.", 'start': 1121.023, 'duration': 2.742}, {'end': 1128.148, 'text': "Now let's jump over and take a look at all the different math functions that are available to us.", 'start': 1124.085, 'duration': 4.063}, {'end': 1130.79, 'text': "Okay, so I'm going to call this math test.", 'start': 1128.448, 'duration': 2.342}, {'end': 1133.492, 'text': "And we're going to do basically the same exact thing here again.", 'start': 1130.99, 'duration': 2.502}, {'end': 1136.093, 'text': "One thing that's good to know about are random numbers.", 'start': 1133.832, 'duration': 2.261}, {'end': 1140.516, 'text': 'And if we want to create a random number, we can just go random like this.', 'start': 1136.434, 'duration': 4.082}], 'summary': 'The transcript covers creating data types and using math functions in a programming context.', 'duration': 29.299, 'max_score': 1111.217, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U1111217.jpg'}], 'start': 706.401, 'title': 'Adding click listener to button and javascript arithmetic', 'summary': 'Explains adding click listener to a button using query selector and hash symbol for id, and performing arithmetic operations in javascript, including converting strings to integers, updating html elements, and manipulation of variable types and math functions.', 'chapters': [{'end': 753.845, 'start': 706.401, 'title': 'Adding click listener to button', 'summary': 'Explains how to add a click listener to a button using query selector and hash symbol for id, ensuring to include the hash symbol to avoid common errors, and creating a function to be executed when the button is clicked, passing a mouse event as a parameter.', 'duration': 47.444, 'highlights': ['The chapter explains how to add a click listener to a button using query selector and hash symbol for ID, ensuring to include the hash symbol to avoid common errors, and creating a function to be executed when the button is clicked, passing a mouse event as a parameter.']}, {'end': 1248.849, 'start': 753.845, 'title': 'Javascript arithmetic and variable types', 'summary': 'Explains the process of performing arithmetic operations in javascript, including converting strings to integers, updating html elements, and demonstrates the creation and manipulation of different variable types and math functions.', 'duration': 495.004, 'highlights': ["Demonstrates converting strings to integers and updating HTML elements Explains the process of converting string inputs to integers using 'int parse', and updating HTML elements with the calculated sum.", 'Creation and manipulation of different variable types and data types in Dart Explains the creation and manipulation of different variable types (e.g., integers, floats, booleans, strings, lists, and maps) in Dart, and the flexibility to define or not define the data type.', 'Explanation of various math functions available in JavaScript Provides an overview of various math functions in JavaScript, including addition, subtraction, multiplication, division, modulus, log functions, max functions, min functions, power functions, and rounding.', 'Demonstrates the usage of random number generation in JavaScript Demonstrates the usage of random number generation, including generating random integers and explaining the process of creating random numbers within a specified range.']}], 'duration': 542.448, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U706401.jpg', 'highlights': ["Demonstrates converting strings to integers and updating HTML elements Explains the process of converting string inputs to integers using 'int parse', and updating HTML elements with the calculated sum.", 'Demonstrates the usage of random number generation in JavaScript Demonstrates the usage of random number generation, including generating random integers and explaining the process of creating random numbers within a specified range.', 'Creation and manipulation of different variable types and data types in Dart Explains the creation and manipulation of different variable types (e.g., integers, floats, booleans, strings, lists, and maps) in Dart, and the flexibility to define or not define the data type.', 'Explanation of various math functions available in JavaScript Provides an overview of various math functions in JavaScript, including addition, subtraction, multiplication, division, modulus, log functions, max functions, min functions, power functions, and rounding.', 'The chapter explains how to add a click listener to a button using query selector and hash symbol for ID, ensuring to include the hash symbol to avoid common errors, and creating a function to be executed when the button is clicked, passing a mouse event as a parameter.']}, {'end': 2073.398, 'segs': [{'end': 1866.643, 'src': 'embed', 'start': 1839.743, 'weight': 0, 'content': [{'end': 1843.565, 'text': 'so there we go and then close that off and then put a new line.', 'start': 1839.743, 'duration': 3.822}, {'end': 1847.408, 'text': "so that's how we can compare strings not with equal sign, but compare to.", 'start': 1843.565, 'duration': 3.843}, {'end': 1851.911, 'text': 'we can also come in and check if a string contains a certain word.', 'start': 1847.408, 'duration': 4.503}, {'end': 1858.516, 'text': "so i just go and we're going to output this and we could say word long in string.", 'start': 1851.911, 'duration': 6.605}, {'end': 1866.643, 'text': "so long is going to be what we're looking for and we can just go random string and we'll just say it contains and we're going to say what we're looking for.", 'start': 1858.516, 'duration': 8.127}], 'summary': "Comparing strings using 'compare to' and checking for word presence in a string.", 'duration': 26.9, 'max_score': 1839.743, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U1839743.jpg'}, {'end': 1992.01, 'src': 'embed', 'start': 1958.556, 'weight': 1, 'content': [{'end': 1961.057, 'text': "You can see there's a whole bunch of different ways we can work with strings.", 'start': 1958.556, 'duration': 2.501}, {'end': 1971.261, 'text': "We could also come in and change the string to uppercase, $random string, and that's to uppercase, which is a simple function.", 'start': 1961.457, 'duration': 9.804}, {'end': 1975.322, 'text': "And likewise, we'd also be able to convert all of these into lowercase.", 'start': 1971.641, 'duration': 3.681}, {'end': 1980.164, 'text': 'We do this because it might make it easier for us to be able to come in and search for words.', 'start': 1975.602, 'duration': 4.562}, {'end': 1982.505, 'text': 'if we know everything is uppercase or lowercase.', 'start': 1980.544, 'duration': 1.961}, {'end': 1985.027, 'text': 'And then this, of course, would just be lowercase.', 'start': 1982.765, 'duration': 2.262}, {'end': 1992.01, 'text': "We're also going to be able to come in and trim our strings, which means just get rid of any leading or trailing white space.", 'start': 1985.367, 'duration': 6.643}], 'summary': 'Demonstrates various string manipulation functions including uppercase, lowercase, and trimming for improved search functionality.', 'duration': 33.454, 'max_score': 1958.556, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U1958556.jpg'}, {'end': 2064.871, 'src': 'embed', 'start': 2036.371, 'weight': 2, 'content': [{'end': 2037.992, 'text': "And this is where it's getting the i from.", 'start': 2036.371, 'duration': 1.621}, {'end': 2039.093, 'text': 'Strings are equal.', 'start': 2038.292, 'duration': 0.801}, {'end': 2039.813, 'text': "No, they're not.", 'start': 2039.313, 'duration': 0.5}, {'end': 2041.814, 'text': 'Came back with a value of negative 1.', 'start': 2039.953, 'duration': 1.861}, {'end': 2045.116, 'text': 'Word long in string, is it in there? Yes, it is.', 'start': 2041.814, 'duration': 3.302}, {'end': 2046.157, 'text': 'There that is.', 'start': 2045.457, 'duration': 0.7}, {'end': 2050.36, 'text': "And you can see right here exactly where we're using contains to see if long exists.", 'start': 2046.357, 'duration': 4.003}, {'end': 2052.902, 'text': "Index of long, that's how we're doing this one.", 'start': 2050.78, 'duration': 2.122}, {'end': 2054.543, 'text': 'It starts at the seventh index.', 'start': 2053.062, 'duration': 1.481}, {'end': 2059.447, 'text': 'See here where we replaced all of the spaces with a comma and a space, right like that.', 'start': 2054.983, 'duration': 4.464}, {'end': 2060.748, 'text': 'String length is 18.', 'start': 2059.567, 'duration': 1.181}, {'end': 2063.25, 'text': 'You can see here it grabbed the first four letters.', 'start': 2060.748, 'duration': 2.502}, {'end': 2064.871, 'text': 'Here it converted everything to uppercase.', 'start': 2063.31, 'duration': 1.561}], 'summary': 'String operations: checking, replacing, converting. length: 18. finding index: 7', 'duration': 28.5, 'max_score': 2036.371, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2036371.jpg'}], 'start': 1248.849, 'title': 'Python and javascript basics', 'summary': 'Covers shorthand notations for increasing and decreasing values in python, along with a variety of relational and logical operators used in conditionals. it also covers if statements, switch statements, loops, and various string manipulations in javascript, along with practical examples and outputs.', 'chapters': [{'end': 1293.909, 'start': 1248.849, 'title': 'Python math functions and conditionals', 'summary': 'Covers shorthand notations for increasing and decreasing values in python, along with a variety of relational and logical operators used in conditionals.', 'duration': 45.06, 'highlights': ["The chapter explains shorthand notations for increasing and decreasing values in Python, such as using 'plus, equal to' for addition, 'minus, equal to' for subtraction, and so on.", 'It also covers a range of relational operators including equals, not equals, greater than, less than, greater than or equal to, and less than or equal to, as well as logical operators like and, or, and not.']}, {'end': 2073.398, 'start': 1294.269, 'title': 'Javascript basics: conditionals, loops, and strings', 'summary': 'Covers if statements with relational and logical operators, switch statements, while loops, do while loops, for loops, and various string manipulations including concatenation, comparison, finding and replacing, splitting, retrieving length, substring extraction, case conversions, trimming, and checking for emptiness. it also demonstrates practical examples and outputs.', 'duration': 779.129, 'highlights': ['The chapter covers if statements with relational and logical operators, switch statements, while loops, do while loops, and for loops. Covers key concepts of conditionals and loops in JavaScript, providing a foundation for control flow and iteration. Demonstrates the practical use of these structures.', 'Demonstrates various string manipulations including concatenation, comparison, finding and replacing, splitting, retrieving length, substring extraction, case conversions, trimming, and checking for emptiness. Provides an in-depth overview of string manipulation in JavaScript, showcasing a range of operations and their practical applications.', 'Practical examples and outputs are demonstrated for each concept, providing a comprehensive understanding of their usage. Illustrates the practical application and output of the covered concepts, enhancing the understanding of their usage in real-world scenarios.']}], 'duration': 824.549, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U1248849.jpg', 'highlights': ['The chapter covers if statements, switch statements, loops, and string manipulations in JavaScript, providing a foundation for control flow and iteration.', 'Practical examples and outputs are demonstrated for each concept, enhancing the understanding of their usage in real-world scenarios.', "Covers shorthand notations for increasing and decreasing values in Python, such as using 'plus, equal to' for addition, 'minus, equal to' for subtraction, and so on.", 'Demonstrates various string manipulations including concatenation, comparison, finding and replacing, splitting, retrieving length, substring extraction, case conversions, trimming, and checking for emptiness.']}, {'end': 2475.852, 'segs': [{'end': 2102.373, 'src': 'embed', 'start': 2073.578, 'weight': 2, 'content': [{'end': 2075.059, 'text': "Now let's take a look at functions.", 'start': 2073.578, 'duration': 1.481}, {'end': 2077.571, 'text': "And now let's create a whole bunch of functions.", 'start': 2075.949, 'duration': 1.622}, {'end': 2083.136, 'text': 'So you can call a function by name and just pass in the different parameters that you want it to use.', 'start': 2077.931, 'duration': 5.205}, {'end': 2091.422, 'text': "And how we're going to do that here, what we're going to do is perform a multiplication of 3 times 34, just because that's what I just thought of.", 'start': 2083.617, 'duration': 7.805}, {'end': 2096.668, 'text': "And let's call our function we're going to create here in a second, getMult, and pass in 3 and 34.", 'start': 2091.784, 'duration': 4.884}, {'end': 2099.991, 'text': "It's giving me an error because it's saying, you didn't create that function yet.", 'start': 2096.668, 'duration': 3.323}, {'end': 2100.591, 'text': 'No problem.', 'start': 2100.071, 'duration': 0.52}, {'end': 2101.592, 'text': "We'll create it in a moment.", 'start': 2100.611, 'duration': 0.981}, {'end': 2102.373, 'text': 'And there we go.', 'start': 2101.812, 'duration': 0.561}], 'summary': 'Introduction to creating and calling functions for performing a multiplication operation.', 'duration': 28.795, 'max_score': 2073.578, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2073578.jpg'}, {'end': 2253.842, 'src': 'heatmap', 'start': 2200.45, 'weight': 0.78, 'content': [{'end': 2203.871, 'text': "let's say we want to add a list of items from 1 to 10.", 'start': 2200.45, 'duration': 3.421}, {'end': 2212.295, 'text': "let's come down here and create add list and this guy is actually going to return a string that's going to be stored directly inside of output.", 'start': 2203.871, 'duration': 8.424}, {'end': 2216.177, 'text': "so we're going to put string there And it's going to add a list of items.", 'start': 2212.295, 'duration': 3.882}, {'end': 2219.679, 'text': "So we're going to say what's the starting value we want to start with.", 'start': 2216.337, 'duration': 3.342}, {'end': 2224.943, 'text': 'And if you want to make a parameter optional, you would surround it with brackets like this.', 'start': 2219.979, 'duration': 4.964}, {'end': 2228.525, 'text': "You're still going to define the data type for it.", 'start': 2225.523, 'duration': 3.002}, {'end': 2232.287, 'text': "If you wanted to give it a default value, you'd put equal one inside of there.", 'start': 2228.825, 'duration': 3.462}, {'end': 2236.41, 'text': "Now if it's a default value, you do not need to put a value inside of there.", 'start': 2232.508, 'duration': 3.902}, {'end': 2239.853, 'text': 'I just did it that way just to show you two different things instead of one.', 'start': 2236.45, 'duration': 3.403}, {'end': 2243.395, 'text': "Now let's go and create a string and let's call this string list.", 'start': 2240.113, 'duration': 3.282}, {'end': 2246.437, 'text': 'is equal to, and just put nothing inside of it.', 'start': 2244.215, 'duration': 2.222}, {'end': 2253.842, 'text': "to start off with now, how I'm going to calculate this or create it is I'm going to cycle through values using our for loop,", 'start': 2246.437, 'duration': 7.405}], 'summary': 'Creating a function to add a list of items with optional parameters and default value', 'duration': 53.392, 'max_score': 2200.45, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2200450.jpg'}, {'end': 2393.902, 'src': 'embed', 'start': 2319.751, 'weight': 0, 'content': [{'end': 2326.633, 'text': "and then here we're going to create a function below that's going to be called multiply and it's going to be passed in some number,", 'start': 2319.751, 'duration': 6.882}, {'end': 2331.615, 'text': "doesn't matter what it is, and it's also going to be passed in a function that's going to be passed inside of there.", 'start': 2326.633, 'duration': 4.982}, {'end': 2335.527, 'text': 'And of course, you can do this with any function, not just single line functions.', 'start': 2331.926, 'duration': 3.601}, {'end': 2336.807, 'text': 'Just wanted to point that out.', 'start': 2335.707, 'duration': 1.1}, {'end': 2342.028, 'text': "And let's do pretty much the same exact thing for the other function, just to show how they both work.", 'start': 2336.987, 'duration': 5.041}, {'end': 2344.769, 'text': "This, and then we'll just change this to 3.", 'start': 2342.228, 'duration': 2.541}, {'end': 2347.729, 'text': "And then we'll have times 3 passed inside there that time.", 'start': 2344.769, 'duration': 2.96}, {'end': 2351.01, 'text': "And then we'll come down here and create our multiply function.", 'start': 2347.969, 'duration': 3.041}, {'end': 2352.57, 'text': "It's going to return an integer.", 'start': 2351.25, 'duration': 1.32}, {'end': 2354.131, 'text': "And there's multiply.", 'start': 2353.15, 'duration': 0.981}, {'end': 2356.731, 'text': "It's going to get an integer passed inside of it.", 'start': 2354.251, 'duration': 2.48}, {'end': 2358.471, 'text': 'And here you can put anything you want.', 'start': 2356.971, 'duration': 1.5}, {'end': 2359.792, 'text': "You don't have to define what it is.", 'start': 2358.511, 'duration': 1.281}, {'end': 2361.072, 'text': "I'm typing in func.", 'start': 2359.872, 'duration': 1.2}, {'end': 2364.295, 'text': 'It can be anything, whatever the variable name is for that.', 'start': 2361.392, 'duration': 2.903}, {'end': 2369.401, 'text': 'And then to multiply or use that function with the supplied value, just do it that way.', 'start': 2364.576, 'duration': 4.825}, {'end': 2371.543, 'text': "So it's very streamlined, very easy to use.", 'start': 2369.561, 'duration': 1.982}, {'end': 2373.706, 'text': "And we'll execute all these here in a second.", 'start': 2371.884, 'duration': 1.822}, {'end': 2380.093, 'text': "Final thing I wanted to show you is how recursive functions work, which is just a function that's going to call itself.", 'start': 2373.866, 'duration': 6.227}, {'end': 2381.875, 'text': 'Sounds way more complicated than it is.', 'start': 2380.313, 'duration': 1.562}, {'end': 2385.297, 'text': 'And hopefully this one example is going to show you exactly how it works.', 'start': 2382.375, 'duration': 2.922}, {'end': 2388.298, 'text': "So let's say we wanted to get the factorial of 4.", 'start': 2385.357, 'duration': 2.941}, {'end': 2391.42, 'text': "We're going to create another function called factorial.", 'start': 2388.298, 'duration': 3.122}, {'end': 2393.902, 'text': "And we're going to pass the value of 4 inside of it.", 'start': 2391.74, 'duration': 2.162}], 'summary': 'Creating functions to multiply and showcase recursive functions', 'duration': 74.151, 'max_score': 2319.751, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2319751.jpg'}, {'end': 2486.396, 'src': 'embed', 'start': 2457.524, 'weight': 1, 'content': [{'end': 2461.045, 'text': 'Now all our errors are gone and we can save it and reload it.', 'start': 2457.524, 'duration': 3.521}, {'end': 2464.667, 'text': 'And you can see right there all the different calculations that were being performed.', 'start': 2461.245, 'duration': 3.422}, {'end': 2470.81, 'text': "Let's go and grab this guy and copy that out of there and paste it after this so that we get all our results.", 'start': 2464.787, 'duration': 6.023}, {'end': 2473.611, 'text': 'Again, change it in JavaScript and now reload it.', 'start': 2471.01, 'duration': 2.601}, {'end': 2475.852, 'text': 'And there you can see everything that we just did.', 'start': 2473.891, 'duration': 1.961}, {'end': 2481.29, 'text': 'And you can see here, 3 times 4, how we used the get multiplication and how that was output on our screen.', 'start': 2476.184, 'duration': 5.106}, {'end': 2486.396, 'text': "We're going to see down here where we used times 2, 56 times 2, and how that was output.", 'start': 2481.31, 'duration': 5.086}], 'summary': 'The transcript demonstrates successful calculations and operations in javascript, including 3x4 and 56x2.', 'duration': 28.872, 'max_score': 2457.524, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2457524.jpg'}], 'start': 2073.578, 'title': 'Functions and variable declaration, javascript, and recursion', 'summary': 'Covers the concepts of functions, variable declaration, and recursion in programming, including examples of creating multiplication functions, defining local variables, using optional parameters in javascript, and illustrating recursive functions with different input values and factorial calculation.', 'chapters': [{'end': 2126.556, 'start': 2073.578, 'title': 'Functions and variable declaration', 'summary': 'Explains the concept of functions and variable declaration in programming, using an example of creating a multiplication function to multiply 3 by 34, and defining local variables within the function.', 'duration': 52.978, 'highlights': ['The chapter explains how to create and call functions in programming, using an example of creating a multiplication function to multiply 3 by 34.', 'It demonstrates the process of defining a function, specifying its return type, and declaring the data types of parameters, highlighting the use of local variables within the function.']}, {'end': 2300.184, 'start': 2126.636, 'title': 'Functions and variables in javascript', 'summary': 'Discusses the usage of variables, single-line functions, and optional parameters in javascript, including examples of creating and calling functions and utilizing default values. it also demonstrates the concatenation of strings and the return of values from functions.', 'duration': 173.548, 'highlights': ['Demonstrates the usage of variables, single-line functions, and optional parameters in JavaScript The transcript provides examples of creating a variable within a function, defining a single-line function, and using optional parameters with default values.', 'Illustrates the creation and calling of functions It shows how to create and call functions, including an example of a function that doubles a given value and another that adds a list of items from 1 to 10.', 'Shows the concatenation of strings and the return of values from functions The transcript demonstrates the concatenation of strings using a for loop and the return of values from functions, including the usage of default values and optional parameters.']}, {'end': 2475.852, 'start': 2300.424, 'title': 'Functions and recursion in programming', 'summary': 'Explains the concept of single-line functions, demonstrates the use of a multiply function with different input values, and illustrates the concept of recursive functions using an example to calculate the factorial of 4.', 'duration': 175.428, 'highlights': ['The chapter covers the concept of single-line functions and demonstrates their usage in multiplying a value by 3 and 2. It explains the creation and usage of single-line functions to perform calculations, such as multiplying a value by 3 and 2.', 'The chapter illustrates the use of a multiply function with different input values, showcasing its flexibility and ease of use. It demonstrates the creation and usage of a multiply function with different input values, highlighting its flexibility and ease of use.', 'The chapter provides a clear example of a recursive function to calculate the factorial of 4, emphasizing the concept and necessity of a base case in recursive functions. It provides a clear example of a recursive function to calculate the factorial of 4, emphasizing the concept and necessity of a base case in recursive functions.']}], 'duration': 402.274, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2073578.jpg', 'highlights': ['The chapter provides a clear example of a recursive function to calculate the factorial of 4, emphasizing the concept and necessity of a base case in recursive functions.', 'The chapter illustrates the use of a multiply function with different input values, showcasing its flexibility and ease of use.', 'The chapter covers the concept of single-line functions and demonstrates their usage in multiplying a value by 3 and 2.', 'The chapter explains how to create and call functions in programming, using an example of creating a multiplication function to multiply 3 by 34.', 'It demonstrates the process of defining a function, specifying its return type, and declaring the data types of parameters, highlighting the use of local variables within the function.', 'Illustrates the creation and calling of functions, including an example of a function that doubles a given value and another that adds a list of items from 1 to 10.', 'Shows the concatenation of strings and the return of values from functions, including the usage of default values and optional parameters.']}, {'end': 3006.952, 'segs': [{'end': 2557.528, 'src': 'embed', 'start': 2527.886, 'weight': 2, 'content': [{'end': 2531.148, 'text': "So this is the second time that we're calling our factorial function.", 'start': 2527.886, 'duration': 3.262}, {'end': 2539.333, 'text': "this time num is going to be equal to 3, we're going to multiply that times factorial of 2, because we decremented that value.", 'start': 2531.148, 'duration': 8.185}, {'end': 2547.124, 'text': 'and then the third time through num is going to be equal to 2, multiplied times the factorial of 1 in that situation,', 'start': 2539.333, 'duration': 7.791}, {'end': 2553.091, 'text': "which means that is going to kill our little function or we're not going to be calling the factorial function again.", 'start': 2547.124, 'duration': 5.967}, {'end': 2557.528, 'text': 'So this is equivalent to 2 times 1, which is going to be equal to 2.', 'start': 2553.547, 'duration': 3.981}], 'summary': 'Factorial function called 3 times, resulting in 2', 'duration': 29.642, 'max_score': 2527.886, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2527886.jpg'}, {'end': 2811.939, 'src': 'embed', 'start': 2785.54, 'weight': 6, 'content': [{'end': 2792.547, 'text': "It's very important to remember that it's not ordered and it is going to be able to hold any data type, but whenever you have your keys,", 'start': 2785.54, 'duration': 7.007}, {'end': 2793.968, 'text': 'all the keys must be unique.', 'start': 2792.547, 'duration': 1.421}, {'end': 2799.494, 'text': "let's come in and create a kind of a useless empty map, just to show you how an empty map looks.", 'start': 2794.312, 'duration': 5.182}, {'end': 2800.034, 'text': 'and there you are.', 'start': 2799.494, 'duration': 0.54}, {'end': 2801.115, 'text': "there's an empty map.", 'start': 2800.034, 'duration': 1.081}, {'end': 2802.475, 'text': 'now we can create another one.', 'start': 2801.115, 'duration': 1.36}, {'end': 2805.797, 'text': "let's say we want to have one that is, state capitals.", 'start': 2802.475, 'duration': 3.322}, {'end': 2808.218, 'text': "there that is and how we're going to define this.", 'start': 2805.797, 'duration': 2.421}, {'end': 2811.939, 'text': "remember, you can use any data type that you'd like, but this is unordered.", 'start': 2808.218, 'duration': 3.721}], 'summary': 'Illustrates creating and defining empty and state capitals maps using any data type, emphasizing unique keys and unordered nature.', 'duration': 26.399, 'max_score': 2785.54, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2785540.jpg'}, {'end': 2878.597, 'src': 'embed', 'start': 2849.396, 'weight': 0, 'content': [{'end': 2852.419, 'text': 'And then inside of that, we could have balance.', 'start': 2849.396, 'duration': 3.023}, {'end': 2855.001, 'text': 'And define that Paul Smith owes us money.', 'start': 2852.959, 'duration': 2.042}, {'end': 2856.063, 'text': "120, let's say he owes us $120.25.", 'start': 2855.021, 'duration': 1.042}, {'end': 2856.443, 'text': 'There you go.', 'start': 2856.063, 'duration': 0.38}, {'end': 2857.884, 'text': "That's how you can put maps inside of maps.", 'start': 2856.463, 'duration': 1.421}, {'end': 2866.071, 'text': 'and then we can go and output this information on our screen.', 'start': 2862.669, 'duration': 3.402}, {'end': 2871.934, 'text': "the capital of alabama is, and let's go and get that capital.", 'start': 2866.071, 'duration': 5.863}, {'end': 2878.597, 'text': 'how you would get those different capitals is go state capitals and then pass in your key, close that off,', 'start': 2871.934, 'duration': 6.663}], 'summary': 'Using nested maps to store and output financial and geographical data.', 'duration': 29.201, 'max_score': 2849.396, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2849396.jpg'}, {'end': 3006.952, 'src': 'embed', 'start': 2967.759, 'weight': 1, 'content': [{'end': 2973.903, 'text': 'we just pipe in both of those different items we have there And then we want to tell it exactly what we want it to do,', 'start': 2967.759, 'duration': 6.144}, {'end': 2983.428, 'text': 'which is going to be that we want to output this information and we want to get the key and we want to get the value and print that out on a screen or,', 'start': 2973.903, 'duration': 9.525}, {'end': 2984.508, 'text': 'you know, put it in the browser.', 'start': 2983.428, 'duration': 1.08}, {'end': 2985.309, 'text': 'And there we go.', 'start': 2984.669, 'duration': 0.64}, {'end': 2986.55, 'text': 'Got all that set up.', 'start': 2985.489, 'duration': 1.061}, {'end': 2989.951, 'text': 'Come over here, convert it into JavaScript and reload it.', 'start': 2986.77, 'duration': 3.181}, {'end': 2993.333, 'text': 'You can see here it comes back with the capital Alabama is Montgomery.', 'start': 2990.072, 'duration': 3.261}, {'end': 2995.294, 'text': 'Here Paul Smith had a balance of $120.25.', 'start': 2993.413, 'duration': 1.881}, {'end': 2995.855, 'text': 'Here he paid it off.', 'start': 2995.294, 'duration': 0.561}, {'end': 2997.316, 'text': 'Here we went and printed out Alabama.', 'start': 2995.875, 'duration': 1.441}, {'end': 3004.948, 'text': 'Montgomery and Arizona and Phoenix, and we did that with R4 each block.', 'start': 3000.219, 'duration': 4.729}, {'end': 3006.952, 'text': "So that's how we work with lists and maps.", 'start': 3005.108, 'duration': 1.844}], 'summary': "Using javascript, output key-value pairs from a list and map, including examples like 'alabama: montgomery' and 'paul smith: $120.25'", 'duration': 39.193, 'max_score': 2967.759, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2967759.jpg'}], 'start': 2476.184, 'title': 'Working with lists and maps', 'summary': 'Covers function calculations like factorial and list manipulation, and demonstrates various ways to work with lists and maps in javascript, including iterating through list items and accessing and manipulating map data.', 'chapters': [{'end': 2744.975, 'start': 2476.184, 'title': 'Function calculations and list manipulation', 'summary': 'Covers function calculations including factorial and multiplication, as well as list manipulation including creation, addition, removal, and iteration through multiple methods.', 'duration': 268.791, 'highlights': ['The chapter covers function calculations including factorial and multiplication It explains how to perform calculations using functions, including factorial and multiplication.', 'List manipulation including creation, addition, removal, and iteration through multiple methods It covers various methods of list manipulation such as creating, adding, removing items, and iterating through the list using different techniques.', 'Demonstrating multiplication and factorial calculations using functions The transcript demonstrates the process of multiplication and factorial calculations using functions with value examples.', 'Explaining the creation and manipulation of lists It explains how to create and manipulate lists, including adding, removing items, and iterating through the list using different methods.']}, {'end': 3006.952, 'start': 2745.894, 'title': 'Working with lists and maps in javascript', 'summary': 'Demonstrates various ways to work with lists and maps in javascript, including iterating through list items and accessing and manipulating map data, with examples of outputting map information and adding, removing, and iterating through map items.', 'duration': 261.058, 'highlights': ['The chapter demonstrates various ways to work with lists and maps in JavaScript, including iterating through list items and accessing and manipulating map data, with examples of outputting map information and adding, removing, and iterating through map items.', 'The tutorial covers working with lists using for loop, for each block, and for in loop, showcasing the printing of different data types and manipulating list items in JavaScript.', 'It also explores creating and manipulating maps in JavaScript, emphasizing the storage of key-value pairs, uniqueness of keys, and the ability to store various data types, with examples of adding, removing, and iterating through map items.']}], 'duration': 530.768, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U2476184.jpg', 'highlights': ['The chapter covers function calculations including factorial and multiplication', 'The chapter demonstrates various ways to work with lists and maps in JavaScript', 'List manipulation including creation, addition, removal, and iteration through multiple methods', 'Explaining the creation and manipulation of lists', 'Demonstrating multiplication and factorial calculations using functions', 'The tutorial covers working with lists using for loop, for each block, and for in loop', 'It also explores creating and manipulating maps in JavaScript', 'Explaining how to perform calculations using functions, including factorial and multiplication']}, {'end': 3412.651, 'segs': [{'end': 3275.691, 'src': 'embed', 'start': 3255.253, 'weight': 0, 'content': [{'end': 3265.582, 'text': "and then of course you need to call the div box and say you want to actually go in and put or add our new sample anchor and that's how we would do that.", 'start': 3255.253, 'duration': 10.329}, {'end': 3268.404, 'text': "why don't we go in and also insert a break statement?", 'start': 3265.582, 'duration': 2.822}, {'end': 3273.089, 'text': "so again we're going to go div box, children, and add a break statement.", 'start': 3268.404, 'duration': 4.685}, {'end': 3275.691, 'text': 'we could also just do it directly inside here,', 'start': 3273.089, 'duration': 2.602}], 'summary': 'Demonstrating code: adding elements to div box.', 'duration': 20.438, 'max_score': 3255.253, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3255253.jpg'}, {'end': 3423, 'src': 'embed', 'start': 3397.787, 'weight': 3, 'content': [{'end': 3403.428, 'text': "and there's a whole bunch of other different elements we're going to be able to work with, and here is a pretty much complete list.", 'start': 3397.787, 'duration': 5.641}, {'end': 3404.569, 'text': "there's all of them.", 'start': 3403.428, 'duration': 1.141}, {'end': 3407.069, 'text': 'again the in the description underneath the video,', 'start': 3404.569, 'duration': 2.5}, {'end': 3412.651, 'text': 'we have the whole detailed list and all this code you can see here is an area element and break element and bottom element.', 'start': 3407.069, 'duration': 5.582}, {'end': 3418.532, 'text': "you'll be able to use all of them and play around with them and if you want the complete list, you can go right here, to this link, right there.", 'start': 3412.651, 'duration': 5.881}, {'end': 3423, 'text': 'Okay so that is a whole bunch of different ways to manipulate HTML.', 'start': 3418.752, 'duration': 4.248}], 'summary': 'Diverse html elements available for manipulation, with detailed list provided in the description and link.', 'duration': 25.213, 'max_score': 3397.787, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3397787.jpg'}], 'start': 3006.972, 'title': 'Manipulating html elements with dart and working with html elements in javascript', 'summary': 'Covers manipulating html elements using dart, including query selector, setting inner html and text, changing color, defining style, and obtaining information. it also demonstrates adding html elements like div, anchor, input, and break elements to a webpage using javascript, along with manipulation, event listeners, and dynamic content updating.', 'chapters': [{'end': 3128.059, 'start': 3006.972, 'title': 'Manipulating html elements with dart', 'summary': 'Explores how to manipulate html elements using dart, including using query selector to return an element object, setting inner html and text, changing color, defining a style, and getting information from html elements.', 'duration': 121.087, 'highlights': ['Using query selector to return an element object The query selector allows us to return an element object that can be used to manipulate elements if we provide it with just an ID.', 'Setting inner HTML and text We can easily set the HTML or the value of an element using set inner HTML, allowing us to change the text and content within the HTML element.', 'Changing color and defining a style We can manipulate the color and define a style for an element by using title style color and adding a defined style to the element.', "Getting information from HTML elements It's easy to retrieve the value stored inside an HTML element using inner HTML, allowing us to access and display the information stored within the element."]}, {'end': 3412.651, 'start': 3128.439, 'title': 'Working with html elements in javascript', 'summary': 'Demonstrates adding various html elements like div, anchor, input, and break elements to a webpage using javascript, highlighting the ease of manipulation and the ability to change text and attributes, along with adding event listeners and dynamically updating content.', 'duration': 284.212, 'highlights': ['Adding various HTML elements like div, anchor, input, and break elements to a webpage using JavaScript, showcasing the ease of manipulation and the ability to change text and attributes.', 'Demonstrating the addition of event listeners and dynamically updating content based on user input using JavaScript, emphasizing the practical application of JavaScript in webpage interaction.', 'Creating anchor elements and div elements, and highlighting the ability to work with a wide range of HTML elements using JavaScript, providing a comprehensive demonstration of the available elements and their functionality.', 'Showcasing the complete list of available HTML elements for manipulation using JavaScript, providing a reference for working with different elements and their respective functionalities.']}], 'duration': 405.679, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3006972.jpg', 'highlights': ['Adding various HTML elements like div, anchor, input, and break elements to a webpage using JavaScript, showcasing the ease of manipulation and the ability to change text and attributes.', 'Demonstrating the addition of event listeners and dynamically updating content based on user input using JavaScript, emphasizing the practical application of JavaScript in webpage interaction.', 'Creating anchor elements and div elements, and highlighting the ability to work with a wide range of HTML elements using JavaScript, providing a comprehensive demonstration of the available elements and their functionality.', 'Using query selector to return an element object The query selector allows us to return an element object that can be used to manipulate elements if we provide it with just an ID.']}, {'end': 4686.35, 'segs': [{'end': 3566.148, 'src': 'heatmap', 'start': 3418.752, 'weight': 0.893, 'content': [{'end': 3423, 'text': 'Okay so that is a whole bunch of different ways to manipulate HTML.', 'start': 3418.752, 'duration': 4.248}, {'end': 3426.848, 'text': "Now let's jump over and see what we can do with classes and objects inside of Dart.", 'start': 3423.221, 'duration': 3.627}, {'end': 3434.765, 'text': 'OK, just like in all other programming languages, your classes are going to define the attributes and capabilities of real world objects.', 'start': 3427.702, 'duration': 7.063}, {'end': 3436.185, 'text': "So let's just create a class.", 'start': 3434.845, 'duration': 1.34}, {'end': 3438.646, 'text': 'And this is outside of all the other different functions.', 'start': 3436.265, 'duration': 2.381}, {'end': 3439.546, 'text': "That's very important.", 'start': 3438.686, 'duration': 0.86}, {'end': 3441.267, 'text': "And let's just call it animal.", 'start': 3439.926, 'duration': 1.341}, {'end': 3446.048, 'text': 'Now, our animal class is going to have a couple attributes.', 'start': 3441.487, 'duration': 4.561}, {'end': 3453.811, 'text': "So let's say that our animal is going to have a default of no name for its name and also a sound.", 'start': 3446.148, 'duration': 7.663}, {'end': 3455.992, 'text': "And let's just have this be no sound.", 'start': 3454.191, 'duration': 1.801}, {'end': 3459.67, 'text': 'And a variable that starts with an underscore like this.', 'start': 3456.528, 'duration': 3.142}, {'end': 3464.353, 'text': "let's say we wanted to have weight, but we wanted to verify that the weight made sense.", 'start': 3459.67, 'duration': 4.683}, {'end': 3465.413, 'text': 'we would put an underscore.', 'start': 3464.353, 'duration': 1.06}, {'end': 3470.756, 'text': "And that just means that it's going to be private, and it can't be accessed by code outside of your program.", 'start': 3465.433, 'duration': 5.323}, {'end': 3478.581, 'text': 'And you can define how the user will be able to get that value by going get weight, and then you will provide that weight.', 'start': 3471.197, 'duration': 7.384}, {'end': 3481.623, 'text': "So that's a way of sort of hiding those values.", 'start': 3478.621, 'duration': 3.002}, {'end': 3489.934, 'text': 'And here, using set, so this is like a getter and this is like a setter, we can also define set and say something like weight.', 'start': 3482.179, 'duration': 7.755}, {'end': 3494.702, 'text': "And if they try to assign a value of weight, so we'll say if.", 'start': 3490.374, 'duration': 4.328}, {'end': 3499.043, 'text': 'Weight is less than or equal to 0.', 'start': 3495.461, 'duration': 3.582}, {'end': 3507.186, 'text': "In that situation, we're going to just set the weight back to the 0 value because an animal can't have a 0 weight.", 'start': 3499.043, 'duration': 8.143}, {'end': 3510.428, 'text': "Otherwise, we're going to allow them to set the weight.", 'start': 3507.486, 'duration': 2.942}, {'end': 3516.731, 'text': "So that's a way for us to protect our data, and that's the way getters and setters work inside of Dart.", 'start': 3511.028, 'duration': 5.703}, {'end': 3522.875, 'text': "Likewise, we're also going to have constructors, which are going to be called anytime a new object of animal type is created.", 'start': 3517.031, 'duration': 5.844}, {'end': 3527.038, 'text': 'And how you define that is with the animal name, same name as the class.', 'start': 3523.096, 'duration': 3.942}, {'end': 3536.165, 'text': "And in this situation, I'm going to say something like number of animals, and we're going to increment the total number of animals that we have.", 'start': 3527.599, 'duration': 8.566}, {'end': 3541.309, 'text': 'and number of animals in this situation is going to be a static variable,', 'start': 3536.565, 'duration': 4.744}, {'end': 3546.412, 'text': "which means it's going to be shared by every other animal object that is ever created.", 'start': 3541.309, 'duration': 5.103}, {'end': 3552.216, 'text': 'every animal object is going to have the same value, and how you define something as static is static int.', 'start': 3546.412, 'duration': 5.804}, {'end': 3559.602, 'text': "and then we're going to say number of animals, and since we don't have any in the beginning, we're just going to put zero inside of there.", 'start': 3552.216, 'duration': 7.386}, {'end': 3566.148, 'text': 'and of course we can also have static methods and we just use the static name again,', 'start': 3559.602, 'duration': 6.546}], 'summary': 'In dart, classes define attributes and capabilities of real world objects, including private variables, getters, setters, constructors, and static variables and methods.', 'duration': 147.396, 'max_score': 3418.752, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3418752.jpg'}, {'end': 3714.829, 'src': 'heatmap', 'start': 3607.545, 'weight': 0.806, 'content': [{'end': 3610.387, 'text': 'So in this situation, it makes sense for that to be a static method.', 'start': 3607.545, 'duration': 2.842}, {'end': 3614.03, 'text': "And let's go and create a method for this as well.", 'start': 3610.707, 'duration': 3.323}, {'end': 3616.992, 'text': "Let's create string and info.", 'start': 3614.19, 'duration': 2.802}, {'end': 3622.916, 'text': "And what we're going to have this do is return some information about our animals,", 'start': 3617.533, 'duration': 5.383}, {'end': 3628.501, 'text': 'and that information is going to be the name and the sound and the weight.', 'start': 3622.916, 'duration': 5.585}, {'end': 3635.027, 'text': "Now let's get up here inside here and talk about constructors because constructors are a little bit weird inside of Dart.", 'start': 3628.821, 'duration': 6.206}, {'end': 3642.294, 'text': "Now methods can't have the same name so if you have multiple constructors you must use what are called named constructors.", 'start': 3635.267, 'duration': 7.027}, {'end': 3649.421, 'text': 'So if you have a situation in which you want to be able to accept all three of the different attributes for our object,', 'start': 3642.694, 'duration': 6.727}, {'end': 3653.886, 'text': "we're going to type in animal and whatever you want the name constructor to be.", 'start': 3649.421, 'duration': 4.465}, {'end': 3658.17, 'text': "I just called mine three in this situation just because that's the first thing that came to my mind.", 'start': 3653.946, 'duration': 4.224}, {'end': 3659.171, 'text': 'And there you are.', 'start': 3658.43, 'duration': 0.741}, {'end': 3661.714, 'text': "We're going to also get weight inside of there.", 'start': 3659.211, 'duration': 2.503}, {'end': 3666.897, 'text': "now, if you want to reference an object's actual value, you use this,", 'start': 3662.054, 'duration': 4.843}, {'end': 3672.201, 'text': "and that's a way that we can be able to reference an object even though we don't know what the object's name is.", 'start': 3666.897, 'duration': 5.304}, {'end': 3673.161, 'text': "let's see if it goes.", 'start': 3672.201, 'duration': 0.96}, {'end': 3675.083, 'text': 'yep, it went in there and corrected that for me.', 'start': 3673.161, 'duration': 1.922}, {'end': 3684.429, 'text': "see, we're using the underscore and then we could also come in and do number of animals and increment that as well each time a new animal is created.", 'start': 3675.083, 'duration': 9.346}, {'end': 3687.291, 'text': "and another thing we could do let's go and create another method.", 'start': 3684.429, 'duration': 2.862}, {'end': 3696.331, 'text': "this is going to return a string and run and then in this situation, we'll just say return and we'll reference this name.", 'start': 3687.291, 'duration': 9.04}, {'end': 3699.755, 'text': "that's how we're able to get a value out of that runs.", 'start': 3696.331, 'duration': 3.424}, {'end': 3707.582, 'text': "and now that we created all those different objects and methods and all that stuff, let's jump up here and let's create ourselves some objects.", 'start': 3699.755, 'duration': 7.827}, {'end': 3714.829, 'text': "so let's create an animal object called bear and we just go new animal like that and there you go,", 'start': 3707.582, 'duration': 7.247}], 'summary': 'Creating static and named methods, constructors, and referencing object values in dart.', 'duration': 107.284, 'max_score': 3607.545, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3607545.jpg'}, {'end': 3789.382, 'src': 'embed', 'start': 3758.869, 'weight': 5, 'content': [{'end': 3761.43, 'text': "we're also going to be able to call the name constructor.", 'start': 3758.869, 'duration': 2.561}, {'end': 3771.092, 'text': "so let's call or let's create another one which is a tiger, and this is going to be new animal, animal three, and let's just call him saber,", 'start': 3761.43, 'duration': 9.662}, {'end': 3778.154, 'text': "and there's his sound and there is his weight, and then we'll be able to output all that information, just like we did before.", 'start': 3771.092, 'duration': 7.062}, {'end': 3780.875, 'text': "so there's that and we'll just change all these to tiger.", 'start': 3778.154, 'duration': 2.721}, {'end': 3785.058, 'text': "Now your objects aren't going to be able to access your static methods or fields.", 'start': 3781.095, 'duration': 3.963}, {'end': 3789.382, 'text': "If you want to be able to access those, you're going to have to use the class name.", 'start': 3785.439, 'duration': 3.943}], 'summary': 'Creating a new tiger object with sound and weight, and accessing static methods using class name.', 'duration': 30.513, 'max_score': 3758.869, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3758869.jpg'}, {'end': 4002.923, 'src': 'embed', 'start': 3974.682, 'weight': 10, 'content': [{'end': 3981.228, 'text': "Now we're going to define the function that everybody that inherits from the shape abstract class has to implement.", 'start': 3974.682, 'duration': 6.546}, {'end': 3982.889, 'text': "It's like a contract is what it is.", 'start': 3981.348, 'duration': 1.541}, {'end': 3989.235, 'text': "And basically what we're saying is it's going to have to, if you inherit from the shape class, you're going to have to create an area method.", 'start': 3982.949, 'duration': 6.286}, {'end': 3992.738, 'text': "Now what we'll do is we'll come down here and create another class.", 'start': 3989.495, 'duration': 3.243}, {'end': 3994.94, 'text': "And let's call this rectangle.", 'start': 3993.078, 'duration': 1.862}, {'end': 4002.923, 'text': "extends, and let's have it extend the shape, abstract class, and this is going to have a height and a weight.", 'start': 3995.34, 'duration': 7.583}], 'summary': 'Inheriting from the shape abstract class requires implementing an area method; a new class, rectangle, extends the shape class with height and width.', 'duration': 28.241, 'max_score': 3974.682, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3974682.jpg'}, {'end': 4062.996, 'src': 'embed', 'start': 4017.99, 'weight': 0, 'content': [{'end': 4023.512, 'text': "then what we're going to have to do, of course, is define our area method, and let's just do this on one line,", 'start': 4017.99, 'duration': 5.522}, {'end': 4027.393, 'text': "because it's very simple and it's just gonna be height, times, weight.", 'start': 4023.512, 'duration': 3.881}, {'end': 4033.014, 'text': "so that's how we can implement that could also, let's go and create a circle class as well.", 'start': 4027.393, 'duration': 5.621}, {'end': 4035.315, 'text': "extends, let's have it extend shape.", 'start': 4033.014, 'duration': 2.301}, {'end': 4038.696, 'text': "it's only going to have a radius though nothing else.", 'start': 4035.315, 'duration': 3.381}, {'end': 4044.659, 'text': "but of course it is going to implement the area method and it's going to do that.", 'start': 4038.696, 'duration': 5.963}, {'end': 4049.163, 'text': 'pi is built in, as long as you have the math library inside of here.', 'start': 4044.659, 'duration': 4.504}, {'end': 4052.606, 'text': "just copy this and let's just type in math up here.", 'start': 4049.163, 'duration': 3.443}, {'end': 4053.527, 'text': 'there that is.', 'start': 4052.606, 'duration': 0.921}, {'end': 4060.994, 'text': "so we got rid of that error and now what we'll do is take pi times and we'll go radius times, radius.", 'start': 4053.527, 'duration': 7.467}, {'end': 4061.855, 'text': 'And there we go.', 'start': 4061.354, 'duration': 0.501}, {'end': 4062.996, 'text': 'Now we have that implemented.', 'start': 4061.915, 'duration': 1.081}], 'summary': 'Defining area method for shapes, implementing circle class with radius and area calculation.', 'duration': 45.006, 'max_score': 4017.99, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4017990.jpg'}, {'end': 4120.291, 'src': 'embed', 'start': 4089.236, 'weight': 6, 'content': [{'end': 4091.177, 'text': "And we're going to do it in the same way as before.", 'start': 4089.236, 'duration': 1.941}, {'end': 4094.298, 'text': 'Area and circle area.', 'start': 4091.577, 'duration': 2.721}, {'end': 4095.679, 'text': "And we'll throw a new line.", 'start': 4094.699, 'duration': 0.98}, {'end': 4096.259, 'text': 'And there we are.', 'start': 4095.699, 'duration': 0.56}, {'end': 4097.96, 'text': 'And make sure to put that quote right there.', 'start': 4096.459, 'duration': 1.501}, {'end': 4105.459, 'text': "Another thing that's important to know is you can actually instantiate using a superclass and then cast to a subclass.", 'start': 4098.27, 'duration': 7.189}, {'end': 4112.606, 'text': 'So we could go shape rect2 is equal to new rectangle 5.0 and 25.0 just to make it different.', 'start': 4105.819, 'duration': 6.787}, {'end': 4120.291, 'text': "And then what we'll be able to do is go output plus equals to rec2 area.", 'start': 4115.169, 'duration': 5.122}], 'summary': 'Demonstrating instantiation and calculation of rectangle area.', 'duration': 31.055, 'max_score': 4089.236, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4089236.jpg'}, {'end': 4200.603, 'src': 'embed', 'start': 4151.309, 'weight': 4, 'content': [{'end': 4159.653, 'text': "whenever you use interfaces, you're going to allow your classes to inherit from multiple different classes, and so let's create a couple interfaces.", 'start': 4151.309, 'duration': 8.344}, {'end': 4169.157, 'text': "you just call class viable this, for example and let's just say it has a function inside of it that, when called, says something like return flies,", 'start': 4159.653, 'duration': 9.504}, {'end': 4172.037, 'text': "and let's go and create another one class.", 'start': 4169.157, 'duration': 2.88}, {'end': 4175.74, 'text': "say we're going to have superheroes so bulletproof,", 'start': 4172.037, 'duration': 3.703}, {'end': 4186.25, 'text': 'and this one is going to have a function called hit by bullet and in this situation it is going to return bullet bounces off.', 'start': 4175.74, 'duration': 10.51}, {'end': 4188.212, 'text': 'now that we have those all set up,', 'start': 4186.25, 'duration': 1.962}, {'end': 4197.282, 'text': "we're going to be able to come in here and create another class called superhero and we're going to use implements and flyable as well as bullet proof.", 'start': 4188.212, 'duration': 9.07}, {'end': 4200.603, 'text': "So you're going to be able to use both of those classes inside of there.", 'start': 4197.462, 'duration': 3.141}], 'summary': 'Using interfaces allows classes to inherit from multiple classes, for example a superhero class can implement flyable and bulletproof interfaces.', 'duration': 49.294, 'max_score': 4151.309, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4151309.jpg'}, {'end': 4318.473, 'src': 'heatmap', 'start': 4264.308, 'weight': 0.751, 'content': [{'end': 4273.654, 'text': 'and of course we could now put this information and Superman fly, call that function and we could do the same thing for the other guy.', 'start': 4264.308, 'duration': 9.346}, {'end': 4277.096, 'text': "reload it and you're gonna see Superman flies faster than a speeding bullet.", 'start': 4273.654, 'duration': 3.442}, {'end': 4278.778, 'text': "Well now let's take a look at mix-ins.", 'start': 4277.236, 'duration': 1.542}, {'end': 4285.866, 'text': "Now classes that inherit a mix-in don't have to override methods, but instead they're used to extend another class.", 'start': 4278.938, 'duration': 6.928}, {'end': 4290.451, 'text': "Like for example, let's say we had vehicles, like a class named vehicle.", 'start': 4285.946, 'duration': 4.505}, {'end': 4292.854, 'text': "And let's just keep this extremely simple.", 'start': 4290.871, 'duration': 1.983}, {'end': 4296.803, 'text': "We'll just say that it just defines the number of wheels as equal to 4.", 'start': 4292.894, 'duration': 3.909}, {'end': 4301.787, 'text': "Now let's say that each one of your vehicles you'd like to have an ID for them.", 'start': 4296.803, 'duration': 4.984}, {'end': 4303.529, 'text': 'Well this is where a mixin would come in.', 'start': 4301.987, 'duration': 1.542}, {'end': 4310.054, 'text': "So what this is going to do is it's going to make a unique ID for every single vehicle class that you have.", 'start': 4303.769, 'duration': 6.285}, {'end': 4318.473, 'text': "So it's going to go int, get ID and it is going to create a unique ID based off of date time.", 'start': 4310.314, 'duration': 8.159}], 'summary': 'Using mix-ins to provide unique ids for vehicle classes.', 'duration': 54.165, 'max_score': 4264.308, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4264308.jpg'}, {'end': 4411.703, 'src': 'heatmap', 'start': 4357.024, 'weight': 0.742, 'content': [{'end': 4360.165, 'text': 'And then this name is equal to name.', 'start': 4357.024, 'duration': 3.141}, {'end': 4365.006, 'text': 'And the ID is automatically going to be made for us since we called ID maker.', 'start': 4360.385, 'duration': 4.621}, {'end': 4366.506, 'text': "Let's go up and take a look at it.", 'start': 4365.326, 'duration': 1.18}, {'end': 4369.286, 'text': "So we'll go back up inside of main right here.", 'start': 4366.686, 'duration': 2.6}, {'end': 4371.247, 'text': "And we're going to create a car type.", 'start': 4369.626, 'duration': 1.621}, {'end': 4375.408, 'text': "And let's go Ford truck is equal to new car.", 'start': 4371.947, 'duration': 3.461}, {'end': 4378.148, 'text': "And we'll just give it the name of Ford truck.", 'start': 4375.828, 'duration': 2.32}, {'end': 4381.705, 'text': 'I guess I should have made that a truck object instead of a car, but whatever.', 'start': 4378.444, 'duration': 3.261}, {'end': 4388.086, 'text': 'Now what we can do is we can go output plus equals to, and we can say that it has the ID.', 'start': 4381.945, 'duration': 6.141}, {'end': 4395.387, 'text': "And then we'll be able to just simply call it because it automatically has it for truck and get the ID that was automatically generated for it.", 'start': 4388.366, 'duration': 7.021}, {'end': 4396.328, 'text': 'And there that is.', 'start': 4395.607, 'duration': 0.721}, {'end': 4399.248, 'text': 'You can see that it automatically put the ID inside of there.', 'start': 4396.668, 'duration': 2.58}, {'end': 4403.549, 'text': 'So mixins are a really awesome way to add some functionality to our classes.', 'start': 4399.448, 'duration': 4.101}, {'end': 4408.342, 'text': 'So there is a whole bunch of information about objects and classes and all that stuff.', 'start': 4403.68, 'duration': 4.662}, {'end': 4411.703, 'text': "Now let's go and take a look at how we can use operator overloading.", 'start': 4408.422, 'duration': 3.281}], 'summary': 'Demonstrating object creation and functionality using mixins, with a focus on operator overloading.', 'duration': 54.679, 'max_score': 4357.024, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4357024.jpg'}, {'end': 4399.248, 'src': 'embed', 'start': 4371.947, 'weight': 7, 'content': [{'end': 4375.408, 'text': "And let's go Ford truck is equal to new car.", 'start': 4371.947, 'duration': 3.461}, {'end': 4378.148, 'text': "And we'll just give it the name of Ford truck.", 'start': 4375.828, 'duration': 2.32}, {'end': 4381.705, 'text': 'I guess I should have made that a truck object instead of a car, but whatever.', 'start': 4378.444, 'duration': 3.261}, {'end': 4388.086, 'text': 'Now what we can do is we can go output plus equals to, and we can say that it has the ID.', 'start': 4381.945, 'duration': 6.141}, {'end': 4395.387, 'text': "And then we'll be able to just simply call it because it automatically has it for truck and get the ID that was automatically generated for it.", 'start': 4388.366, 'duration': 7.021}, {'end': 4396.328, 'text': 'And there that is.', 'start': 4395.607, 'duration': 0.721}, {'end': 4399.248, 'text': 'You can see that it automatically put the ID inside of there.', 'start': 4396.668, 'duration': 2.58}], 'summary': 'Creating a new ford truck object with an automatically generated id.', 'duration': 27.301, 'max_score': 4371.947, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4371947.jpg'}, {'end': 4528.719, 'src': 'embed', 'start': 4500.809, 'weight': 3, 'content': [{'end': 4504.71, 'text': "So now we'll be able to come up here and create a new point, just call it P1.", 'start': 4500.809, 'duration': 3.901}, {'end': 4507.993, 'text': 'is equal to a new point 50 like that.', 'start': 4505.492, 'duration': 2.501}, {'end': 4517.356, 'text': "and let's go and create another one of these point 2, and we'll be able to check if the points are equal now just by coming in here and going.", 'start': 4507.993, 'duration': 9.363}, {'end': 4523.397, 'text': "P1 is equal to P2, and we'll also be able to come in here and create another point.", 'start': 4517.356, 'duration': 6.041}, {'end': 4528.719, 'text': "let's just call it P3, and say that its values are going to be equal to P1 plus P2..", 'start': 4523.397, 'duration': 5.322}], 'summary': 'Creating points p1, p2, and p3 with values and checking for equality.', 'duration': 27.91, 'max_score': 4500.809, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4500809.jpg'}, {'end': 4574.081, 'src': 'embed', 'start': 4543.142, 'weight': 13, 'content': [{'end': 4545.725, 'text': "And the final thing I'm going to take a look at is exception handling.", 'start': 4543.142, 'duration': 2.583}, {'end': 4552.96, 'text': 'Now exceptions are going to allow us to catch errors that otherwise would crash our program, which would be very bad.', 'start': 4546.513, 'duration': 6.447}, {'end': 4558.827, 'text': "So what we're going to do down here is we are going to create a function called divide numbers.", 'start': 4553.141, 'duration': 5.686}, {'end': 4563.052, 'text': "And it's going to receive number one and another int that's number two.", 'start': 4559.267, 'duration': 3.785}, {'end': 4567.457, 'text': "And then inside of here, let's go move this down here, move that all down here.", 'start': 4563.272, 'duration': 4.185}, {'end': 4574.081, 'text': 'Now inside of here, we are going to verify that they are not trying to perform a division by zero.', 'start': 4567.777, 'duration': 6.304}], 'summary': 'The discussion covers exception handling in python to catch errors and prevent program crashes.', 'duration': 30.939, 'max_score': 4543.142, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4543142.jpg'}, {'end': 4664.472, 'src': 'embed', 'start': 4635.505, 'weight': 9, 'content': [{'end': 4637.405, 'text': "we'll go string, I don't know.", 'start': 4635.505, 'duration': 1.9}, {'end': 4645.186, 'text': "we'll just say something like cause and we'll say something like can't divide by zero, divide by zero error and pass this cause.", 'start': 4637.405, 'duration': 7.781}, {'end': 4650.707, 'text': "so that's how we can create a custom exception and how to throw it and all these other different things.", 'start': 4645.186, 'duration': 5.521}, {'end': 4660.249, 'text': "and then up here we'll pass error like that and make sure that we go and put our semicolon outside of there sorry about that and get rid of that guy right there and then move this guy down here.", 'start': 4650.707, 'duration': 9.542}, {'end': 4661.25, 'text': 'There we go.', 'start': 4660.689, 'duration': 0.561}, {'end': 4664.472, 'text': "And if we run that, you can see that can't divide by zero pop-up.", 'start': 4661.61, 'duration': 2.862}], 'summary': "Demonstrated creating a custom exception, throwing it, and handling the error, resulting in a 'can't divide by zero' pop-up.", 'duration': 28.967, 'max_score': 4635.505, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4635505.jpg'}, {'end': 4686.35, 'src': 'embed', 'start': 4668.315, 'weight': 1, 'content': [{'end': 4673.6, 'text': "Up. next, I'm going to cover a whole bunch of things about JavaScript, JavaScript, object-oriented programming,", 'start': 4668.315, 'duration': 5.285}, {'end': 4682.287, 'text': 'as well as all the frameworks you guys have been asking for, as well as games that are going to be able to work on iOS as well as on Android.', 'start': 4673.6, 'duration': 8.687}, {'end': 4684.709, 'text': 'Please leave your questions and comments below.', 'start': 4682.547, 'duration': 2.162}, {'end': 4686.35, 'text': 'Otherwise, until next time.', 'start': 4685.189, 'duration': 1.161}], 'summary': 'Covering javascript, object-oriented programming, frameworks, and games for ios and android.', 'duration': 18.035, 'max_score': 4668.315, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U4668315.jpg'}], 'start': 3412.651, 'title': "Dart's oop and html manipulation", 'summary': "Covers various ways to manipulate html, use classes and objects in dart, including constructors, inheritance, abstract classes, interfaces, mix-ins, operator overloading, and exception handling. it demonstrates defining attributes, private variables, getters and setters, constructors, static variables and methods, methods for returning animal information, named constructors, 'this' keyword, accessing static methods and fields, and the difference in defining constructors in dart compared to other languages. it also includes examples of overriding methods, implementing abstract classes, using interfaces for multiple inheritance, extending classes with mix-ins, overloading operators, and handling exceptions to catch errors.", 'chapters': [{'end': 3628.501, 'start': 3412.651, 'title': 'Manipulating html and working with classes in dart', 'summary': 'Introduces various ways to manipulate html and demonstrates the use of classes and objects in dart, including defining attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information.', 'duration': 215.85, 'highlights': ['The chapter introduces various ways to manipulate HTML The chapter covers various methods to manipulate HTML, providing a comprehensive list of options for the viewers to explore.', 'demonstrates the use of classes and objects in Dart, including defining attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information The chapter explains the use of classes and objects in Dart, including defining attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information, providing a detailed overview of these key concepts.', 'defines attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information The chapter covers the definition of attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information, highlighting the essential aspects of class and object implementation in Dart.']}, {'end': 3890.62, 'start': 3628.821, 'title': 'Dart constructors and inheritance', 'summary': "Discusses constructors in dart, outlining the concept of named constructors for multiple constructors and the use of 'this' to reference object values, creating and utilizing objects, accessing static methods and fields, and inheritance from a superclass. it also touches on the difference in defining constructors in dart compared to other languages.", 'duration': 261.799, 'highlights': ["The chapter discusses the concept of named constructors for multiple constructors and the use of 'this' to reference object values. Named constructors are used when there are multiple constructors, and 'this' is employed to reference an object's actual value.", 'Creating and utilizing objects and methods, including defining values and outputting information. The process of creating and defining objects and methods, such as creating an animal object with specific values and outputting information using string interpolation.', 'Accessing static methods and fields by using the class name. Accessing static methods and fields by using the class name, demonstrated by getting the total number of animals.', "Inheritance from a superclass, with the subclass gaining access to all attributes and methods of the superclass. Demonstrates inheritance by creating a subclass 'dogs' that extends the superclass 'animal', providing access to all methods and attributes of the superclass.", 'The difference in defining constructors in Dart compared to other languages. Highlights the difference in defining constructors in Dart, emphasizing the need to define constructors and referencing the superclass while creating a subclass.']}, {'end': 4686.35, 'start': 3890.9, 'title': 'Dart: inheritance, abstract classes, interfaces, mix-ins, operator overloading, exception handling', 'summary': 'Covers inheritance, abstract classes, interfaces, mix-ins, operator overloading, and exception handling in dart, including examples of overriding methods, implementing abstract classes, using interfaces for multiple inheritance, extending classes with mix-ins, overloading operators, and handling exceptions to catch errors.', 'duration': 795.45, 'highlights': ['The chapter covers inheritance, including examples of overriding methods, such as calling the super version of info and using inherited dog objects.', 'It explains abstract classes and their implementation, as well as the requirement to create an area method and how it functions as a contract for subclasses.', 'Interfaces are discussed, showcasing the ability for classes to inherit from multiple different classes with examples of defining functions and utilizing interfaces for multiple inheritance.', 'Mix-ins are explained as a way to extend another class, with an example of creating a unique ID for vehicle classes and utilizing the ID maker to generate IDs for cars.', 'The chapter demonstrates operator overloading, showcasing how to override operators like equals, addition, and subtraction for point objects as well as checking for equality and performing arithmetic operations.', 'Exception handling is covered, demonstrating how to catch errors and prevent program crashes, with an example of handling division by zero and custom exception creation.']}], 'duration': 1273.699, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/OLjyCy-7U2U/pics/OLjyCy-7U2U3412651.jpg', 'highlights': ['The chapter covers various methods to manipulate HTML, providing a comprehensive list of options for the viewers to explore.', 'The chapter explains the use of classes and objects in Dart, including defining attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information, providing a detailed overview of these key concepts.', 'The chapter covers the definition of attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information, highlighting the essential aspects of class and object implementation in Dart.', "Named constructors are used when there are multiple constructors, and 'this' is employed to reference an object's actual value.", 'Accessing static methods and fields by using the class name, demonstrated by getting the total number of animals.', "Demonstrates inheritance by creating a subclass 'dogs' that extends the superclass 'animal', providing access to all methods and attributes of the superclass.", 'The difference in defining constructors in Dart, emphasizing the need to define constructors and referencing the superclass while creating a subclass.', 'The chapter covers inheritance, including examples of overriding methods, such as calling the super version of info and using inherited dog objects.', 'Interfaces are discussed, showcasing the ability for classes to inherit from multiple different classes with examples of defining functions and utilizing interfaces for multiple inheritance.', 'The chapter demonstrates operator overloading, showcasing how to override operators like equals, addition, and subtraction for point objects as well as checking for equality and performing arithmetic operations.', 'Exception handling is covered, demonstrating how to catch errors and prevent program crashes, with an example of handling division by zero and custom exception creation.', 'Mix-ins are explained as a way to extend another class, with an example of creating a unique ID for vehicle classes and utilizing the ID maker to generate IDs for cars.', 'It explains abstract classes and their implementation, as well as the requirement to create an area method and how it functions as a contract for subclasses.', 'The process of creating and defining objects and methods, such as creating an animal object with specific values and outputting information using string interpolation.']}], 'highlights': ['Covers a comprehensive Dart tutorial equivalent to a 2 to 300 page book', 'Provides guidance on installing Dart and Sublime Text 3 on Windows and Macintosh, offering timestamps for easy navigation within the tutorial', 'Demonstrates converting strings to integers and updating HTML elements', 'The chapter covers if statements, switch statements, loops, and string manipulations in JavaScript', 'The chapter provides a clear example of a recursive function to calculate the factorial of 4', 'The chapter covers function calculations including factorial and multiplication', 'Adding various HTML elements like div, anchor, input, and break elements to a webpage using JavaScript', 'The chapter covers various methods to manipulate HTML, providing a comprehensive list of options for the viewers to explore', 'The chapter explains the use of classes and objects in Dart, including defining attributes, private variables, getters and setters, constructors, static variables and methods, and methods for returning animal information']}