Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronjnewman committed Aug 25, 2023
1 parent 5806114 commit 3c83d9c
Show file tree
Hide file tree
Showing 13 changed files with 1,127 additions and 17 deletions.
4 changes: 2 additions & 2 deletions 1-intro/ai.html
Original file line number Diff line number Diff line change
Expand Up @@ -567,9 +567,9 @@ <h1>Artificial Intelligence-Assisted Coding</h1>

<section class="tex2jax_ignore mathjax_ignore" id="artificial-intelligence-assisted-coding">
<h1>Artificial Intelligence-Assisted Coding<a class="headerlink" href="#artificial-intelligence-assisted-coding" title="Permalink to this headline">#</a></h1>
<p>The world of coding and data science changed dramatically and seismically in 2021, with the public release of large language models (LLMs). These models, which are trained on massive amounts of text data, can be used to generate code that performs a variety of tasks. For example, the <a class="reference external" href="https://en.wikipedia.org/wiki/GPT-3">GPT-3</a> model can generate code based on written directions from a user. Whereas in the past, even experienced coders and data scientists relied heavily on web searches, online forums, and documentation to find code that performs a desired task, now they can simply write a description of what they want, and the model will generate code for them. This can a huge time-saver, and allows us as data scientists to instead focus on what we want to <em>do</em> with our data, rather than how to do it.</p>
<p>The world of coding and data science has changed dramatically and seismically since 2021, with the public release of large language models (LLMs) specifically trained to help write code. These models, which are trained on massive amounts of text data, can be used to generate code that performs a variety of tasks. For example, the <a class="reference external" href="https://en.wikipedia.org/wiki/GPT-3">GPT-3</a> model can generate code based on written directions from a user. Whereas in the past, even experienced coders and data scientists relied heavily on web searches, online forums, and documentation to find code that performs a desired task, now they can simply write a description of what they want, and the model will generate code for them. This can a huge time-saver, and allows us as data scientists to instead focus on what we want to <em>do</em> with our data, rather than how to do it.</p>
<p>In this course, you will learn how to use AI-assisted coding tools to help write code to perform data science tasks — most notably, <a class="reference external" href="https://github.com/features/copilot">GitHub Copilot</a>. This has rapidly become the way coders and data scientists work, so it’s not “cheating” — it’s a new tool that can empower you to be more productive. Most importantly, AI assistants will allow us to focus on what we want to do with data, and get us insights faster. These aspects of the course are the most important, but prior to AI tools it took a long time to get there, due to the slow and often tedious process of learning how to code.</p>
<p>At the same time, it’s important to recognize that AI-generated code is not perfect, and requires careful evaluation and debugging. LLMs essentially predict the next word in a sentence, based on the previous words — and the same is true when they generate code. They are trained on large samples of existing code that is publicly available (most of which, hopefully, actually works), and do their best to provide you with appropriate code to your prompt. But they are not perfect, and sometimes they will generate code that doesn’t work, or doesn’t actually perform the operation(s) that you intended. The less common a task is, the fewer examples of it the model will have been trained on, and the less likely it is to generate good code for the task. So it’s critical to learn how to evaluate the code that AI tools generate, and make sure it does what you want it to do. This will also be a focus of this course.</p>
<p>At the same time, it’s important to recognize that AI-generated code is not perfect, and requires careful evaluation and debugging. LLMs essentially predict the next word in a sentence, based on the previous words — and the same is true when they generate code. They are trained on large samples of existing code that is publicly available (most of which, hopefully, actually works), and do their best to provide you with appropriate code to your prompt. But they are not perfect, and sometimes they will generate code that doesn’t work, or doesn’t actually perform the operation(s) that you intended. The less common a task is, the fewer examples of it the model will have been trained on, and the less likely it is to generate good code for the task. So it’s critical to learn how to evaluate the code that AI tools generate, and make sure it does what you want it to do. This will be a focus of this course.</p>
</section>

<script type="text/x-thebe-config">
Expand Down
33 changes: 30 additions & 3 deletions 1-intro/connectivism.html
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,9 @@
</button>
`);
</script>

<label class="sidebar-toggle secondary-toggle btn btn-sm" for="__secondary"title="Toggle secondary sidebar" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="fa-solid fa-list"></span>
</label>
</div></div>

</div>
Expand All @@ -556,6 +558,14 @@ <h1>Connectivism</h1>
<div id="print-main-content">
<div id="jb-print-toc">

<div>
<h2> Contents </h2>
</div>
<nav aria-label="Page">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#connectivism-informs-the-mindset-you-should-bring-to-this-course">Connectivism informs the mindset you should bring to this course</a></li>
</ul>
</nav>
</div>
</div>
</div>
Expand All @@ -567,10 +577,13 @@ <h1>Connectivism</h1>

<section class="tex2jax_ignore mathjax_ignore" id="connectivism">
<h1>Connectivism<a class="headerlink" href="#connectivism" title="Permalink to this headline">#</a></h1>
<p><strong>Connectivism</strong> is a learning theory first introduced in 2005, by two separate academics: Siemens <span id="id1">Siemens [<a class="reference internal" href="../zrefs.html#id8" title="George Siemens. Connectivism: A Learning Theory for the Digital Age. EdTech Books, 2018. URL: https://edtechbooks.org/lidtfoundations/connectivism.">Sie18</a>]</span> and Downes <span id="id2">Downes [<a class="reference internal" href="../zrefs.html#id9" title="Stephen Downes. An Introduction to Connective Knowledge. Stephen Downes (personal blog), 2005. URL: https://www.downes.ca/cgi-bin/page.cgi?post=33034 (visited on 2020-07-05).">Dow05</a>]</span>. Rooted in constructivism, connectivism is “a learning theory for the digital age” that emphasizes the fact that in the 21st century, much knowledge is <em>externalized</em> from human minds, in the form of the internet. In our hyperconnected world, there is less emphasis on, or need for, individuals to remember specific facts or procedures, because there are huge amounts of information readily accessible when the knowledge is needed. As well, information is increasingly vast, complex, and changing. So learning becomes not just learning and remembering facts, but learning how to use specialized online knowledge bases, and “connect” information between them.</p>
<p><strong>Connectivism</strong> is a learning theory first introduced in 2005, by two separate academics: <span id="id1">Siemens [<a class="reference internal" href="../zrefs.html#id8" title="George Siemens. Connectivism: A Learning Theory for the Digital Age. EdTech Books, 2018. URL: https://edtechbooks.org/lidtfoundations/connectivism.">Sie18</a>]</span> and <span id="id2">Downes [<a class="reference internal" href="../zrefs.html#id9" title="Stephen Downes. An Introduction to Connective Knowledge. Stephen Downes (personal blog), 2005. URL: https://www.downes.ca/cgi-bin/page.cgi?post=33034 (visited on 2020-07-05).">Dow05</a>]</span>. Rooted in constructivism, connectivism is “a learning theory for the digital age” that emphasizes the fact that in the 21st century, much knowledge is <em>externalized</em> from human minds, in the form of the internet (and more recently, artificial intelligence, or AI). In our hyperconnected world, there is less emphasis on, or need for, individuals to remember specific facts or procedures, because there are huge amounts of information readily accessible when the knowledge is needed. As well, information is increasingly vast, complex, and changing. So learning becomes not just learning and remembering facts, but learning how to use specialized online knowledge bases, and “connect” information between them.</p>
<p>This is very true in data science. Practitioners rarely know all the details of how to use a particular programming language — the names of every possible command, or how to use them. Instead, data scientists rely on the documentation for these programming languages on the internet. This includes the official documentation, questions and answers posted on help forums such as Stack Exchange, written tutorials, YouTube videos, books, and more. Figuring out how to do something new is virtually a daily occurrence when working in data science, and so the ability to know how to find and evaluate the necessary information — and connect it across sources to solve your problem — is just as important as one’s existing coding skills.</p>
<p>While this knowledge is externalized in digital technology, it is, ultimately, the product of human knowledge and human effort. Thus, like constructivism, connectivism emphasizes the importance of social interaction in learning — but this social interaction may be asynchronous, such as when one person records a YouTube tutorial and someone else watches it months later.</p>
<p><strong>Connectivism informs the mindset you should bring to this course</strong>. There is little emphasis on memorizing information, except to the extend that knowledge becomes more ingrained as you use it. Instead, the course emphasizes an attitude of continuous improvement and “life hacking”, built on skills of properly understanding and characterizing a problem, doing the appropriate searches to find the necessary information to solve the problem, and then applying that information to deliver the solution. In doing so, you must be a critical evaluator of the information you are finding (since not all information on the internet is created equal). As well, this course encourages and rewards students for contributing to the class knowledge base, through demos, peer teaching, peer assessments, and team projects.</p>
<section id="connectivism-informs-the-mindset-you-should-bring-to-this-course">
<h2>Connectivism informs the mindset you should bring to this course<a class="headerlink" href="#connectivism-informs-the-mindset-you-should-bring-to-this-course" title="Permalink to this headline">#</a></h2>
<p>There is little emphasis on memorizing information, except to the extend that knowledge becomes more ingrained as you use it. Instead, the course emphasizes an attitude of continuous improvement and “life hacking”, built on skills of properly understanding and characterizing a problem, doing the appropriate searches to find the necessary information to solve the problem, and then applying that information to deliver the solution. In doing so, you must be a critical evaluator of the information you are finding (since not all information on the internet is created equal). As well, this course encourages and rewards students for contributing to the class knowledge base, through demos, peer teaching, peer assessments, and team projects.</p>
</section>
</section>

<script type="text/x-thebe-config">
Expand Down Expand Up @@ -632,6 +645,20 @@ <h1>Connectivism<a class="headerlink" href="#connectivism" title="Permalink to t



<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">

<div class="sidebar-secondary-item">
<div class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> Contents
</div>
<nav class="bd-toc-nav page-toc">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#connectivism-informs-the-mindset-you-should-bring-to-this-course">Connectivism informs the mindset you should bring to this course</a></li>
</ul>
</nav></div>

</div></div>


</div>
<footer class="bd-footer-content">
Expand Down
2 changes: 1 addition & 1 deletion 1-intro/pedagogy.html
Original file line number Diff line number Diff line change
Expand Up @@ -568,7 +568,7 @@ <h1>Pedagogy</h1>
<section class="tex2jax_ignore mathjax_ignore" id="pedagogy">
<h1>Pedagogy<a class="headerlink" href="#pedagogy" title="Permalink to this headline">#</a></h1>
<p>This section discusses the approach to teaching used in this course and textbook, and the theories behind the approach. Reading this section isn’t required to learn the course material, but it may give you an idea of how and why we approach things in the way we do, as well as some of the theory behind the approach.</p>
<p>If you’re more interested in getting started with data science, then skip ahead to the next chapter, <span class="xref myst">Introduction to Data Science</span>.</p>
<p>If you’re more interested in getting started with data science, then skip ahead to the next chapter, <a class="reference internal" href="../2-nds/introduction.html"><span class="doc std std-doc">Introduction to Data Science</span></a>.</p>
<div class="toctree-wrapper compound">
</div>
</section>
Expand Down
Loading

0 comments on commit 3c83d9c

Please sign in to comment.