Answers.Body: <p>I'll assume this is university level education, not a specific training course. Such things have different requirements.</p>
  <p>The goal is to teach principles and things that can stand the test of time. This is part of the basic understanding in math of course and we hardly consider the alternative.</p>
  <p>But if you use changing technology, and depend on it, then you will always be faced with this and students may get the wrong idea of what it is important to know. You don't want them to become experts in a specific piece of software at the expense of the underlying principles.</p>
  <p>I taught a lot of Java. But in coursework I never used nor depended on the latest versions of the Java libraries. There is enough in early versions, even Java 5, that for almost everything (other than, say capstone courses, the students can get a grounding in the principles that stay stable while other things are ephemeral. Even in advanced courses that required programming, the base/core projects were all built on stable technology.</p>
  <p>Rethink what you are doing. Computer graphics won't be the same in ten years as now, just as it wasn't the same ten years ago. But it should only be <em>necessary</em> to change when the principles themselves change. I remember that ray-tracing was an inflection point in graphics, for example.</p>
  <p>For some things, you actually have to build your own tools that you have control over so that things don't slip out from under you.</p>
  <p>But, even if you do need to teach with volatile technology, be sure that you extract the principles and make sure that the students focus on those, not just making cool stuff.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-18T20:41:43.760Z
Answers.LastActivityDate: 2021-12-18T21:03:46.383Z
Answers.LastEditDate: 2021-12-18T21:03:46.383Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>If the mathematical and computer graphics core concepts are still sound, then yes, I would say that it is okay to teach using a dated library.  Not forever (short of a very good pedagogical reason), but it's okay to take some time to update your materials, as that is a significant endeavor.</p>
  <p>I would explain it to my students roughly this way:</p>
  <blockquote>
  <p>I designed this class to illustrate some important core concepts of this field, and I am pretty excited by what I get to share with you!  The course was designed using THREE.js, which had a library, THREE.geometry, that was great for what we needed to do.  Anyway, developing the materials was a pretty large task, and I was pleased with how it all came out.</p>
  <p>Anyway, you know what they say about Murphy's Laws, right?  As it turns out, it's just our luck that they dropped support for THREE.geometry a few months ago.  I eventually plan to update my materials, but I haven't had the chance yet.</p>
  <p>In the meantime, the underlying stuff that I'm so excited to teach you about has all been developed using these old libraries, so I'm going to ask you to use a <em>very slightly dated</em> library for now.  THREE.geometry was never the point of the course; it was the tool we were using to get at the underlying ideas, so I don't think this will be a huge handicap to what we're trying to do.  For my part, I promise I'm going to try to make the material interesting enough to be worth your while anyway.  Does that sound fair to everyone?</p>
  </blockquote>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-18T20:37:00.580Z
Answers.LastActivityDate: 2021-12-18T20:37:00.580Z
Answers.UserDisplayName: Ben I.
Body: <p>I'm a mathematics professor tasked with teaching a computer graphics course in the spring. I decided to teach something very project-based using Javascript and THREE.js, based on my familiarity and how THREE.js seems to be very popular in web 3d development without being overly simplistic.</p>
  <p>This past semester, THREE.js dropped support for THREE.Geometry, changing the way to present procedurally created geometries to THREE.js. This broke most of my currently existing interactives, and has me rethinking how I want to present the idea of geometries to my students.</p>
  <p>Some questions:</p>
  <ul>
  <li>Is it okay to plan on teaching a course based around such a dynamic (and I guess theoretically untrusted) third-party library?</li>
  <li>I have an old copy of THREE.js. Is it okay to teach a course asking my students to work with this old copy? (a separate question is whether this would be pedagogically a better presentation of the topic, which I asked on computergraphics.stackexchange: <a href="https://computergraphics.stackexchange.com/questions/12406/which-provides-better-intuition-three-geometry-or-three-buffergeometry">https://computergraphics.stackexchange.com/questions/12406/which-provides-better-intuition-three-geometry-or-three-buffergeometry</a>)</li>
  <li>How do you live like this? I jest, but I would really appreciate some insights into teaching in such a dynamic field, where specifics I teach my students might not work in a year's time and general concepts might be out-of-date in five years.</li>
  </ul>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-19T06:15:25.647Z
Comments.Text: I'd be bolder than Buffy and Ben. See [status of Javascript](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f). (With regards to Quilang https://cseducators.stackexchange.com/a/6998/8837)
Comments.UserDisplayName: Rushi
Tags: <curriculum-design><best-practice><project><social-context>
Title: Teaching with changing dependencies
ThreadText: # Teaching with changing dependencies
  
  (Asked by: username_0 on 2021-12-18)
  
  I'm a mathematics professor tasked with teaching a computer graphics course in the spring. I decided to teach something very project-based using Javascript and THREE.js, based on my familiarity and how THREE.js seems to be very popular in web 3d development without being overly simplistic.
  
  This past semester, THREE.js dropped support for THREE.Geometry, changing the way to present procedurally created geometries to THREE.js. This broke most of my currently existing interactives, and has me rethinking how I want to present the idea of geometries to my students.
  
  Some questions:
  
  * Is it okay to plan on teaching a course based around such a dynamic (and I guess theoretically untrusted) third-party library?
  * I have an old copy of THREE.js. Is it okay to teach a course asking my students to work with this old copy? (a separate question is whether this would be pedagogically a better presentation of the topic, which I asked on computergraphics.stackexchange: <https://computergraphics.stackexchange.com/questions/12406/which-provides-better-intuition-three-geometry-or-three-buffergeometry>)
  * How do you live like this? I jest, but I would really appreciate some insights into teaching in such a dynamic field, where specifics I teach my students might not work in a year's time and general concepts might be out-of-date in five years.
  
  **Tags:** curriculum-design, best-practice, project, social-context
  
  > **Comments:**
  > **username_1**: I'd be bolder than username_2 and Ben. See [status of Javascript](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f). (With regards to Quilang https://cseducators.stackexchange.com/a/6998/8837)  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2021-12-18. Score: 4
  
  I'll assume this is university level education, not a specific training course. Such things have different requirements.
  
  The goal is to teach principles and things that can stand the test of time. This is part of the basic understanding in math of course and we hardly consider the alternative.
  
  But if you use changing technology, and depend on it, then you will always be faced with this and students may get the wrong idea of what it is important to know. You don't want them to become experts in a specific piece of software at the expense of the underlying principles.
  
  I taught a lot of Java. But in coursework I never used nor depended on the latest versions of the Java libraries. There is enough in early versions, even Java 5, that for almost everything (other than, say capstone courses, the students can get a grounding in the principles that stay stable while other things are ephemeral. Even in advanced courses that required programming, the base/core projects were all built on stable technology.
  
  Rethink what you are doing. Computer graphics won't be the same in ten years as now, just as it wasn't the same ten years ago. But it should only be *necessary* to change when the principles themselves change. I remember that ray-tracing was an inflection point in graphics, for example.
  
  For some things, you actually have to build your own tools that you have control over so that things don't slip out from under you.
  
  But, even if you do need to teach with volatile technology, be sure that you extract the principles and make sure that the students focus on those, not just making cool stuff.
  
  
  ---
  
  ### Answer by username_3 on 2021-12-18. Score: 4
  
  If the mathematical and computer graphics core concepts are still sound, then yes, I would say that it is okay to teach using a dated library. Not forever (short of a very good pedagogical reason), but it's okay to take some time to update your materials, as that is a significant endeavor.
  
  I would explain it to my students roughly this way:
  
  > I designed this class to illustrate some important core concepts of this field, and I am pretty excited by what I get to share with you! The course was designed using THREE.js, which had a library, THREE.geometry, that was great for what we needed to do. Anyway, developing the materials was a pretty large task, and I was pleased with how it all came out.
  >
  > Anyway, you know what they say about Murphy's Laws, right? As it turns out, it's just our luck that they dropped support for THREE.geometry a few months ago. I eventually plan to update my materials, but I haven't had the chance yet.
  >
  > In the meantime, the underlying stuff that I'm so excited to teach you about has all been developed using these old libraries, so I'm going to ask you to use a *very slightly dated* library for now. THREE.geometry was never the point of the course; it was the tool we were using to get at the underlying ideas, so I don't think this will be a huge handicap to what we're trying to do. For my part, I promise I'm going to try to make the material interesting enough to be worth your while anyway. Does that sound fair to everyone?
  
  
  ---
  
  