Merge pull request #6771 from FreeCodeCamp/new/video-challenges
New/video challenges
This commit is contained in:
78
challenges/04-video-challenges/bigonotation.json
Normal file
78
challenges/04-video-challenges/bigonotation.json
Normal file
@ -0,0 +1,78 @@
|
||||
{
|
||||
"name": "Big O Notation",
|
||||
"order": 4,
|
||||
"time": "30 minutes",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "56b15f15632298c12f31517b",
|
||||
"title": "Big O Notation: What It Is and Why You Should Care",
|
||||
"description": [
|
||||
"Time complexity is a way of discussing how long specific algorithms take. This is useful in streamlining software so it works as fast as possible.",
|
||||
"When you're writing code, you should be aware of how long it's going to take to execute. Nobody wants to create a product that users find frustrating due to slow use.",
|
||||
"Time complexity is talked about in relation to an algorithm, a collection of one or more functions.",
|
||||
"Big O Notation specifically helps you identify when an algorithm wouldn't 'scale' well, or work well with varying amounts of users, information, or other inputs.",
|
||||
"This does NOT correspond with Moore's law - no matter how big and fast your computer is, if the algorithm is exponentially inefficient, it's realistically unusable.",
|
||||
"Additionally, questions about Big O Notation and time complexity can be used as interview questions.",
|
||||
"Your employers will want to know that the code you write will not take too long to load on the page for the users, and knowledge of Big O Notation shows that you're cognizant of that while writing your code.",
|
||||
"The take-away from this video is that Big O Notation helps you identify where there could be problems (sometimes BIG problems) in speed and memory when your site or app grows."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"139874123"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"If an algorithm is effecient for small amounts of data, it will be equally efficient for large amounts of data.",
|
||||
false,
|
||||
"It depends on the algorithm and the data it's processing."
|
||||
],
|
||||
[
|
||||
"Big O Notation reflects the speed of an algorithm in terms of the expected input.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31517a",
|
||||
"title": "Big O Notation: A Few Examples",
|
||||
"description": [
|
||||
"Time complexity is commonly estimated by counting the number of elementary operations (elementary operation = an operation that takes a fixed amount of time to preform) performed in the algorithm.",
|
||||
"Time complexity is classified by the nature of the function T(n). O represents the function, and (n) represents the number of elements to be acted on.",
|
||||
"Worst-case time complexity, the longest it could possibly take with any valid input, is the most common way to express time complexity.",
|
||||
"When you discuss Big-O notation, that is generally referring to the worst case scenario.",
|
||||
"For example, if we have to search two lists for common entries, we will calculate as if both entries would be at the very end of each list, just to be safe that we don't underestimate how long it could take.",
|
||||
"O(1) - determining if a number is odd or even. O(1) is a static amount of time, the same no matter how much information is there or how many users there are.",
|
||||
"O(log N) - finding a word in the dictionary (using binary search). Binary search is an example of a type of 'divide and conquor' algorithm.",
|
||||
"O(N) - reading a book",
|
||||
"O(N log N) - sorting a deck of playing cards (using merge sort)",
|
||||
"O(N^2) - checking if you have everything on your shopping list in your cart",
|
||||
"O(infinity) - tossing a coin until it lands on heads",
|
||||
"As a rule of thumb, anything with N^2 or any other exponent is NOT a good algorithm for a site with multiple users.",
|
||||
"If your algorithm slows down exponentially with the input, you're going to want to look for a more efficient way to solve that problem.",
|
||||
"Whenever you’re coding loops within loops, you want to be especially mindful of time complexity.",
|
||||
"Big O Cheat Sheet is the place to look once you can classify your algorithm, like as a 'merge-sort' or a 'quick-sort'.",
|
||||
"bigocheatsheet.com/",
|
||||
"Princeton Coursera course is NOT for the faint of heart. With examples and practice in Java, this course will cover iterating over data specifically with Java, sorting, and searching algorithms.",
|
||||
"coursera.org/course/algs4partI"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"139877627"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Algorithms expressed exponentially like O(N^2) can work well in certain situations, so you shouldn't avoid them completely.",
|
||||
false,
|
||||
"While they can work in certain small scale situations, they aren't good practice because they will not work larger scale."
|
||||
],
|
||||
[
|
||||
"All algorithms can be broken down to complete in a static amount of time if you do it effectively.",
|
||||
false,
|
||||
"Not all algorithms can be simplified to that extent, but you should always try to find the simplest way to solve your problem."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
}
|
||||
]
|
||||
}
|
250
challenges/04-video-challenges/chromedevtools.json
Normal file
250
challenges/04-video-challenges/chromedevtools.json
Normal file
@ -0,0 +1,250 @@
|
||||
{
|
||||
"name": "Chrome Developer Tools",
|
||||
"order": 3,
|
||||
"time": "1 hour",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "56b15f15632298c12f315184",
|
||||
"title": "Chrome Dev Tools: Elements",
|
||||
"description": [
|
||||
"This is basic info and a mini-lesson on the Elements tab of Chrome Dev Tools. Check out more in-depth documentation here: developers.google.com/web/tools/iterate/inspect-styles/basics",
|
||||
"We will be using the webpage mckellen.com/ per suggestion of Free Code Camp user kmiasko.",
|
||||
"If you right click and select 'Inspect element', you can have access to the elements tab. You can change text, background color, text color, and any other CSS or HTML you'd like!",
|
||||
"These changes don't set up automatically, so don't use this as an IDE or a place to create or edit anything you want to save. You can set up something called 'persistant authoring' to save.",
|
||||
"Cascade, inherit, and other css rules still apply, so keep that in mind as you play around. Additionally, overridden styles will be shown as having a strike through them.",
|
||||
"It should also be noted that all of the code you're seeing in this 'tree' is current HTML, not original onload. If you use javascript or jquery to change something, it will be updated on this tree.",
|
||||
"Padding, border, and margins are easily inspected and edited using the colorful box on the right or bottom side.",
|
||||
"Please check out the Chrome Dev Tools documentation at developers.google.com/web/tools/chrome-devtools/"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137186237"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The elements tab is where you should go if you want to edit HTML and CSS of an existing web page.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Any changes you make are saved, so it's safe to use as an editing tool.",
|
||||
false,
|
||||
"These changes are temporary, so if you find a great fix or idea, put it into your own documents so you don't lose your progress!"
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315183",
|
||||
"title": "Chrome Dev Tools: Network",
|
||||
"description": [
|
||||
"The network tab helps answer questions like 'Which element or part of the page took the longest?' or 'What initiated a request?'.",
|
||||
"The network panel records detailed information about how long each element of your page or app takes to load.",
|
||||
"Every request is recorded in the log, which can be found lower in the network panel.",
|
||||
"If you look at the line on the side, you'll notice a pattern of colors. Those colors each represent a different type of content in the request.",
|
||||
"The longer the line is a certain color, the longer that type of content took in that request. Ultimately, you want short lines, and if any request has long lines, you know what may be slowing down the web page.",
|
||||
"If you click a request in the log, you can get even more detailed information.",
|
||||
"Check out more in-depth documentation here: developers.google.com/web/tools/profile-performance/network-performance/resource-loading"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137187539"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The Network tab is a good place to look to determine what requests are being made and how long they're taking.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Like all of the tabs in Chrome Developer tools, there are many ways to view and utilize the information it offers.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315182",
|
||||
"title": "Chrome Dev Tools: Sources",
|
||||
"description": [
|
||||
"The 'Sources' tab is most useful for debugging JavaScript. The bigger your project is, the harder it can be to find exactly where a problem occurs.",
|
||||
"You can select different parts of the code to be 'breakpoints', checkpoints that will stop the code at that exact moment.",
|
||||
"There are different breakpoints you can watch for, like for a specific line of code, on a DOM event, a server request called XMLHTTP request, or a JavaScript event.",
|
||||
"When you set a breakpoint, the browser pauses everything when it interprets that line of code or event.",
|
||||
"By slowing everything down and giving yourself a chance to examine what's happening at every spot you've set, you can keep track of exactly what's happening in the page or app.",
|
||||
"Once all of the breakpoints are set, you can step through the code and examine the state of your page or app at every breakpoint.",
|
||||
"Just like with elements, you can live-edit through dev tools, but remember to save those changes however you can so your progress isn't lost.",
|
||||
"Check out more in-depth documentation here: developers.google.com/web/tools/javascript/breakpoints/"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137188025"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Debugging can be done easily in the 'Sources' tab of Chrome Dev Tools.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"These breakpoints are already established, but you can edit where they are in the code.",
|
||||
false,
|
||||
"You set up all of the breakpoints in the debugger."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315181",
|
||||
"title": "Chrome Dev Tools: Timeline",
|
||||
"description": [
|
||||
"The Timeline panel lets you record and analyze all the activity in your application as it runs. It's the best place to start investigating perceived performance issues in your application.",
|
||||
"Just like you use network to find out how long things take to communicate with the internet and you use sources to find out where something's broken, you can use timeline to figure out what's going on and how long it takes in even more detail.",
|
||||
"With the timeline you record events using the small circle button. You can record (or capture) stacks, profile js, memory, and paint (css).",
|
||||
"When you record (capture) these, it sets them up in small, detailed logs that you can organize many ways to fit you.",
|
||||
"All of this will help you to better understand what's happening in the browser, particularly which events require more browser memory than others.",
|
||||
"When you're using timeline, remember to use this 'clear' button and to start recording before you load the page, depending on what you want to capture.",
|
||||
"You'll notice that when you record JS events, clicking on the title or 'function call' on the left will take you to the document and line of that function using the resource panel.",
|
||||
"Check out more in-depth documentation here: developers.google.com/web/tools/profile-performance/evaluate-performance/timeline-tool"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137188786"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The 'Timeline' tab records how long it takes APIs to return information.",
|
||||
false,
|
||||
"The 'Timeline' tab is best utilized as a starting place for performance issues that relate to speed and memory usage"
|
||||
],
|
||||
[
|
||||
"You need to press 'record' to start capturing information when using the 'Timeline' tab.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315180",
|
||||
"title": "Chrome Dev Tools: Profiles",
|
||||
"description": [
|
||||
"The Profiles panel lets you profile the execution time and memory usage of a web app or page. This primarily applies to the JavaScript running on your page or app.",
|
||||
"There are three types of profiles you can collect: CPU profile, HEAP snapshot, and HEAP profile. HEAP profiles have more to do with memory usage, while a CPU profile has more to do with JavaScript performance.",
|
||||
"A profiler called V8 is used while your code runs to pinpoint what in the JavaScript takes the most time, making it easy to optimize your code.",
|
||||
"Each of these profiles can be viewed on the left, and you can take multiple profiles of each. Overall, the profiles tab is helpful when optimizing code.",
|
||||
"Check out more in-depth documentation here: developers.google.com/web/tools/profile-performance/rendering-tools/js-execution"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137189330"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"When you take a profile or a snapshot, the information that's collected will be viewable in only one format.",
|
||||
false,
|
||||
"Like all of the tabs in Chrome Dev Tools, there are multiple ways to view and interpret information."
|
||||
],
|
||||
[
|
||||
"After hitting 'record', consider refreshing the page depending on what data you are trying to capture. ",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31517f",
|
||||
"title": "Chrome Dev Tools: Resources",
|
||||
"description": [
|
||||
"The Resources panel lets you inspect resources that are loaded in the inspected page including IndexedDB or Web SQL databases, local and session storage, cookies, Application Cache, images, fonts, and style sheets.",
|
||||
"You can view and edit all of this information within the browser.",
|
||||
"As you get into more advanced web building, play around with the resources panel and see how it can help you understand the requirements of your app and page in real time.",
|
||||
"Check out more in-depth documentation here: developers.google.com/web/tools/iterate/manage-data/index"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137193676"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The 'Resources' tab helps you view external resources such as SQL and cookies.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31517e",
|
||||
"title": "Chrome Dev Tools: Audits",
|
||||
"description": [
|
||||
"The Audit tool walks you through how to improve your page step by step.",
|
||||
"In this video, we use this tool on the quote generator that I made as a front end development project.",
|
||||
"The suggestions you'd get using the Audit tool are generated automatically.",
|
||||
"This is important to keep in mind so you can contextualize them with your other knowledge of your site.",
|
||||
"Sometimes, it might be right, but sometimes, for your situation it might be wrong.",
|
||||
"Use this tool when you want to improve your site or app, but you aren't sure where to start."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137194227"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The Audit tab will suggest ways to improve a webpage.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"While you don't NEED to do everything suggested, you probably should.",
|
||||
false,
|
||||
"If you don't understand an error or suggestion, do more research before making major changes."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31517d",
|
||||
"title": "Chrome Dev Tools: Console",
|
||||
"description": [
|
||||
"The Console panel provides two primary functions: logging diagnostic information in the development process and providing a shell prompt which can be used to interact with the document and DevTools.",
|
||||
"When using the console, you can view raw or structured data by using standard JS statements and console-specific commands.",
|
||||
"An example of structured data would be the information returned from an API in JSON. I used this a lot when I was building my first front end development projects for Free Code Camp.",
|
||||
"You should know that messages stack up, and you can clear them by typing and entering 'clear()'. You can also save the log by selecting 'Preserve Log'.",
|
||||
"There are different commands that will log differently, like console.log() for basic logging, console.error() & console.warn() for 'eye catching stuff'.",
|
||||
"The console can track exceptions, which basically means when something goes wrong. It can even pause the code during those exceptions, a function that you might remember from the 'Source' tab.",
|
||||
"Check out more in-depth documentation here: developers.google.com/web/tools/javascript/console/"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137194773"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The console in Chrome Dev Tools has many similarities to the console of a computer.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"This video is in-depth and covers everything you need to know.",
|
||||
false,
|
||||
"Please review the documentation linked in the description."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31517c",
|
||||
"title": "Chrome Dev Tools: Summary",
|
||||
"description": [
|
||||
"1.) Chrome Dev Tools are awesome, and the more you can dive in and try to use them, the faster your skill level will grow.",
|
||||
"2.) Use the documentation, even if you've never read documentation before. developers.google.com/web/tools/chrome-devtools/",
|
||||
"3.) Once you start to get comfortable in one tab, stretch yourself. Working effectively with all of the tabs will serve you exponentially more than sticking in your comfort zone."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137196041"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Device mode allows you to view your page in different sizes of screens with different network connections.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
}
|
||||
]
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "Computer Basics",
|
||||
"order": 0,
|
||||
"time": "3 hours",
|
||||
"time": "2 hours",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7128d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 1: The 4 Basic Parts of a Computer",
|
||||
"title": "Computer Basics: The 4 Basic Parts of a Computer",
|
||||
"description": [
|
||||
"At the very least, a machine needs these four basic parts to be considered a computer.",
|
||||
"Today we're going to talk about the basics of computer hardware.",
|
||||
@ -45,7 +45,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7127d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 2: More Computer Hardware",
|
||||
"title": "Computer Basics: More Computer Hardware",
|
||||
"description": [
|
||||
"In this video we cover the basic functions of a motherboard, expansion slots, and power supply.",
|
||||
"Let's quickly review - the 4 basic parts of a computer are the input, like the mouse or the keyboard, the output, which is seen on the monitor or heard on the speakers, the CPU, the central processing unit, and the memory.",
|
||||
@ -82,9 +82,46 @@
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8a441eddfbeb5bddf",
|
||||
"title": "Computer Basics: Chips and Moore's Law",
|
||||
"description": [
|
||||
"We discuss what constitutes a chip and why technology gets cheaper every year.",
|
||||
"In this video we are going to be talking about chips and something called Moore's Law.",
|
||||
"You've probably noticed over the last 10 or so years, if you're going to go buy an MP3 player, you can get a lot more storage for a lot lower price.",
|
||||
"You probably have even done the thing where you're at the store and you think, \"Well, I can get one now, or I could wait 6 months and see how far the price has dropped\", which might sound ridiculous but this is actually a trend that's been happening for a long time.",
|
||||
"Let's talk about what makes a chip.",
|
||||
"A chip is full of these little things called transistors, which are switches that can either be a 1 or a 0 (noticing a theme here?).",
|
||||
"All of these transistors fit onto a chip, and that's how it stores information.",
|
||||
"What makes these chips larger/faster is the amount of transistors on a single chip.",
|
||||
"Moore's Law is the observation that the amount of transistors fit on each chip has doubled every two years since 1965.",
|
||||
"This is important because it's making technology more affordable and accessible."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133182057"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Chips have transistors, little switches that can store a 1 or a 0.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Moore's Law is the observation that technology doubles in speed every year.",
|
||||
false,
|
||||
"Moore's Law is the observation that the number of transistors per chip doubles every 2 years)."
|
||||
],
|
||||
[
|
||||
"Moore's Law has slowed down in recent years.",
|
||||
false,
|
||||
"Somehow this continues to be true."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 3: Intro to Binary Code",
|
||||
"title": "Computer Basics: Intro to Binary Code",
|
||||
"description": [
|
||||
"What binary looks like, and what it can mean.",
|
||||
"0's and 1's can turn be interpreted into far more complex data.",
|
||||
@ -117,7 +154,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 4: Decoding a Binary Number",
|
||||
"title": "Computer Basics: Decoding a Binary Number",
|
||||
"description": [
|
||||
"In this video, we decode a number written in binary notation.",
|
||||
"Let's talk about the binary numeral system, also known as a bunch of 1's and 0's over and over again.",
|
||||
@ -152,7 +189,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7124d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 5: How To Measure Data Size",
|
||||
"title": "Computer Basics: How To Measure Data Size",
|
||||
"description": [
|
||||
"How the size/amount of data is measured, starting from a bit and going all the way up to a petabyte.",
|
||||
"Today we're going to be talking about Data Size.",
|
||||
@ -190,7 +227,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7123d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 6: Measuring Data Speed",
|
||||
"title": "Computer Basics: Measuring Data Speed",
|
||||
"description": [
|
||||
"Data speed and data size are measured differently.",
|
||||
"In this video, we cover how data speed is measured.",
|
||||
@ -223,7 +260,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7122d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 7: Binary Bytes",
|
||||
"title": "Computer Basics: Binary Bytes",
|
||||
"description": [
|
||||
"Binary does more than express numbers - through bytes, it can symbolize all alphanumeric symbols, which can then be interpreted into more complex code.",
|
||||
"Let's talk about the most basic level that computer can understand other languages, like javascript.",
|
||||
@ -256,7 +293,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7121d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 8: Types of Computers",
|
||||
"title": "Computer Basics: Types of Computers",
|
||||
"description": [
|
||||
"This video covers the basics of supercomputers, servers, workstations, PCs, and microcontrollers.",
|
||||
"Let's discuss the different types of computers.",
|
||||
@ -294,7 +331,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd7120d8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 9: More on the Motherboard",
|
||||
"title": "Computer Basics: More on the Motherboard",
|
||||
"description": [
|
||||
"A little more detail on what constitutes a motherboard and what functionalities are standard in PCs.",
|
||||
"Today we're going to be talking more about the motherboard.",
|
||||
@ -334,7 +371,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712fd8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 10: Data Networks",
|
||||
"title": "Computer Basics: Data Networks",
|
||||
"description": [
|
||||
"This video covers the basics of local area networks, wide area networks, and virtual private networks.",
|
||||
"In this video we talk about Data Networks.",
|
||||
@ -374,9 +411,8 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712ed8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 11: IP Addresses",
|
||||
"title": "Computer Basics: IP Addresses",
|
||||
"description": [
|
||||
"The Internet, part 1: IP Addresses.",
|
||||
"Every device has an IP address.",
|
||||
"IP addresses are assigned based on location, and are vital for the internet to work.",
|
||||
"We're going to talk about the Internet: Part 1, How the Internet Works.",
|
||||
@ -408,7 +444,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712dd8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 12: How the Internet Works",
|
||||
"title": "Computer Basics: How the Internet Works",
|
||||
"description": [
|
||||
"This is a brief and basic overview of how the internet works.",
|
||||
"For a more in-depth explanation, check out web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm",
|
||||
@ -443,7 +479,7 @@
|
||||
},
|
||||
{
|
||||
"id": "bd712cd8c441eddfbeb5bddf",
|
||||
"title": "Computer Basics 13: Software",
|
||||
"title": "Computer Basics: Software",
|
||||
"description": [
|
||||
"We discriminate between hardware and software, and also discuss the differences between an operating system and application software.",
|
||||
"In this video, we'll discuss the basics of software.",
|
||||
@ -465,6 +501,320 @@
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31510f",
|
||||
"title": "Computer Basics: Content Delivery Networks",
|
||||
"description": [
|
||||
"A Content Delivery Network is a system of distributed servers (network) that deliver webpages and other Web content to a user based on the geographic locations of the user, the origin of the webpage and a content delivery server.",
|
||||
"The goal of a CDN is to establish higher quality network connections.",
|
||||
"CDNs accomplish this by providing effective routes between their own servers that can fast-track users to their destination, or if its faster and/or cheaper, another copy of that website destination that is being hosted on another server.",
|
||||
"This concept and type of service is not new, but is becoming more popular as the internet grows.",
|
||||
"Websites contract and pay a CDN service, who in turn pays an internet provider to use their servers for their data.",
|
||||
"An example of CDNs are Google's Hosted Libraries. -- developers.google.com/speed/libraries/#jquery",
|
||||
"Google hosts these libraries so that your users can load them into your own site much more quickly than if you host them yourself.",
|
||||
"There's a chance the user's browser is even storing a cached version from visiting a previous page, making the process even quicker. If you aren't familliar with the term 'cache', don't worry, we'll cover that in future videos.",
|
||||
"As a user, you probably use CDNs all the time without realizing it.",
|
||||
"As a developer, you may want to use CDNs like google libraries to help your page load more quickly.",
|
||||
"As a company, a CDN would be useful if you want your product or site to reach users more efficiently in the larger scheme of their network and the internet as a whole."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"139880437"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Content Delivery Networks are a service you can buy through your internet service provider to increase your network connectivity.",
|
||||
false,
|
||||
"CDNs are not provided through ISPs, but are clients of websites that in turn use servers from an ISP to better deliver the content of the original website to the user."
|
||||
],
|
||||
[
|
||||
"CDNs are popular and wide-reaching, and you've probably used one as a website user many times without even knowing it. The end result is that your experience was faster than it could have been without the CDNs services.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d80441eddfbeb5bddf",
|
||||
"title": "Analog vs Digital and File Compression",
|
||||
"description": [
|
||||
"How computers turn analog sound into digital files, and the pros and cons of data compression.",
|
||||
"Let's discuss analog vs digital on a very basic level.",
|
||||
"Most specifically, we'll talk about how computers interpret analog sound and turn it into a digital file.",
|
||||
"An analog sound wave could look like anything, but for this example it's a wavy line.",
|
||||
"The computer takes it and measures at lots of different points, turning them into numbers.",
|
||||
"This is called sampling.",
|
||||
"Later, the computer can take those numbers and turn them into sound again.",
|
||||
"Let's also discuss data compression.",
|
||||
"The benefit of compression is that it's a smaller file: it's easier to store, it's easier to send to someone else, and it just takes up less space.",
|
||||
"One of the ways this is done in sound is that the sampling is taken less often.",
|
||||
"Another way is that it takes the measurement from a median point instead of from 0, so the numbers recorded are smaller.",
|
||||
"In images, it's done by measuring groups of pixels by 16 instead of individually.",
|
||||
"The takeaway from this video is that you'll want to use digital files as they're a higher quality, and when you're looking at compression, you want to decide how far you are willing to go to ensure the user still has the best possible experience."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133182587"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Digital files can be made from analog sounds and analog sounds can be made from digital files.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Compression is not worth it, because it lessens quality.",
|
||||
false,
|
||||
"Sometimes compression is a great idea. It depends on what you're trying to do and what your end goal for the product is."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8b441eddfbeb5bddf",
|
||||
"title": "Routers and Packets",
|
||||
"description": [
|
||||
"In this video, we go into a little more detail about routers and packets, important concepts to understand about how the internet works.",
|
||||
"Let's talk more about routers and how they relate to networking.",
|
||||
"Routers are the things that connect different small area networks.",
|
||||
"I want to give a metaphor for this: I'm a teacher and I work at a school.",
|
||||
"Say I have a package that I need to get to someone who works in the district offices.",
|
||||
"I don't know where she is, I don't know where her office is located, but I know her name.",
|
||||
"I go to my secretary, like my first router, and I say \"Hey, I need to get this to so-and-so at the district office, can you please help me?\", and she'll say \"Sure, I don't know exactly where her office is either, but I know the next step, I can get it to the district\".",
|
||||
"So she goes on and sends it to the secretary at the district office, the next router.",
|
||||
"That secretary has no idea who I am or where I am, but she sees the name on the package and knows the end location.",
|
||||
"What I'm trying to get across here is that each router only has to know its own little network, the stops right next to it.",
|
||||
"It doesn't have to know the whole internet, but just its own connections.",
|
||||
"It can take information and say, alright, I don't know exactly where that's going, but I'll pass it along in the right direction.",
|
||||
"That's really all it takes.",
|
||||
"Routers can be different sizes, different capacities, but what they do is know their own neighborhood, take the information, and pass it in the right direction.",
|
||||
"Another thing we'll get into a little later is that the routers don't even have to have the full package of information.",
|
||||
"If one comptuer is trying to send information to another, the data might get split up between different routers and that's okay.",
|
||||
"The computers still know how to put the information back together correctly.",
|
||||
"The little pieces of information that are sent are called packets.",
|
||||
"Packets are actually little pieces of binary code (drawn on board).",
|
||||
"This is an example of what packets might look like, a visual representation of the electrical current that the computer can translate into 1's and 0's, which we all know is binary that can represent literally any digital data.",
|
||||
"These little packets are sent across through routers, and if a file is too large for one packet, it can be broken up into frames (smaller little packets).",
|
||||
"The frames don't have to take the same route to the end destination.",
|
||||
"They can take whichever route is open, whichever is fastest, and since they have the end IP address, all of the routers know where to send them.",
|
||||
"Once they get to the end destination, that computer knows how to put all of the information back together."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133181251"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Routers have to know the whole internet.",
|
||||
false,
|
||||
"Routers just have to know the stops around them to send information in the right direction."
|
||||
],
|
||||
[
|
||||
"Packets are little peices of binary code.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Packets have to be sent in one piece.",
|
||||
false,
|
||||
"packets can be broken up into frames."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7029d8c441eddfbeb5bddf",
|
||||
"title": "Source Code",
|
||||
"description": [
|
||||
"In this video we discuss what source code is, interpreters and compilers, and what open source means.",
|
||||
"Let's talk about source code: what source code is, where you'll see it, and how the computer makes sense of it.",
|
||||
"Source code itself is the actual text document that the programmer creates: they type it up, it's letters, numbers, and symbols.",
|
||||
"If you give that to somebody and have them look at that document on their computer, that's not going to help them view their email, it's not going to be a browser, it's just a text document.",
|
||||
"The computer has to have a way of interpreting that and making something really powerful run from it.",
|
||||
"There are two main ways this is done: either by an interpreter or a compiler.",
|
||||
"Every browser has an interpreter, and that's how javascript is processed.",
|
||||
"Other languages, like C++, are used with a compiler.",
|
||||
"Unlike an interpreter, the compiler does all of its work on the programmer's end.",
|
||||
"They send out their package, their product, and it's already been compiled, it can already run on a machine.",
|
||||
"Javascript, however, and other interpreter languages, you just write the javascript and the browser on the user's end has the capability to interpret it so you don't need a compiler.",
|
||||
"Everyone has an opinion to which is better (interpreter or compiler), but really each has their pros and cons, and it goes on a case by case basis.",
|
||||
"They're better at different things.",
|
||||
"Now, let's focus on what open source means.",
|
||||
"Free Code Camp is open source, meaning that all of the documentation and source code is open and accessable.",
|
||||
"You may be thinking, \"so what?\", but what's awesome is that if you want to change or improve Free Code Camp, you can write that improvement and maybe get it implemented.",
|
||||
"It's a great way for websites and software to grow in a strong and fast way because of the community working together to improve it.",
|
||||
"One unwritten rule of contributing to open source projects is that you should generally submit your improvements to also be open source, and by giving that improvement back to the public, you let others use your improvement as well."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133177129"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Source code is a text document.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Javascript is a compiler language.",
|
||||
false,
|
||||
"Javascript is an interpreter language"
|
||||
],
|
||||
[
|
||||
"Free Code Camp is open source.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7119d8c441eddfbeb5bddf",
|
||||
"title": "Variables In Code",
|
||||
"description": [
|
||||
"Variables are used frequently in Javascript and many other coding languages.",
|
||||
"In this video, we're going to talk about variables in code.",
|
||||
"Variables, just like in Algebra, are when you have a letter or a word and it represents something else.",
|
||||
"Here we're doing var x = \"Briana\". When we reference \"x\" later on, it's going to know that's Briana.",
|
||||
"When we console.log(x), it's going to output \"Briana\".",
|
||||
"But be careful - if we put console.log(\"x\"), with the x in quotation marks, it will output the letter \"x\".",
|
||||
"What I want you to take away from this video is that variables exist in code, and you can store everything from a simple string all the way up to a function, all within a simple name."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133172920"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Variables are useful in coding languages like JavaScript.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Variables can't stand for anything that isn't a string, number, or boolean.",
|
||||
false,
|
||||
"Variables can stand for things ranging from simple to very complex"
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd712bd8c441eddfbeb5bddf",
|
||||
"title": "What Do Programmers Do?",
|
||||
"description": [
|
||||
"Programmers (a.k.a. coders, developers, or software engineers) solve problems by turning big ideas into tiny steps that a computer can understand.",
|
||||
"In this video, we'll discuss what programmers do.",
|
||||
"Programmers can also be called coders, developers, or software engineers, and what all of these peple do is take ideas and turn them into functional code.",
|
||||
"It's not just creating that code, but also maintaining it.",
|
||||
"Let's look at how the computer looks at code, specifically javascript.",
|
||||
"The computer looks at code one line at a time, and as you're writing code, you will notice numbers on the left hand side.",
|
||||
"The computer literally goes down line by line, making sense of what each line has to say.",
|
||||
"Everything is done sequentially, just straight down, so refrencing something that is below and hasn't happened yet will lead to a problem.",
|
||||
"Computers just read straight down like you would read a book.",
|
||||
"Programmers are the ones responsible for breaking their ideas down into the little tiny steps and writing them in a way that computers can understand them."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133166912"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Computers look at code one line at a time",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Programmers and developers are totally different professions with very little in common.",
|
||||
false,
|
||||
"Those titles are so similar they could even describe the same job position."
|
||||
],
|
||||
[
|
||||
"Programmers take ideas and break them down into little tiny steps the computer can understand",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd712ad8c441eddfbeb5bddf",
|
||||
"title": "Console and Logging",
|
||||
"description": [
|
||||
"We discuss what (and where) the console is, why it's useful, and show a little of how it works.",
|
||||
"The console: what it is, where you can find it, and what you use it for.",
|
||||
"The console is very commonly used to display system adminstrative messages.",
|
||||
"Your browser and your computer both have their own consoles.",
|
||||
"Once you become famlliar with it, you will find it to be a very useful and powerful tool.",
|
||||
"In Javascript, the console is used as a great tool for debugging and finding out where in your code there's a problem.",
|
||||
"One of the most important terms you'll need to remember is \"console.log()\".",
|
||||
"The process of doing this can be put anywhere in the lines of code to help find, identify, and ultimately fix specific issues.",
|
||||
"Using the Chrome browser and the Chrome console, if we type in \"console.log(\"Free Code Camp rocks!\");\", the console will literally display \"Free Code Camp rocks!\".",
|
||||
"This will also work with numbers and booleans, which are true/false statements.",
|
||||
"When consoling words, it's important to put it inside of quotations so it recognizes it's a string."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133170880"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The console serves only small, unnecessary purposes.",
|
||||
false,
|
||||
"The console's main purpose is to debug, which is a vital step in creating code."
|
||||
],
|
||||
[
|
||||
"You can console strings (sets of words), numbers, and booleans (true/false statements)",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d89441eddfbeb5bddf",
|
||||
"title": "Computer Security",
|
||||
"description": [
|
||||
"The basics of computer security, and how to make sure you protect your information.",
|
||||
"Let's cover computer security.",
|
||||
"The first thing we're going to talk about is something called a dictionary attack which has to do with your passwords.",
|
||||
"When creating your passwords, some sites require extremely specific and complicated passwords, which is actually a bit unnecessary.",
|
||||
"The type of attacks they're trying to gaurd you from are dictionary attacks.",
|
||||
"Dictionary attacks are programmed to try every word in the dictionary, or in its own database of common words and passwords, as the password for a large mass of usernames.",
|
||||
"If your password is Kangaroo, they're probably going to break into your account.",
|
||||
"Most passwords aren't this simple, but that doesn't matter.",
|
||||
"They attack such a massive amount of accounts that they only need a few passwords that are relatively simple.",
|
||||
"When creating a password, you want to use different cases, numbers, and symbols, but one of the most effective ways to create a good password is to throw some random letters in there (ex: kangarooSyCA67).",
|
||||
"Also, stay away from sequential numbers.",
|
||||
"Phishing, another thing to watch out for, is emails or webpages that mimic other valid sites to try and trick people into entering their personal information, though the site truly isn't connected to the site it's trying to mimic.",
|
||||
"In general, two ways to safeguard from these attacks are checking the address in the browser and to open a new browser and go to the website that is claiming to contact you.",
|
||||
"Let's also discuss encryption and HTTPS.",
|
||||
"If you are at Starbucks trying to access your bank account, you have reason to be suspicious that someone could see and take your information.",
|
||||
"You will want to look for a green HTTPS instead of HTTP at the beginning of the web address.",
|
||||
"That means that the site you're sending your information to is encrypting your passwords and other information, scrambling up data according to a code that only they know.",
|
||||
"In general, whenever you're showing private or sensitive information, check for HTTPS.",
|
||||
"A few other general tips: don't share passwords between important accounts.",
|
||||
"If a site you use gets hacked into, your password may be compromised regardless of its strength.",
|
||||
"Also, don't download strange files.",
|
||||
"If you don't recognise the file type like .pdf, .txt, .jpg, be wary.",
|
||||
"Some of these files you download can be very powerful and even run your computer from the inside.",
|
||||
"Lastly, keep your software updated, particularly software that interacts with the internet.",
|
||||
"One way that information can be compromised is when 'bad guys' find holes and gaps in security of older versions of softwares.",
|
||||
"Those bugs have been patched in newer versions, so if you keep everything updated, you'll avoid lots of problems.",
|
||||
"These are all very basic things you should know about how to keep your information safe on your computer."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133186284"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Passwords should be shared with all of your accounts.",
|
||||
false,
|
||||
"Don't reuse important passwords"
|
||||
],
|
||||
[
|
||||
"If you don't trust a site or an email, open a new browser and re-enter the intended location.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Keeping software updated will help protect your computer and your information.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
|
62
challenges/04-video-challenges/dom.json
Normal file
62
challenges/04-video-challenges/dom.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"name": "The DOM",
|
||||
"order": 1,
|
||||
"time": "30 minutes",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "56b15f15632298c12f31518f",
|
||||
"title": "The DOM: What's the Document Object Model?",
|
||||
"description": [
|
||||
"The DOM is the browser's internal, progrematic representation of a webpage. Languages like javascript allow you to modify the DOM, and thus the website without editing the HTML of the page.",
|
||||
"Technically, the DOM is an API (application programming interface). There are many types of APIs, but this particular API interacts with XML and HTML documents. It's in charge of how those documents are accessed and manipulated.",
|
||||
"Really, you can do a lot with the dom, and if you're already scripting in JS and jQuery, you're already doing it.",
|
||||
"You can insert new things, elements, or alter style or content for elements that already exist.",
|
||||
"This can be done with pure javascript, like: document.getElementById(id), element.getElementsByTagName(name), or document.createElement(name).",
|
||||
"You can also use libraries like jQuery to simplify, standardize and automate manipulating the DOM, like: $('#box2').append('This will be added to box2!')"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"139879431"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The DOM is complex and difficult to access.",
|
||||
false,
|
||||
"The DOM is easily accessed and manipulated with JavaScript and jQuery."
|
||||
],
|
||||
[
|
||||
"The DOM is an API that is a part of the browser.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31518e",
|
||||
"title": "The DOM: Style in the Header, Script in the Footer",
|
||||
"description": [
|
||||
"Maybe you've been told that links to style sheets (CSS) should be included in the header and that links to script (JS) should be included in the footer. Ever asked yourself why?",
|
||||
"If you've ever seen a webpage that loads the text first, then after a bit loads the formatting and style, you've seen a page that didn't have the links to style and script in the correct places.",
|
||||
"This all has to do with how the browser decides it's loaded enough information to display. There's an event called 'DOMContentLoaded', and once that event happens, whatever is loaded will be displayed.",
|
||||
"The DOM will tell the browser it's ready once the HTML is loaded, and sometimes the CSS and JS hasn't caught up. However, if you place the CSS in the header and the JS in the footer, you can ensure that all content will be loaded before the DOM triggers the 'DOMContentLoaded' event, the event that shows the user your content.",
|
||||
"This is a simple explaination, as most of these videos are. For more information, I really liked this resource: ablogaboutcode.com/2011/06/14/how-javascript-loading-works-domcontentloaded-and-onload/"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"139879984"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Placing the style in the header and the script in the footer ensures the page is loaded for the user as you want it to appear.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"The CSS link should go in the header and the JS link should go in the footer. If you don't do it just that way, the webpage will crash.",
|
||||
false,
|
||||
"The webpage won't necessarily crash, but it might load in an unattractive or disfunctional way."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
}
|
||||
]
|
||||
}
|
262
challenges/04-video-challenges/jslingo.json
Normal file
262
challenges/04-video-challenges/jslingo.json
Normal file
@ -0,0 +1,262 @@
|
||||
{
|
||||
"name": "JavaScript Lingo",
|
||||
"order": 2,
|
||||
"time": "1 hour",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "56b15f15632298c12f31518c",
|
||||
"title": "JavaScript Lingo: MDN and Documentation",
|
||||
"description": [
|
||||
"This is a basic intro to MDN and the concept of documentation.",
|
||||
"MDN, Mozilla Developer Network, is a fanastic open source collaboration that documents not only JavaScript, but many other langauges and topics. If you haven't heard of them, you should check them out now. I get lots of information from developer.mozilla.org/en-US/docs/Web/JavaScript",
|
||||
"When I say documentation, I am talking about information that is provided about the product to its users. The documentation at MDN isn't necessarily written by the people behind JS. Brendan Eich created JS in 1995, but it's now a community driven project that continues to grow.",
|
||||
"As you continue to learn javascript, jQuery, and pretty much any languages or services for development or programming, documentation is your friend. ",
|
||||
"The faster you get comfortable reading and refrencing documentation, the faster you will grow as a developer.",
|
||||
"These videos aren't going to teach you javascript - you will be introduced to terms and concepts that will be valuable as you continue to practice and learn."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137072373"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Documentation is not a good way to learn a programming language.",
|
||||
false,
|
||||
"Documentation can be your best friend once you learn how to get the most from it."
|
||||
],
|
||||
[
|
||||
"Mozilla Developer Network is a great resource that should be referenced regularly.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Question 3",
|
||||
true,
|
||||
"Hint 3 - Optional"
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31518d",
|
||||
"title": "JavaScript Lingo: Value Types",
|
||||
"description": [
|
||||
"Learn about the three most basic types of values: booleans, strings, and numbers.",
|
||||
"A boolean is a true or false value. These words are special and reserved. You can't name a variable 'true', because that word is already universal as a boolean (as is 'false').",
|
||||
"A string is a set of characters that is set between either single (') or double (\") quotation marks. This string can be named 'true', as long as it's between those quotation marks.",
|
||||
"Numbers are pretty self-explanatory - a number is a value that consists only of digits, though it can also contain a decimal or a negative sign."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137072769"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Numbers can include decimals.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"If a value is text that isn't the word true or false, it's a string. ",
|
||||
false,
|
||||
"To be a string, the content must be wrapped in either single or double quotations."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31518b",
|
||||
"title": "JavaScript Lingo: Variables & camelCase",
|
||||
"description": [
|
||||
"We are going to cover what constitutes a variable, and the reasoning behind camelCase.",
|
||||
"A variable, also referred to as 'var', is the name or placeholder for a boolean, string, number, or other piece of static information.",
|
||||
"You can use google dev tools to inspect the Free Code Camp home page and look for some variables.",
|
||||
"You 'declare' variables the first time with 'var' in front of it, but those can be referenced later in your script.",
|
||||
"camelCase is the way that JavaScript pushes words together and still keeps them legible. The first letter of the first word is lowercase, along with the remainder of the word, but the first letter of every consecutive word is capitalized. There are no spaces. Examples: brianaLovesHerPets, bestFoodIsCheese, and codeIsWorthLearning.",
|
||||
"When you name variables, utilize camelCase. Also try to keep the names descriptive and short so that others (and yourself!) can tell what that variable is referring to just by the name."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137078492"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"camelCase is manditory in JavaScript.",
|
||||
false,
|
||||
"Though camelCase is widely used, it isn't manditory. It's not a bad idea to get used to using it sooner rather than later."
|
||||
],
|
||||
[
|
||||
"Variables can only hold information that is a boolean, string, or number.",
|
||||
false,
|
||||
"Variables can hold all kinds of static information including arrays and objects."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f31518a",
|
||||
"title": "JavaScript Lingo: Arrays & Objects",
|
||||
"description": [
|
||||
"If you want to store more than one piece of information to a variable, you can do so by creating an array or an object.",
|
||||
"**Disclaimer: Objects in JS are not exactly the same as objects in other languages. We will discuss objects here as they pertain to JS.",
|
||||
"Arrays are sets of data between [square, brackets]. Data is separated by commas. That data can be in the form of a boolean, string, number, or even another array. We call that a nested array.",
|
||||
"Objects are a type of data that can look or behave similar to an array in the way that it's more data stored in one variable in an organized way. You'll hear it referred to as JSON, and when you make API calls to other sites (getting information to display on your own page) it will frequently be returned in JSON.",
|
||||
"An example of object notation is: var obj = {'name' : 'Briana', 'food' : 'cheese', 'dog' : 'Maurice'};",
|
||||
"Notice the curly brackets, the 'keys' with values like name or food,, and the value called a 'property' that is tied to the 'key', like Briana or cheese. These are ALL stored as strings, although booleans, numbers, and other types of data are also valid."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137080554"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Arrays are easy to spot because of their [square brackets]. ",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Objects in JavaScript are the same as objects in every other language.",
|
||||
false,
|
||||
"Objects in JS are slightly different, but as long as you understand the context for JS, you'll be fine until you decide to learn one of those other languages."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315189",
|
||||
"title": "JavaScript Lingo: Finding and Indexing Data in Arays",
|
||||
"description": [
|
||||
"There are many reasons you might need to access a certain piece of data from within a larger set, and you do that by referencing it's index.",
|
||||
"We won't get into syntax now, but you should know that the first thing in an array is actually index 0.",
|
||||
"This goes for strings and objects, too. All of these indices start at 0, so if you're looking asking the code to find indexArr[2], you're really going to get the third piece of information in that array."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137081193"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The first entry in array has the index of 1.",
|
||||
false,
|
||||
"The first entry in an array has an index of 0."
|
||||
],
|
||||
[
|
||||
"Arrays must contain all of the same type of information, like booleans.",
|
||||
false,
|
||||
"Arrays can contain any mix of data types."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315188",
|
||||
"title": "JavaScript Lingo: Manipulating Data",
|
||||
"description": [
|
||||
"Methods and functions are ways you can manipulate variables or other sets of information.",
|
||||
"Methods are built in to JavaScript, and you will become more familliar with these as you write functions for the bonfires.",
|
||||
"I'd suggest looking through the MDN (Mozilla Developer Network that we discussed in the first video) to familliarize yourself with the sheer amount and general potential for the methods that exist. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Methods_Index",
|
||||
"Examples include '.split(' ')', which will turn a string into an array and can do so in many different ways. Methods are powerful - many times when you want your script to do something, there's a method for that.",
|
||||
"Functions, like variables, are something you define and create.",
|
||||
"During your algorithm practice at Free Code Camp, you will create functions that take a certain piece of information and manipulate it in whatever way you choose.",
|
||||
"You'll become more familliar with syntax there, but for now, just remember that with methods and functions you can do almost anything with your code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137081423"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Whenever there's a specific manipulation you want to apply, you should check the methods before writing your own code.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"When writing your own functions, you should keep your code clean by only using minimal amounts of methods. ",
|
||||
false,
|
||||
"Methods are there to help you! Use them in your own functions as well as on their own."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315187",
|
||||
"title": "JavaScript Lingo: Math",
|
||||
"description": [
|
||||
"There is a static object named 'Math' in JS with many built in properties and methods.",
|
||||
"You'll want to investigate this further whenever you're manipulating numbers. Check MDN documentation before writing your own functions, because they may already be defined there.",
|
||||
"Examples include Math.random() which will return a random number in a given range and Math.round() which will round the input to the nearest integer.",
|
||||
"I used Math.random() when I built the random quote generator for the Free Code Camp front end development project.",
|
||||
"When you're working with numbers, you should also be aware that JS has an interesting attribute called 'floating-point format'.",
|
||||
"Depending on the amount of numbers, the size of those numbers, and the number of computations, JS may return something that is inaccurate by .00004.",
|
||||
"There are ways around this, and in general it doesn't pose issues, but it's something you should be aware of in the event you run into some problems that aren't making sense."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137081785"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"When talking about Math in JavaScript, all of the methods and functions work like they would on any calculator.",
|
||||
false,
|
||||
"Remember 'floating-point format'."
|
||||
],
|
||||
[
|
||||
"There are special methods and functions specific for the 'Math' object.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315186",
|
||||
"title": "JavaScript Lingo: Loops",
|
||||
"description": [
|
||||
"If there's a set of data, (we'll use an array for this example, but it doesn't have to be,) and you want to perform the same manipulation to every piece in that set of data, you can use something called a loop.",
|
||||
"Loops have some complex syntax to get used to at first, but once you have it, they're extremely useful. I used loops in many of my algorithm solutions.",
|
||||
"You don't need to understand everything here - just know that loops exist when you need to traverse a set of data and they can cut down on the amount of code you need to write."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137082032"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"There's only one type of loop.",
|
||||
false,
|
||||
"There are many types of loops that fit many different needs."
|
||||
],
|
||||
[
|
||||
"Loops can only traverse arrays.",
|
||||
false,
|
||||
"Loops can be built to fit many different situations."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "56b15f15632298c12f315185",
|
||||
"title": "JavaScript Lingo: Regular Expressions",
|
||||
"description": [
|
||||
"RegExp is not formatted like anything else in JS, and can have a steep learning curve.",
|
||||
"RegExp can also be an incredibly useful and efficient tool.",
|
||||
"Using RegExp, you can match, replace, search, and split a string, one of the more difficult types of values to manipulate.",
|
||||
"Like with all of the other videos, we won't get into the nitty gritty, but I want to show you a few examples of where RegExp is useful.",
|
||||
"If you wanted to create a registration page that verified passwords contained at least a number and a capital letter, you could use RegExp.",
|
||||
"If you wanted to ensure that dates entered in a page were all valid dates in the future, you could use RegExp.",
|
||||
"While there are limitless ways to use RegExp, many of them include validating or automatically editing information."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"137082304"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"RegExp can be a useful tool when working with strings. ",
|
||||
true
|
||||
],
|
||||
[
|
||||
"RegExp can be intimidating, and if you don't like it, you can probably just avoid using it.",
|
||||
false,
|
||||
"Be patient with RegExp and with yourself. It can be a great tool that saves you from writing too much or inefficient code."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
}
|
||||
]
|
||||
}
|
@ -1,325 +0,0 @@
|
||||
{
|
||||
"name": "Programming",
|
||||
"order": 0.05,
|
||||
"time": "3 hours",
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd712bd8c441eddfbeb5bddf",
|
||||
"title": "What Do Programmers Do?",
|
||||
"description": [
|
||||
"Programmers (a.k.a. coders, developers, or software engineers) solve problems by turning big ideas into tiny steps that a computer can understand.",
|
||||
"In this video, we'll discuss what programmers do.",
|
||||
"Programmers can also be called coders, developers, or software engineers, and what all of these peple do is take ideas and turn them into functional code.",
|
||||
"It's not just creating that code, but also maintaining it.",
|
||||
"Let's look at how the computer looks at code, specifically javascript.",
|
||||
"The computer looks at code one line at a time, and as you're writing code, you will notice numbers on the left hand side.",
|
||||
"The computer literally goes down line by line, making sense of what each line has to say.",
|
||||
"Everything is done sequentially, just straight down, so refrencing something that is below and hasn't happened yet will lead to a problem.",
|
||||
"Computers just read straight down like you would read a book.",
|
||||
"Programmers are the ones responsible for breaking their ideas down into the little tiny steps and writing them in a way that computers can understand them."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133166912"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Computers look at code one line at a time",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Programmers and developers are totally different professions with very little in common.",
|
||||
false,
|
||||
"Those titles are so similar they could even describe the same job position."
|
||||
],
|
||||
[
|
||||
"Programmers take ideas and break them down into little tiny steps the computer can understand",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd712ad8c441eddfbeb5bddf",
|
||||
"title": "Console and Logging",
|
||||
"description": [
|
||||
"We discuss what (and where) the console is, why it's useful, and show a little of how it works.",
|
||||
"The console: what it is, where you can find it, and what you use it for.",
|
||||
"The console is very commonly used to display system adminstrative messages.",
|
||||
"Your browser and your computer both have their own consoles.",
|
||||
"Once you become famlliar with it, you will find it to be a very useful and powerful tool.",
|
||||
"In Javascript, the console is used as a great tool for debugging and finding out where in your code there's a problem.",
|
||||
"One of the most important terms you'll need to remember is \"console.log()\".",
|
||||
"The process of doing this can be put anywhere in the lines of code to help find, identify, and ultimately fix specific issues.",
|
||||
"Using the Chrome browser and the Chrome console, if we type in \"console.log(\"Free Code Camp rocks!\");\", the console will literally display \"Free Code Camp rocks!\".",
|
||||
"This will also work with numbers and booleans, which are true/false statements.",
|
||||
"When consoling words, it's important to put it inside of quotations so it recognizes it's a string."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133170880"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"The console serves only small, unnecessary purposes.",
|
||||
false,
|
||||
"The console's main purpose is to debug, which is a vital step in creating code."
|
||||
],
|
||||
[
|
||||
"You can console strings (sets of words), numbers, and booleans (true/false statements)",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7119d8c441eddfbeb5bddf",
|
||||
"title": "Variables In Code",
|
||||
"description": [
|
||||
"Variables are used frequently in Javascript and many other coding languages.",
|
||||
"In this video, we're going to talk about variables in code.",
|
||||
"Variables, just like in Algebra, are when you have a letter or a word and it represents something else.",
|
||||
"Here we're doing var x = \"Briana\". When we reference \"x\" later on, it's going to know that's Briana.",
|
||||
"When we console.log(x), it's going to output \"Briana\".",
|
||||
"But be careful - if we put console.log(\"x\"), with the x in quotation marks, it will output the letter \"x\".",
|
||||
"What I want you to take away from this video is that variables exist in code, and you can store everything from a simple string all the way up to a function, all within a simple name."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133172920"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Variables are useful in coding languages like JavaScript.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Variables can't stand for anything that isn't a string, number, or boolean.",
|
||||
false,
|
||||
"Variables can stand for things ranging from simple to very complex"
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7029d8c441eddfbeb5bddf",
|
||||
"title": "Source Code",
|
||||
"description": [
|
||||
"In this video we discuss what source code is, interpreters and compilers, and what open source means.",
|
||||
"Let's talk about source code: what source code is, where you'll see it, and how the computer makes sense of it.",
|
||||
"Source code itself is the actual text document that the programmer creates: they type it up, it's letters, numbers, and symbols.",
|
||||
"If you give that to somebody and have them look at that document on their computer, that's not going to help them view their email, it's not going to be a browser, it's just a text document.",
|
||||
"The computer has to have a way of interpreting that and making something really powerful run from it.",
|
||||
"There are two main ways this is done: either by an interpreter or a compiler.",
|
||||
"Every browser has an interpreter, and that's how javascript is processed.",
|
||||
"Other languages, like C++, are used with a compiler.",
|
||||
"Unlike an interpreter, the compiler does all of its work on the programmer's end.",
|
||||
"They send out their package, their product, and it's already been compiled, it can already run on a machine.",
|
||||
"Javascript, however, and other interpreter languages, you just write the javascript and the browser on the user's end has the capability to interpret it so you don't need a compiler.",
|
||||
"Everyone has an opinion to which is better (interpreter or compiler), but really each has their pros and cons, and it goes on a case by case basis.",
|
||||
"They're better at different things.",
|
||||
"Now, let's focus on what open source means.",
|
||||
"Free Code Camp is open source, meaning that all of the documentation and source code is open and accessable.",
|
||||
"You may be thinking, \"so what?\", but what's awesome is that if you want to change or improve Free Code Camp, you can write that improvement and maybe get it implemented.",
|
||||
"It's a great way for websites and software to grow in a strong and fast way because of the community working together to improve it.",
|
||||
"One unwritten rule of contributing to open source projects is that you should generally submit your improvements to also be open source, and by giving that improvement back to the public, you let others use your improvement as well."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133177129"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Source code is a text document.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Javascript is a compiler language.",
|
||||
false,
|
||||
"Javascript is an interpreter language"
|
||||
],
|
||||
[
|
||||
"Free Code Camp is open source.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8b441eddfbeb5bddf",
|
||||
"title": "Routers and Packets",
|
||||
"description": [
|
||||
"In this video, we go into a little more detail about routers and packets, important concepts to understand about how the internet works.",
|
||||
"Let's talk more about routers and how they relate to networking.",
|
||||
"Routers are the things that connect different small area networks.",
|
||||
"I want to give a metaphor for this: I'm a teacher and I work at a school.",
|
||||
"Say I have a package that I need to get to someone who works in the district offices.",
|
||||
"I don't know where she is, I don't know where her office is located, but I know her name.",
|
||||
"I go to my secretary, like my first router, and I say \"Hey, I need to get this to so-and-so at the district office, can you please help me?\", and she'll say \"Sure, I don't know exactly where her office is either, but I know the next step, I can get it to the district\".",
|
||||
"So she goes on and sends it to the secretary at the district office, the next router.",
|
||||
"That secretary has no idea who I am or where I am, but she sees the name on the package and knows the end location.",
|
||||
"What I'm trying to get across here is that each router only has to know its own little network, the stops right next to it.",
|
||||
"It doesn't have to know the whole internet, but just its own connections.",
|
||||
"It can take information and say, alright, I don't know exactly where that's going, but I'll pass it along in the right direction.",
|
||||
"That's really all it takes.",
|
||||
"Routers can be different sizes, different capacities, but what they do is know their own neighborhood, take the information, and pass it in the right direction.",
|
||||
"Another thing we'll get into a little later is that the routers don't even have to have the full package of information.",
|
||||
"If one comptuer is trying to send information to another, the data might get split up between different routers and that's okay.",
|
||||
"The computers still know how to put the information back together correctly.",
|
||||
"The little pieces of information that are sent are called packets.",
|
||||
"Packets are actually little pieces of binary code (drawn on board).",
|
||||
"This is an example of what packets might look like, a visual representation of the electrical current that the computer can translate into 1's and 0's, which we all know is binary that can represent literally any digital data.",
|
||||
"These little packets are sent across through routers, and if a file is too large for one packet, it can be broken up into frames (smaller little packets).",
|
||||
"The frames don't have to take the same route to the end destination.",
|
||||
"They can take whichever route is open, whichever is fastest, and since they have the end IP address, all of the routers know where to send them.",
|
||||
"Once they get to the end destination, that computer knows how to put all of the information back together."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133181251"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Routers have to know the whole internet.",
|
||||
false,
|
||||
"Routers just have to know the stops around them to send information in the right direction."
|
||||
],
|
||||
[
|
||||
"Packets are little peices of binary code.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Packets have to be sent in one piece.",
|
||||
false,
|
||||
"packets can be broken up into frames."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d8a441eddfbeb5bddf",
|
||||
"title": "Hardware: Chips and Moore's Law",
|
||||
"description": [
|
||||
"We discuss what constitutes a chip and why technology gets cheaper every year.",
|
||||
"In this video we are going to be talking about chips and something called Moore's Law.",
|
||||
"You've probably noticed over the last 10 or so years, if you're going to go buy an MP3 player, you can get a lot more storage for a lot lower price.",
|
||||
"You probably have even done the thing where you're at the store and you think, \"Well, I can get one now, or I could wait 6 months and see how far the price has dropped\", which might sound ridiculous but this is actually a trend that's been happening for a long time.",
|
||||
"Let's talk about what makes a chip.",
|
||||
"A chip is full of these little things called transistors, which are switches that can either be a 1 or a 0 (noticing a theme here?).",
|
||||
"All of these transistors fit onto a chip, and that's how it stores information.",
|
||||
"What makes these chips larger/faster is the amount of transistors on a single chip.",
|
||||
"Moore's Law is the observation that the amount of transistors fit on each chip has doubled every two years since 1965.",
|
||||
"This is important because it's making technology more affordable and accessible."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133182057"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Chips have transistors, little switches that can store a 1 or a 0.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Moore's Law is the observation that technology doubles in speed every year.",
|
||||
false,
|
||||
"Moore's Law is the observation that the number of transistors per chip doubles every 2 years)."
|
||||
],
|
||||
[
|
||||
"Moore's Law has slowed down in recent years.",
|
||||
false,
|
||||
"Somehow this continues to be true."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d80441eddfbeb5bddf",
|
||||
"title": "Analog vs Digital and File Compression",
|
||||
"description": [
|
||||
"How computers turn analog sound into digital files, and the pros and cons of data compression.",
|
||||
"Let's discuss analog vs digital on a very basic level.",
|
||||
"Most specifically, we'll talk about how computers interpret analog sound and turn it into a digital file.",
|
||||
"An analog sound wave could look like anything, but for this example it's a wavy line.",
|
||||
"The computer takes it and measures at lots of different points, turning them into numbers.",
|
||||
"This is called sampling.",
|
||||
"Later, the computer can take those numbers and turn them into sound again.",
|
||||
"Let's also discuss data compression.",
|
||||
"The benefit of compression is that it's a smaller file: it's easier to store, it's easier to send to someone else, and it just takes up less space.",
|
||||
"One of the ways this is done in sound is that the sampling is taken less often.",
|
||||
"Another way is that it takes the measurement from a median point instead of from 0, so the numbers recorded are smaller.",
|
||||
"In images, it's done by measuring groups of pixels by 16 instead of individually.",
|
||||
"The takeaway from this video is that you'll want to use digital files as they're a higher quality, and when you're looking at compression, you want to decide how far you are willing to go to ensure the user still has the best possible experience."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133182587"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Digital files can be made from analog sounds and analog sounds can be made from digital files.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Compression is not worth it, because it lessens quality.",
|
||||
false,
|
||||
"Sometimes compression is a great idea. It depends on what you're trying to do and what your end goal for the product is."
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
},
|
||||
{
|
||||
"id": "bd7129d89441eddfbeb5bddf",
|
||||
"title": "Computer Security",
|
||||
"description": [
|
||||
"The basics of computer security, and how to make sure you protect your information.",
|
||||
"Let's cover computer security.",
|
||||
"The first thing we're going to talk about is something called a dictionary attack which has to do with your passwords.",
|
||||
"When creating your passwords, some sites require extremely specific and complicated passwords, which is actually a bit unnecessary.",
|
||||
"The type of attacks they're trying to gaurd you from are dictionary attacks.",
|
||||
"Dictionary attacks are programmed to try every word in the dictionary, or in its own database of common words and passwords, as the password for a large mass of usernames.",
|
||||
"If your password is Kangaroo, they're probably going to break into your account.",
|
||||
"Most passwords aren't this simple, but that doesn't matter.",
|
||||
"They attack such a massive amount of accounts that they only need a few passwords that are relatively simple.",
|
||||
"When creating a password, you want to use different cases, numbers, and symbols, but one of the most effective ways to create a good password is to throw some random letters in there (ex: kangarooSyCA67).",
|
||||
"Also, stay away from sequential numbers.",
|
||||
"Phishing, another thing to watch out for, is emails or webpages that mimic other valid sites to try and trick people into entering their personal information, though the site truly isn't connected to the site it's trying to mimic.",
|
||||
"In general, two ways to safeguard from these attacks are checking the address in the browser and to open a new browser and go to the website that is claiming to contact you.",
|
||||
"Let's also discuss encryption and HTTPS.",
|
||||
"If you are at Starbucks trying to access your bank account, you have reason to be suspicious that someone could see and take your information.",
|
||||
"You will want to look for a green HTTPS instead of HTTP at the beginning of the web address.",
|
||||
"That means that the site you're sending your information to is encrypting your passwords and other information, scrambling up data according to a code that only they know.",
|
||||
"In general, whenever you're showing private or sensitive information, check for HTTPS.",
|
||||
"A few other general tips: don't share passwords between important accounts.",
|
||||
"If a site you use gets hacked into, your password may be compromised regardless of its strength.",
|
||||
"Also, don't download strange files.",
|
||||
"If you don't recognise the file type like .pdf, .txt, .jpg, be wary.",
|
||||
"Some of these files you download can be very powerful and even run your computer from the inside.",
|
||||
"Lastly, keep your software updated, particularly software that interacts with the internet.",
|
||||
"One way that information can be compromised is when 'bad guys' find holes and gaps in security of older versions of softwares.",
|
||||
"Those bugs have been patched in newer versions, so if you keep everything updated, you'll avoid lots of problems.",
|
||||
"These are all very basic things you should know about how to keep your information safe on your computer."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"133186284"
|
||||
],
|
||||
"tests": [
|
||||
[
|
||||
"Passwords should be shared with all of your accounts.",
|
||||
false,
|
||||
"Don't reuse important passwords"
|
||||
],
|
||||
[
|
||||
"If you don't trust a site or an email, open a new browser and re-enter the intended location.",
|
||||
true
|
||||
],
|
||||
[
|
||||
"Keeping software updated will help protect your computer and your information.",
|
||||
true
|
||||
]
|
||||
],
|
||||
"type": "hike",
|
||||
"challengeType": 6
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user