<p>I think a really interesting one would be the idea of cryptocurrency, this may not be what you are looking for particularly, but it is a new horizon that is bringing many new ideas to tech. Ideas to cover, the block chain, the <a href="https://techcrunch.com/2017/06/24/coinbase-is-reimbursing-losses-caused-by-the-ethereum-flash-crash/" rel="noreferrer">ethereum flash crash</a>, the anonymity (or lack thereof) of cryptocurrency, regulation of cryptocurrency. How mining works. The list goes on and on</p>

CC BY-SA 3.0
2017-06-28T17:12:22.133Z
A very current frontier, with the ransomware going about.
ItamarG3
CC BY-SA 3.0
2017-06-28T15:53:23.180Z
2017-06-28T17:12:00.000Z
2017-06-28T17:12:00.000Z
itsjtwright
<p>If you're able to discuss some relatively complex mathematics (compared to what you might generally teach at this level), <a href="https://en.wikipedia.org/wiki/Artificial_neural_network" rel="noreferrer">artificial neural networks</a> are fascinating to discuss and work with.</p>

<p>Ever wanted to:</p>

<ul>
<li><a href="http://www.hexahedria.com/2015/08/03/composing-music-with-recurrent-neural-networks/" rel="noreferrer">create a program to generate music (that doesn't sound horrible)</a>? </li>
<li><a href="https://www.youtube.com/watch?v=qv6UVOQ0F44" rel="noreferrer">beat Super Mario World</a> without actually programming each step?</li>
<li><a href="http://www.boredpanda.com/computer-deep-learning-algorithm-painting-masters/" rel="noreferrer">pretend to be Picasso</a> without having any artistic talent?</li>
</ul>

<p>There are an immense number of use cases for neural networks (although there is a lot of hype around the subject with some unrealistic promises!).</p>

<p>I would imagine a basic grasp of calculus and a firm understanding of the basics (syntax, algorithmic thinking, etc) would be necessary, although it would depend on what depth you wanted to teach.</p>

<p>You could discuss superficially by just <a href="http://www.explainthatstuff.com/introduction-to-neural-networks.html" rel="noreferrer">introducing the structure of a neural network</a>, but many of the really interesting applications require a more in-depth knowledge (i.e. linear algebra/matrices) to fully appreciate the topic.</p>

<p>The course <a href="https://www.coursera.org/learn/neural-networks" rel="noreferrer">Neural Networks for Machine Learning</a> seems highly relevant here, and it might be worth examining the topics covered to see how it may be possible to teach this. I don't think it's something you can really skim if you want to actually get to the <em>good stuff</em>, but if you don't have time, showing some examples and providing resources for your students might still be worthwhile if they want to put in the time themselves.</p>

CC BY-SA 3.0
2017-06-28T17:26:42.427Z
2017-06-28T17:26:42.427Z
Aurora0001
<p><strong>Yes. Teaching parallel algorithms is especially productive.</strong></p>

<p>Introducing cutting edge fields can engage students. Like anything, it should be done using active learning techniques (<a href="http://www.pnas.org/content/111/23/8410.full.pdf" rel="nofollow noreferrer">Freeman et al. 2014</a>) and within "proximal development." Of "cutting edge" fields that are useful to introduce early in the pipeline (i.e., high school or earlier)', I think <strong>parallel processing</strong> is one of the most important. I say this for three reasons:</p>

<p><strong>1. "Mulch" required for later</strong></p>

<p>Some ways of thinking require early introduction to nurture later growth. Parallel and distributed computing may be one such area, based on visionaries' opinions and evidence.</p>

<p>a.  Visionaries opinions: Pappert and Resnick both suggested parallel and decentralized thinking an area in which CS for young students could alter how the student years later thinks about phenomena and how they solve problems. </p>

<p>b. Evidence: At the 2016 International Symposium on Parallel and Distributed Computing, I heard described an <a href="https://nsf.gov/awardsearch/showAward?AWD_ID=1143533" rel="nofollow noreferrer">unpublished study</a> assessing three groups of students in their tendency to solve problems with parallelism in mind. The assessment asked students to describe a procedure for making a peanut butter and jelly sandwich and then asked for a procedure to make 10,000 peanut butter and jelly sandwiches.</p>

<ul>
<li>Students who had taken <strong>no CS</strong> course <strong>frequently</strong> described a parallel algorithm.</li>
<li>Students who had taken a <strong>traditional CS1</strong> university course <strong>infrequently</strong> described a parallel algorithm.</li>
<li>Students who had taken a <strong>parallelism-enhanced CS1</strong> university course <strong>frequently</strong> described a parallel algorithm.</li>
</ul>

<p><strong>2. Present and Future Importance of Parallelism</strong></p>

<p>a. After an advance in hardware capability, a corresponding advance in devices and software on the market takes place ~10 years later (Kurzweil, The Singularity is Near). A large portion of software on the market still does not take best advantage of multicore processors. </p>

<p>b. In writing a curriculum for CS Principles, I asked some 200 tech leaders,  "What changes would you make to the post-secondary CS curriculum to better suit your needs?" Soft skills, parallel processing, version control, and distributed databases were topics that came up most frequently in these answers.</p>

<p><strong>3. Accessible in High School</strong></p>

<p>Various people have put forward ideas appropriate to the age level, and the high school CS teaching community can probably also draw additional ideas from <a href="https://grid.cs.gsu.edu/~tcpp/curriculum/?q=edupar17" rel="nofollow noreferrer">EduPar</a>, an annual conference for teaching parallelism and distributed computing at the university level.</p>

<ul>
<li><a href="http://faculty.knox.edu/dbunde/pubs/apcs.pdf" rel="nofollow noreferrer">David Bunde 2012 CS4EDU</a> </li>
<li><a href="https://csinparallel.org/index.html" rel="nofollow noreferrer">CS in Parallel</a></li>
<li>An unplugged activity from Dan Garcia: Ask a team of 4-6 to design an algorithm and execute it with human hands to sort a shuffled standard deck of cards into a particular order. This activity was in <a href="http://bjc.edc.org/bjc-r/course/bjc4nyc.html" rel="nofollow noreferrer">Beauty and Joy of Computing</a> (BJC) and Garcia, one of the principal investigators on BJC told me he felt this was the BJC activity he regarded as most successful and engaging, though I don't see it in the current version.</li>
<li>A compendium being created by <a href="https://nsf.gov/awardsearch/showAward?AWD_ID=1143533" rel="nofollow noreferrer">Chuck Weems</a> from U Mass Amherst</li>
</ul>

CC BY-SA 3.0
2017-06-30T05:42:49.183Z
2017-06-30T05:59:13.620Z
2017-06-30T05:59:13.620Z
Bennett Brown
<p>In a class for highschool students, should I talk about new, active, and exciting fields of CS to inspire them to perhaps further pursue CS or just get them more interested, or would it be better to stick to the basics? If the answer is that it's a good idea, please elaborate with an example of a subfield that would be good to talk about and why.</p>

<p>For example, a field might be quantum computing - covering maybe the basic ideas and mathematics, and giving them some resources to explore, and a nice simulator like <a href="http://algassert.com/quirk#circuit=%7B&quot;cols&quot;:[]%7D" rel="nofollow noreferrer">this one</a> to play with (or would that be going into too much depth?). Talking about molecular computing would also be an option.</p>

CC BY-SA 3.0
2017-06-28T15:43:45.283Z
This question is really broad. There are so many frontiers that could be discussed. A book could be written on this topic.
thesecretmaster
CC BY-SA 3.0
2017-06-28T16:04:59.147Z
Was immediately reminded of [the SMBC about quantum computing](http://www.smbc-comics.com/comic/the-talk-3) (not to be confused with [the SMBC about quantum computers](http://www.smbc-comics.com/index.php?id=4057)).
Piyush Parikh
CC BY-SA 3.0
2017-06-28T17:05:46.350Z
@thesecretmaster, you seem to be favoring only questions that can be definitively answered with "the one true answer." I think that is too narrow. There are questions that different people will answer quite differently without it being just _opinion_ or _discussion_. If the criteria are applied _too_ strictly it will get in the way and discourage people. This question can have many answers, all different, all correct, and more important, all thought-provoking.
Buffy
CC BY-SA 3.0
2017-06-28T17:08:41.753Z
@Buffy I have my personal views on which questions are too broad and which are not. I will not abuse my moderator power by closing questions based on that evaluation, but I can express my opinion. In this case, I believe that multiple books could be (and have been) written on each frontier of CS, and that is far too broad to be covered in one answer. If you'd like to discuss this further (which I'd be happy to do), please [start a new room with me](https://chat.stackexchange.com/users/162795) to avoid taking up comment space.
thesecretmaster
CC BY-SA 3.0
2017-06-28T19:17:34.327Z
A good teaching technique is to introduce a topic and some of its features and terminology before it is necessary to address it in detail. It need not be a frontier topic. It can be one (compilers, AI, ...) that will be studied in due course. So, you are asking for ideas to "prime the pump." I am applauding.
Buffy
<secondary-education>
Talking about new/active subfields of CS to inspire students
# Talking about new/active subfields of CS to inspire students

(Asked by: username_0 on 2017-06-28)

In a class for highschool students, should I talk about new, active, and exciting fields of CS to inspire them to perhaps further pursue CS or just get them more interested, or would it be better to stick to the basics? If the answer is that it's a good idea, please elaborate with an example of a subfield that would be good to talk about and why.

For example, a field might be quantum computing - covering maybe the basic ideas and mathematics, and giving them some resources to explore, and a nice simulator like [this one](http://algassert.com/quirk#circuit=%7B) to play with (or would that be going into too much depth?). Talking about molecular computing would also be an option.

**Tags:** secondary-education

> **Comments:**
> **username_1**: This question is really broad. There are so many frontiers that could be discussed. A book could be written on this topic.  
> **username_2**: Was immediately reminded of [the SMBC about quantum computing](http://www.smbc-comics.com/comic/the-talk-3) (not to be confused with [the SMBC about quantum computers](http://www.smbc-comics.com/index.php?id=4057)).  
> **username_3**: @username_1, you seem to be favoring only questions that can be definitively answered with "the one true answer." I think that is too narrow. There are questions that different people will answer quite differently without it being just _opinion_ or _discussion_. If the criteria are applied _too_ strictly it will get in the way and discourage people. This question can have many answers, all different, all correct, and more important, all thought-provoking.  
> **username_1**: @username_3 I have my personal views on which questions are too broad and which are not. I will not abuse my moderator power by closing questions based on that evaluation, but I can express my opinion. In this case, I believe that multiple books could be (and have been) written on each frontier of CS, and that is far too broad to be covered in one answer. If you'd like to discuss this further (which I'd be happy to do), please [start a new room with me](https://chat.stackexchange.com/users/162795) to avoid taking up comment space.  
> **username_3**: A good teaching technique is to introduce a topic and some of its features and terminology before it is necessary to address it in detail. It need not be a frontier topic. It can be one (compilers, AI, ...) that will be studied in due course. So, you are asking for ideas to "prime the pump." I am applauding.  

---

## 3 answers

### Answer by username_4 on 2017-06-28. Score: 5

I think a really interesting one would be the idea of cryptocurrency, this may not be what you are looking for particularly, but it is a new horizon that is bringing many new ideas to tech. Ideas to cover, the block chain, the [ethereum flash crash](https://techcrunch.com/2017/06/24/coinbase-is-reimbursing-losses-caused-by-the-ethereum-flash-crash/), the anonymity (or lack thereof) of cryptocurrency, regulation of cryptocurrency. How mining works. The list goes on and on

> **Comments:**
> **username_5**: A very current frontier, with the ransomware going about.  

---

### Answer by username_6 on 2017-06-28. Score: 4

If you're able to discuss some relatively complex mathematics (compared to what you might generally teach at this level), [artificial neural networks](https://en.wikipedia.org/wiki/Artificial_neural_network) are fascinating to discuss and work with.

Ever wanted to:

* [create a program to generate music (that doesn't sound horrible)](http://www.hexahedria.com/2015/08/03/composing-music-with-recurrent-neural-networks/)?
* [beat Super Mario World](https://www.youtube.com/watch?v=qv6UVOQ0F44) without actually programming each step?
* [pretend to be Picasso](http://www.boredpanda.com/computer-deep-learning-algorithm-painting-masters/) without having any artistic talent?

There are an immense number of use cases for neural networks (although there is a lot of hype around the subject with some unrealistic promises!).

I would imagine a basic grasp of calculus and a firm understanding of the basics (syntax, algorithmic thinking, etc) would be necessary, although it would depend on what depth you wanted to teach.

You could discuss superficially by just [introducing the structure of a neural network](http://www.explainthatstuff.com/introduction-to-neural-networks.html), but many of the really interesting applications require a more in-depth knowledge (i.e. linear algebra/matrices) to fully appreciate the topic.

The course [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks) seems highly relevant here, and it might be worth examining the topics covered to see how it may be possible to teach this. I don't think it's something you can really skim if you want to actually get to the *good stuff*, but if you don't have time, showing some examples and providing resources for your students might still be worthwhile if they want to put in the time themselves.


---

### Answer by username_7 on 2017-06-30. Score: 1

**Yes. Teaching parallel algorithms is especially productive.**

Introducing cutting edge fields can engage students. Like anything, it should be done using active learning techniques ([Freeman et al. 2014](http://www.pnas.org/content/111/23/8410.full.pdf)) and within "proximal development." Of "cutting edge" fields that are useful to introduce early in the pipeline (i.e., high school or earlier)', I think **parallel processing** is one of the most important. I say this for three reasons:

**1. "Mulch" required for later**

Some ways of thinking require early introduction to nurture later growth. Parallel and distributed computing may be one such area, based on visionaries' opinions and evidence.

a. Visionaries opinions: Pappert and Resnick both suggested parallel and decentralized thinking an area in which CS for young students could alter how the student years later thinks about phenomena and how they solve problems.

b. Evidence: At the 2016 International Symposium on Parallel and Distributed Computing, I heard described an [unpublished study](https://nsf.gov/awardsearch/showAward?AWD_ID=1143533) assessing three groups of students in their tendency to solve problems with parallelism in mind. The assessment asked students to describe a procedure for making a peanut butter and jelly sandwich and then asked for a procedure to make 10,000 peanut butter and jelly sandwiches.

* Students who had taken **no CS** course **frequently** described a parallel algorithm.
* Students who had taken a **traditional CS1** university course **infrequently** described a parallel algorithm.
* Students who had taken a **parallelism-enhanced CS1** university course **frequently** described a parallel algorithm.

**2. Present and Future Importance of Parallelism**

a. After an advance in hardware capability, a corresponding advance in devices and software on the market takes place ~10 years later (Kurzweil, The Singularity is Near). A large portion of software on the market still does not take best advantage of multicore processors.

b. In writing a curriculum for CS Principles, I asked some 200 tech leaders, "What changes would you make to the post-secondary CS curriculum to better suit your needs?" Soft skills, parallel processing, version control, and distributed databases were topics that came up most frequently in these answers.

**3. Accessible in High School**

Various people have put forward ideas appropriate to the age level, and the high school CS teaching community can probably also draw additional ideas from [EduPar](https://grid.cs.gsu.edu/~tcpp/curriculum/?q=edupar17), an annual conference for teaching parallelism and distributed computing at the university level.

* [David Bunde 2012 CS4EDU](http://faculty.knox.edu/dbunde/pubs/apcs.pdf)
* [CS in Parallel](https://csinparallel.org/index.html)
* An unplugged activity from Dan Garcia: Ask a team of 4-6 to design an algorithm and execute it with human hands to sort a shuffled standard deck of cards into a particular order. This activity was in [Beauty and Joy of Computing](http://bjc.edc.org/bjc-r/course/bjc4nyc.html) (BJC) and Garcia, one of the principal investigators on BJC told me he felt this was the BJC activity he regarded as most successful and engaging, though I don't see it in the current version.
* A compendium being created by [Chuck Weems](https://nsf.gov/awardsearch/showAward?AWD_ID=1143533) from U Mass Amherst


---

