diff --git a/Arrays.ipynb b/Arrays.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..e46ab12a09a82bc1ec4c89a931d6c05ee90e36a6 --- /dev/null +++ b/Arrays.ipynb @@ -0,0 +1,342 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 32, + "id": "fc73d74c", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "('answercheck.py', <http.client.HTTPMessage at 0x7fc9a8612220>)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "##ANSWER##\n", + "#Install answercheck in current director\n", + "from urllib.request import urlretrieve\n", + "urlretrieve('https://raw.githubusercontent.com/colbrydi/jupytercheck/master/answercheck.py', filename='answercheck.py')\n", + "##ANSWER##" + ] + }, + { + "cell_type": "markdown", + "id": "3c2a4f39", + "metadata": {}, + "source": [ + "# Arrays\n", + "Learning how to use Arrays and how they work" + ] + }, + { + "cell_type": "markdown", + "id": "2b78245b", + "metadata": {}, + "source": [ + "Arrrrays: \n", + "\n", + "\n", + " \n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "12d889db", + "metadata": {}, + "source": [ + "## Description\n", + "Arrays are used to store multiple values in a single variable, instead of declaring separate variables for each value." + ] + }, + { + "cell_type": "markdown", + "id": "58ec20e8", + "metadata": {}, + "source": [ + "## Self Assessment\n", + "\n", + "Questions that test for the learning goals and allows students to evaluate if they truly understand the topics." + ] + }, + { + "cell_type": "markdown", + "id": "e4ef8001", + "metadata": {}, + "source": [ + "✅ **<span style=\"color:red\">Question:</span>** Write a C++ program to find the largest element of a given array of integers.\n", + "\n", + "\n", + "Original array: 5 4 9 12 8 \n", + "\n", + "Largest element of the said array: 12\n", + "\n", + "Test Case 0:\n", + "\n", + " int original[] = {5, 4, 9, 12, 8};\n", + " int expected = 12\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7e1b6887", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Writing array1.cpp\n" + ] + } + ], + "source": [ + "%%writefile array1.cpp\n", + "\n", + "#include <iostream>\n", + " \n", + "int main () {\n", + " std::cout << \"Hello World\" << std::endl;\n", + " return 0;\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "977dc774", + "metadata": {}, + "outputs": [], + "source": [ + "!g++ array1.cpp -o array1.exe " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "27c6eb99", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello World\r\n" + ] + } + ], + "source": [ + "!./array1.exe" + ] + }, + { + "cell_type": "markdown", + "id": "64b34f55", + "metadata": {}, + "source": [ + "✅ **<span style=\"color:red\">Question:</span>** Write a C++ program to find the most occurring element in an array of integers.\n", + "\n", + "\n", + "Original array: 4 5 9 12 9 22 45 7 \n", + "\n", + "Most occurred number: 9 \n", + "\n", + "Test Case 0:\n", + "\n", + " int original[] = {4, 5, 9, 12, 9, 22, 45, 7};\n", + " int expected = 9\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6d721b7", + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile array2.cpp\n", + "\n", + "#include <iostream>\n", + " \n", + "int main () {\n", + " std::cout << \"Hello World\" << std::endl;\n", + " return 0;\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a9fbda4", + "metadata": {}, + "outputs": [], + "source": [ + "!g++ array2.cpp -o array2.exe " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad140d7e", + "metadata": {}, + "outputs": [], + "source": [ + "!./array2.exe" + ] + }, + { + "cell_type": "markdown", + "id": "a52f65f3", + "metadata": {}, + "source": [ + "✅ **<span style=\"color:red\">Question:</span>** Write a function (named \"templated_array_copy\") that takes two parameters (two arrays of the same type). It copies the first array into the second. Note, it the arrays are different sizes, only copy what fits.\n", + "\n", + "Test Case 0:\n", + "\n", + " double source[] = {1, 2, 5, 6};\n", + " double dest[] = {9.4, 4, 5};\n", + " double expected[] = {1, 2, 5};\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a23d897", + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile array3.cpp\n", + "\n", + "#include <iostream>\n", + " \n", + "int main () {\n", + " std::cout << \"Hello World\" << std::endl;\n", + " return 0;\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47a750c2", + "metadata": {}, + "outputs": [], + "source": [ + "!g++ array3.cpp -o array3.exe " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3eec186f", + "metadata": {}, + "outputs": [], + "source": [ + "!./array3.exe" + ] + }, + { + "cell_type": "markdown", + "id": "5d237ca9", + "metadata": {}, + "source": [ + "## Training Materials\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "21f9b14e", + "metadata": {}, + "source": [ + "Array material with some exercises (https://www.w3schools.com/cpp/cpp_arrays.asp)\n", + "\n", + "Array material (https://www.programiz.com/cpp-programming/arrays)\n", + "\n", + "Arrays in 7 minutes (https://youtu.be/3e1YNCQUJyo)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "deeec8f7", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "image/jpeg": "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OIGHJqy88PQj818/ctbjW2dU+75Ab+Ln0cq7ovOrydabnU1t7X/6PewWEpYOiqVFWir2V29ru9vtZYjqn3fIDfxc+jk6p93yA38XPo5V3RYeJjuNrMyxHVPu+QG/i59HJ1T7vkBv4ufRyruicTHcMzLEdU+75Ab+Ln0cnVPu+QG/i59HKu6JxMdwzMsR1T7vkBv4ufRydU+75Ab+Ln0cq7onEx3DMyxHVPu+QG/i59HJ1T7vkBv4ufRyruicTHcMzLEdU+75Ab+Ln0cnVPu+QG/i59HKu6JxMdwzMsR1T7vkBv4ufRydU+75Ab+Ln0cq7onEx3DMyxHVPu+QG/i59HJ1T7vkBv4ufRyruicTHcMzLEdU+75Ab+Ln0cnVPu+QG/i59HKu6JxMdwzMsR1T7vkBv4ufRydU+75Ab+Ln0cq7onEx3DMwiIspaEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAERbruabmOKY8S+lYyGlY7JJWVBcyAOFszIw1pdPKAeBosNmYtuqNpbQkaUisDVexkqBFeLGIXzAbGSUUkUTjbYNY2d7mi/HlPzLGYb7G3FZImvmrqKnkJeHQlssuXK9zQRIwWc1zQHDgNni4BuFZxsd5dlZCKLbIdB5nY9+wBPEJ+i30nRGV+pzMY55fl91lIaftUh4h7GzFWRl0NdQzyXYGx5Zogcz2tc50jgcrWtJcbAmzSACSAquaW0pZkIIpf3SdxB+CYRNicmJMqHwvp2ugjpXMYdfPHD1szpiet1l9rNtuJevAPY8V9ZSUtW3EqNjaqnhqGsdFOXMbNG2QNcRsJAdbZyJxkRlZCqKedH/Y01src1biUFK4uIbHDTuqjluQ10jzJG1riLHK3Na/CoPioZZKgU0LHzTOmMMUcbC6SV+Yta1jBckm3AqxmnsDTR5kU5aMexuxGeNslfXU9A5wvqI4jWSsBA2SvEjI2vvfY0vHdXFf7GzE21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\n", + "text/html": [ + "\n", + " <iframe\n", + " width=\"100%\"\n", + " height=\"360\"\n", + " src=\"https://www.youtube.com/embed/3e1YNCQUJyo?cc_load_policy=True\"\n", + " frameborder=\"0\"\n", + " allowfullscreen\n", + " ></iframe>\n", + " " + ], + "text/plain": [ + "<IPython.lib.display.YouTubeVideo at 0x7fcab1b48cd0>" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import YouTubeVideo\n", + "YouTubeVideo(\"3e1YNCQUJyo\",width=\"100%\", height=360, cc_load_policy=True)" + ] + }, + { + "cell_type": "markdown", + "id": "44b461a0", + "metadata": {}, + "source": [ + "---\n", + "\n", + "Written by <<YOUR NAME HERE>>, Michigan State University \n", + "As part of the Data Science Bridge Project \n", + " \n", + "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">Creative Commons Attribution-NonCommercial 4.0 International License</a>." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/RStudio.ipynb b/RStudio.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2565e5051ab7dbf93242f6c2d85add50e16aafda --- /dev/null +++ b/RStudio.ipynb @@ -0,0 +1,131 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 32, + "id": "fc73d74c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('answercheck.py', <http.client.HTTPMessage at 0x7fc9a8612220>)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "##ANSWER##\n", + "#Install answercheck in current director\n", + "from urllib.request import urlretrieve\n", + "urlretrieve('https://raw.githubusercontent.com/colbrydi/jupytercheck/master/answercheck.py', filename='answercheck.py')\n", + "##ANSWER##" + ] + }, + { + "cell_type": "markdown", + "id": "3c2a4f39", + "metadata": {}, + "source": [ + "# R Studio/R\n", + "Getting the basics of RStudio/R" + ] + }, + { + "cell_type": "markdown", + "id": "2b78245b", + "metadata": {}, + "source": [ + "R Studio: \n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "71e867d9", + "metadata": {}, + "source": [ + "## Description\n", + "RStudio is an integrated development environment (IDE) for R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management." + ] + }, + { + "cell_type": "markdown", + "id": "58ec20e8", + "metadata": {}, + "source": [ + "## Self Assessment\n", + "\n", + "Questions that test for the learning goals and allows students to evaluate if they truly understand the topics." + ] + }, + { + "cell_type": "markdown", + "id": "eab504b5", + "metadata": {}, + "source": [ + "✅ **<span style=\"color:red\">Question:</span>** Did you manage to download R Studio/R and run simple codes?\n", + "\n", + "1. Yes\n", + "2. No" + ] + }, + { + "cell_type": "markdown", + "id": "5d237ca9", + "metadata": {}, + "source": [ + "## Training Materials\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "21f9b14e", + "metadata": {}, + "source": [ + "Tutorial on how to download and write simple code in R Studio - (https://www.stt.msu.edu/users/melfi/STT180Text/introduction-to-r-and-rstudio.html)" + ] + }, + { + "cell_type": "markdown", + "id": "44b461a0", + "metadata": {}, + "source": [ + "---\n", + "\n", + "Written by <<YOUR NAME HERE>>, Michigan State University \n", + "As part of the Data Science Bridge Project \n", + " \n", + "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">Creative Commons Attribution-NonCommercial 4.0 International License</a>." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Visual_Studio.ipynb b/Visual_Studio.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2360144bdd963b78e6d04e860be22b5ce7443c31 --- /dev/null +++ b/Visual_Studio.ipynb @@ -0,0 +1,131 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "fc73d74c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('answercheck.py', <http.client.HTTPMessage at 0x7fd12473a940>)" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "##ANSWER##\n", + "#Install answercheck in current director\n", + "from urllib.request import urlretrieve\n", + "urlretrieve('https://raw.githubusercontent.com/colbrydi/jupytercheck/master/answercheck.py', filename='answercheck.py')\n", + "##ANSWER##" + ] + }, + { + "cell_type": "markdown", + "id": "3c2a4f39", + "metadata": {}, + "source": [ + "# Visual Studio\n", + "Understanding Visual Studio and how to properly use it" + ] + }, + { + "cell_type": "markdown", + "id": "2b78245b", + "metadata": {}, + "source": [ + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "71e867d9", + "metadata": {}, + "source": [ + "## Description\n", + "Visual Studio empowers you to complete the entire development cycle in one place. For example, you can edit, debug, test, version control, and deploy to the cloud. With the diversity of features and languages in Visual Studio, you can grow from writing your first piece of code to developing in multiple project types. For example, you can build desktop and web apps with .NET, Mobile and gaming apps with C++.\n" + ] + }, + { + "cell_type": "markdown", + "id": "58ec20e8", + "metadata": {}, + "source": [ + "## Self Assessment\n", + "\n", + "Questions that test for the learning goals and allows students to evaluate if they truly understand the topics." + ] + }, + { + "cell_type": "markdown", + "id": "b4d54efb", + "metadata": {}, + "source": [ + "✅ **<span style=\"color:red\">Question:</span>** Did you manage to download Visial Studio and run \"Hello World\":\n", + "\n", + "1. Yes\n", + "2. No" + ] + }, + { + "cell_type": "markdown", + "id": "5d237ca9", + "metadata": {}, + "source": [ + "## Training Materials\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "21f9b14e", + "metadata": {}, + "source": [ + "https://code.visualstudio.com/docs/introvideos/basics - Getting started with Visual Studio Code with Video Tutorial\n", + "\n", + "https://visualstudio.microsoft.com/vs/getting-started/ - Learn to code in Visual Studio with Video Tutorials" + ] + }, + { + "cell_type": "markdown", + "id": "44b461a0", + "metadata": {}, + "source": [ + "---\n", + "\n", + "Written by <<YOUR NAME HERE>>, Michigan State University \n", + "As part of the Data Science Bridge Project \n", + " \n", + "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">Creative Commons Attribution-NonCommercial 4.0 International License</a>." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}