Article

The No Code Movement

The no code movement views technological advances in software and artificial intelligence (AI) as opportunities for promoting user-friendly interfaces as alternatives for hand-coded programming.

That sounds great! Well designed tools allow people to focus on getting things done with software rather than being concerned with the details of coding.

But what if the tool is not well designed? What does well designed even mean? What if the very user-friendly tool restricts your creativity and constrains you to work within the limitation of the tool? How would you even know what limitations even exist?

Understanding the no code movement requires recognizing what is software?

What is the purpose of software? (I’ll refer to software and programs interchangeably.) How does software relate to coding?

Is a world of no code realistic?

Actually, we all use no code tools everyday, all the time. Yet, does that mean the end of coding?

Of course not.

There always will be new tools that improve on previous software. There always will be tools that not only improve on software that we use today, but tools that transforms how we work and live.

Developing those transformative tools require understanding the possibilities of code.

We need people to develop the code for those new tools. We need entrepreneurs to bring exciting ideas to market. And we need marketing professionals who understand how the possibilities translate to how we work and live. And we need leaders to carry forward the team efforts in creating new tools. So much of our lives and work are based in technology.

The challenge is to know when to use no code tools and when to dive into the code.

Article

Learn JavaScript by Backwards Design

The focus on learning syntax of a programming language is one of my fundamental problems with the method that programming is often taught. I’m going to talk about an approach that works backwards from the desired result. This approach describes how to structure a course based not on the content you want to cover but on understanding the big questions and concepts behind the content. It’s called backwards design and is deeply explained in the book Understanding by Design.

The process starts by identifying what’s most worth understanding in the topic. That word–understanding–is loaded with meaning but also with ambiguity. In backwards design, you ask, “What does it mean to understand something?”, “What are the big ideas?”, “What are the essential questions?”.

Clarifying the answers to these questions uncover the key aspects, i.e., the blocks that serve as a foundation for building more knowledge on your own.

With technology, it seems that it’s always changing every day. Well, the specific implementations, the specific tools that we use do change very quickly. But the core components are quite solid.

One of the big differences, supposedly, of formal institutional-based education and an online course developed by someone on the Internet is the method of assessing the level of understanding. A lot of online courses give you the material and you’re own your own, often stuck in tutorial hell without feedback or further guidance. But I’m very curious as to how online courses can develop more engagement with students, more feedback, and more assessment that helps the students learn. Ultimately, that leads to more credibility for online learning and, perhaps, eventually, can resolve the biggest difference between institutional-based education and ad hoc individualized learning: credentials. Literally, the degree: the documentation that certifies you have learned something (supposedly).

Quality assessment is not about knowing syntax and facts but for you to demonstrate that you can apply what you have learned in a new situation. Can you go from the step-by-step instructions of a tutorial, and then implement variations of those concepts in a project of your own?

Actually, a person’s portfolio is the true measure of what one has learned.

A portfolio may not be only a series of projects but also a range of multimodal explanations that demonstrate you have absorbed the material and possess the capacity to remix it in creative ways. This multimodal material in a portfolio could be videos where you are explaining technology, could be websites that showcase your work, audio tracks that feature you discussing the concepts in a podcast, slides from a presentation, an essay exploring the limitations or effectiveness of a protocol. Your portfolio gathers selected artifacts of the knowledge you have constructed.

Too often in teaching, we have our learning outcomes, then set those aside and start figuring out how to slot copious amounts of content into those outcomes. With backwards design, you stay focused not on content but what leads to transferrable skills and what learning activities engages the student in demonstrating those skills.

For instance, a student learning JavaScript does not necessarily need to know how to flatMap an array. That comes later when the student realizes the need for it in a project. A student needs to have a solid grasp of foundational concepts like arrays and functions before struggling with more specific tasks. If the foundational concepts are solid, then the student should be able to figure out how to apply more complex features. Or, maybe the student will need to take a more advanced course, but you got to have a solid foundation before you start on the foundation of the next level.

The lens through which I view web technologies is always through storytelling.

It could be storytelling proper, as through interactive fiction, or it could be through data visualization, or branding, or ebooks, or interactive documentaries, or online games, or even through user experience. For me, personally, storytelling is a process that excites me. It’s my motivation for coding. So, when I teach beginning JavaScript, I teach it in the style of JavaScript for Interactive Storytelling. And I always put it in the context of the web.

That’s just me. That’s my thing. Other teachers take different approaches and that’s okay.

As an overarching structure, one can fall back to the reliable questions: who? what? where? when? why? and how?

I often teach journalism students, so that’s a familiar organizing principle to them. But I rearrange the order and expand the questions:

  • Why does the web exist?
  • Where does it come from? Where is it going?
  • Who created the web? Who develops websites? Who determines the future of the web?
  • When was the web created? When did it evolve into what it is today? When will the next major change take place on the web?
  • What will the web be like in 10 years, in 20 years, in 30 years? What was it like 10, 20, 30 years ago?

And wrapping it all together comes the how:

  • How do you create a website?
  • How do you create an interactive documentary on the web?
  • How do you create an online business?
  • How did this whole Internet thing all come about?

Unpacking all those questions is the life work of many people. These are the big ideas, the essential questions that drive web development at a conceptual level. There’s an entire other set of big ideas and questions that drive web development at a technical level. In a beginning course, students get a taste of those technical issues, and they gather enough skills to start their journey through technology by taking whatever path they want to further explore after the course.

For each of those questions, I’m going to breakdown the forms of understanding that identifies and prioritizes the type of content, exercises, and assignments needed in a course on web programming for beginners.

Article

Actionable Steps from Small Teaching Online

Small Teaching Online by Flower Darby and James Lang provides very specific suggestions for improving your online course. As an aid in revising my own course, I’m outlining the points that really hit a note with me. But I highly recommend the book to anyone teaching an online course.

“Every student arrives at a different place in the journey.”

Flower Darby, Small Teaching Online

And if you’re not already familiar with the concept of backwards design, then I also recommend that you spend time absorbing the learning framework expressed in the book Understanding by Design. I keep a copy of that amazing book on my desk. It really helps shifts your pedagogy approach from a content-emphasis to an emphasis on learning outcomes. Vanderbilt’s Center for Teaching also has an excellent primer on Understanding by Design.

The following tips are largely inspired by Small Teaching Online and also adapted from a range of other sources. My apologies for not having all the references for every idea. And some of these are based on my own teaching experiences. Things marked in red are new, or particularly exciting, ideas for me that I plan on adopting this Fall.

Asynchronous, if at all possible

I strongly believe that the best online courses are asynchronous, i.e., let the students do the course at their own pace rather than forcing everyone into a time slotted schedule 3 days a week. Asynchronous accommodates students in different time zones, particularly international students. Sure, you might want to try the occasional live chat with those who want it but requiring students to login often for a live lecture or attempting group work with a number of groups is setting the class up for frustration.

Make use of your LMS

If you’re lucky, your institution has a good learning management system (LMS). They all have their quirks but getting to know those tools can be really valuable in facilitating an online class. I’m really enjoying Canvas, which my institution recently switched to from Sakai. Admittedly, I never really liked Sakai and hardly used it. But Canvas is much more intuitive and feature rich.

Live office hours

Set a regular time during the week where students can just drop in online and chat with you. Enable the waiting room feature of whichever software platform you’re using. Depending upon the complexity of their question, I might advise a student to schedule a one-on-one meeting at another time.

Live one-on-one meetings

When a student has a specific question in a one-on-one, particularly a complex coding problem or difficult research question, I need to do some prep work. (I don’t know everyone off the top of my head!) Even with in-person courses, it’s good to require students to attend a one-on-one meeting with you at least once a term, perhaps more depending upon the class size and your other work load. Use part of the time just to get to know the student.
Suggestion: At lease one mandatory (~ 15 minute video) with each student during the term.
Optimal: more than a single one-on-one video session with each student during the term. Some students may need or desire less interaction. Or they may be shy and hesitant to ask questions. Be sure to follow-up with every student. Of course, some students may excel at the assignments. You’ll be able to tell who those are by the quality of their work. Still, it would be nice to touch base with them individually more than once in the term.

Screen sharing during office hours and one-on-one’s

Depending upon the course content, the ability for students to share their screens is remarkably helpful. This is a case where online is much more practical than in-person where you’re leaning over a shoulder and squinting at a student’s laptop. And, obviously, it’s much more sanitary.

Introductory video

Develop a short (< 5 minutes) video introducing yourself to your students. Make it personable, give them a sense of who you are as a person, your motivations for teaching this course. Make yourself approachable.

Connecting to the final project in week 1

Whether it’s an in-person class or online, students have difficulty grasping the overall scope and structure of the course. Sure, a detailed syllabus helps. But don’t count on all the students reading the syllabus that closely. During the first week have a low-stakes assignment related to the final project. This will give students a nudge to start thinking about how the final project relates to the entire course. Provide enough context about the final project so that students understand why it’s meaningful. Suggestion: have students share their ideas for the final project in an online discussion forum.

Scaffolding the final project

Scaffolding is probably not new to any experienced teacher, though I rarely recall it being a component of my undergraduate days. I certainly don’t recall any professor framing an assignment in those terms. Then again, that was a very long time ago, and I don’t think pedagogy was of a topic among faculty conversations.

Scaffolding a final project with incremental assignments provide much needed structures to students who might not be so attentive. Scaffolding also builds assessment into the project at different steps along the way. That feedback constitutes a significant difference between student taking your online course and just taking any random online course on the Internet.

It cannot be repeated too often: students have to understand the purpose of the assignment, i.e., what skills are developed through the work.

Connecting to the midterm exam

I have a midterm exam that covers concepts in how the Internet works. Students are always asking what type of questions will be on the exam.
Suggestion: low-stakes quiz with the type of questions that will be on the exam.

Bookend activities at beginning & end of term.

A theme running throughout Small Teaching Online is is to build in activities that continually help students view the course as a cohesive whole. Many of us are used to having a metacognitive assignment, most likely a short first-person essay, at the end of term.

Suggestion: create a metacognitive assignment for the beginning of the term (see the next section on understanding the syllabus). At the end of the term, have students review what they did for that first metacognitive task. In this way, the first piece provides a basis for reflecting upon the entire course.

Suggestion: provide format options (text or audio or video) for how students can present their metacognitive feedback. Some students might prefer a short audio response or even a video rather than a written response, which might seem much more formal to the student.

Suggestion: if you’re going to use the word metacognition, or its variations, with undergraduates be sure to explain the term. Help students understand the process of thinking about their own thinking. Don’t just throw out terms. Otherwise, your teaching might just become a drinking game: take a drink every time the prof says “metacognitive” or uses “foreground” as a verb.

Understanding the syllabus

I love syllabi! I really do. I really enjoy reading syllabi from other courses, especially those that I’m never going to take. I enjoy writing a syllabus. Well, I don’t care for the boilerplate course policy stuff or even the grading scheme. I like the schedules: the way that a syllabus structures information into a coherent set of knowledge. Yes, writing a good syllabus is easier said that done.

Suggestion: a low-stakes assignment on comprehending the purpose behind different modules of the syllabus. I like for those to be open-ended questions with prompts that encourages students to reflect on how different modules impact their career interests. Another approach is to have students identify which modules they find most appealing and have them explain why. The aim of this assignment is to help students understand the value of the course.

Low-stakes assignments

For in-person classes, I weigh class participation very high. That encourages the students to be more vocal and involved in class discussions. With an online asynchronous class, you have to think deeper about the forms of class participation.

Suggestion: utilize a larger number of low-stakes assignments than you would with an in-person class. Assignments worth a few points each provide structure, consistency in workload, and motivation without the pressure of a major assignment.

But a low-stakes assignment doesn’t necessarily indicate that it’s a participatory task. Make use of discussion boards, prompts for short responses, and forms of peer review. (See the section below on discussion boards.)

Modules

Structure your course in modules not days. Begin each module with a short description introducing the topic and essential aspects of how the module relates to the overall course. Refer to the Understanding by Design framework for some guidance. Suggestion: List the learning goals for the module and explicitly connect those with the learning outcomes for the course. Articulate how the module helps students in the class and also in their careers.

Be sure this section is brief and provide different modes for students to understand the purpose of the modules. Suggestion: prepare a brief ( <5 minutes) video introduction to the module.

Demonstrable skills

Students are skill driven. Let’s accept that and not debate it. And, quite honestly, if a student is not focused on developing new skills, then the teacher really owes it to the student’s well-being to put an emphasis on skills. Without skills: students can’t find jobs to support themselves; let’s be real about what college is really about. (And I’m saying that as a liberal arts grad myself.)

Flower Darby provides a template statement: “After successfully completing this module, you will be able to ….”. Then provide a bulleted or numbered list of specific demonstrable skills students will acquire through their work in the module. (This also forces you to connect how the assignments align with specific skills and life preparedness.)

Suggestion: align a skill-oriented outline with the description of the module. Specifying the skillset connects the students with why the module even exists. You might think the module is to learn or to understand. If you think that way, read Understanding by Design and explore what it really means to understand something.

Video announcements & clarification

Suggestion: If students seem seem unclear about an assignment, create a quick video overview clarifying those points where the students are lost.

Students don’t read email. They may barely look at the noticeboard in an LMS. Use video announcements to “reinforce the reasoning behind class activities…prepare a few talking points to further explain the purpose and the reasons for engaging in that week’s classwork….tell a story that illustrates your pedagogical thinking, or describe a video or blog post that you just came across that reminded you of the relevance of that week’s work.”

Suggestion: Get comfortable talking to the camera. Relax, talk naturally, just as you would in class or in your office. Don’t write out a script. Have notes, your own bullet points as an outline and then just start talking. Keep the announcement videos short (< 2 minutes). You can say a lot in two minutes. You can be really boring in two minutes. Aim for under a minute and see how well that works. You’ll be surprised at how much you can convey in less than a minute. And students are much more likely to engage with shorter material. Who wants to look at a 20 minute video announcement from their instructor at 11pm?

Assignments are “experiences”

I love how the writing instructor John Warner explains that assignments are experiences. Of course, we all know that at some level, but making it explicit to students reinforces that there is a purpose behind the assignment and it’s not just some task, some busy work to fill time. Write the assignment in a way that helps the student identify how it helps them learn. Make it clear to them that they are actually getting something from doing that assignment.

Personally, I hated assignments as a student. Just hated it. And I realize now that I didn’t see the purpose behind most of the assignments. I felt like I was just jumping through a hoop for a grade, like I was in training as a circus animal.

Suggestion: use specific headings that prompt reflection on what the assignment is accomplishing. For example, Darby provides examples for instructions as

  • Here’s what I want you to do
  • Here’s why I want you to do it
  • Here’s how to do it

Most of us are going to recognize that as good rubric writing.

Rubrics

I love and hate rubrics. I love rubrics for the clarity that they provide for students. I hate rubrics because rubrics free students from handling complexity. The ability to deal with complexity is one of the most important life skills obtainable. Suggestion: In your rubrics, make sure that students know that you are modeling learning and work patterns for them to adopt and adapt throughout their lives. You’re not giving step-by-step instructions. You’re providing an example of problem solving. Hmmm, I would be curious to hear about examples where students write the rubric for their assignments.

A dangerous thing that can come out of the undergraduate classroom is that students graduate and then expect a supervisor to provide them with a detailed list of what to do in order to perform the job. That doesn’t happen in any job where you make more than $50,000/year.

It’s important for student learning to provide clear directions in rubrics. Just be sure to put those into an overall context as to why the assignment exists in the first place, and that real world work does not provide a recipe for success.

Signposts for feedback

In an online course, seek even more opportunities for providing feedback. In online courses, students have a great sense of isolation. Build in more periodic reminders that require students to review learning outcomes at various points in the course.

Suggestion: at the end of each module, prompt the students with a series of questions that enable them to review the learning objectives and to reflect (in one or two sentences) on the progress that they’re making. This could even be done weekly. Craft the prompts in a way that help the students realize why the learning outcome is significant and encourages them to identify the next step to keep learning in that topic. These small regular reflections help build a pattern for learning on one’s own.

Don’t bunch all end-of-term assignments and metacognitive reflections into the last few days of the class. Recognize that students are taking other courses and may not be able to give deep attention to what you’re asking. Suggestion: 3 weeks before term ends–ask students to identify the most important things that they have learned in the course. Then, ask how will they respond to maintaining awareness of that new knowledge and to continue developing it.

Peer review

I used peer review in a writing course but not in a coding course. But peer review is a common technique among professional software developers. Suggestion: create at least two peer review assignments. Be sure to provide plenty of guidance for the peer review so that students know what they need to do.

Incremental sequencing of tasks

For me, this also reinforces the power of adopting an incremental approach to work and life, which I find to be very important. The cumulative benefit of incremental steps is very powerful for its impact on productivity. Consistent small steps emphasize process over content. You can use mini assignments to help students scaffold a larger project. Get to the point later in the term where the students are building the scaffold rather than just having one handed to them. Suggestion: low-stakes assignment in crafting a list of logical tasks needed to solve an assignment. In my case, I’ll present them with an outcome, and then they have to identify the steps involved in breaking down the complexity into logical steps of code. Tackling complexity in a logical manner is of utmost importance in learning to code.

Learning through multiple sources

Every field has its own set of resources for research. Lifelong learning depends upon one’s ability to navigate and grasp the information landscape of a field. Suggestion: low-stakes assignment that requires students to prepare a list of sources accompanied by a set of bullet points describing the value of each resource. Explain to students that this assignment is a practice in identifying sources for their own lifelong learning efforts. Follow the assignment with a peer review task so that other students can see what their classmates are finding.

You, the instructor, do not have to be the only source of information for the class. Model how students can learn on their own. As a librarian, I like to emphasis the importance of students finding and evaluating research resources.
Suggestion: a low-stakes assignment in which students find other resources on the Internet that explain a specific topic, and then have the students explain its value on a discussion board. Require that students not duplicate resources already explained by other students on the discussion board. Have students articulate one new aspect that they learned from that resource.

TIMELY FEEDBACK

Timely feedback is important on every assignment. You have to build time into your own busy schedule to do the grading and feedback. It’s so easy to delay that but progression in learning depends upon feedback while the assignment is still fresh in the students’s minds and, definitely, before the next assignment.

Make sure that all assignments are meaningful. Specifically describe how the assignment matches the needs of the course. Make the feedback meaningful. If the feedback is barely more than just a grade, then the assignment might feel like busy work to students.

Conditional release of content at strategic learning moments

In learning to code, the student needs to demonstrate sufficient skill before moving onto a more complex task. If not, the student is going to fall behind quickly. I emphasize sufficient skill and not mastery. In an introductory programming class, I do not ever want students to feel that they need to master something before moving forward. Mastery comes later. First, they need to learn what is good enough. Suggestion: release the next module when the student has demonstrated sufficient skill in an assignment. This process could be problematic if a student falls really far behind. However, as the teacher, this conditional release process should help you to more quickly identify students who are struggling. Then you can offer them the needed level of attention to get them over that hump.

The type of conditional release assignment should be low-stakes, perhaps even without points. A few examples described in Small Teaching Online:

  • a vocabulary quiz on key terms;
  • a metacognitive reflection on key concepts;
  • a beginning of module task, with detailed instructions, in which students reflect on how the upcoming module fits into the overall course;
  • a quiz on a video lecture before the assignment is made available.

The beginning of module task listed above really forces the students to think about what they are about to start learning and its relationship to knowledge that they already have developed in the course. This might seem like a very foreign task to most students, so you probably should model it earlier in the course so that they have examples as to what you’re expecting.

The video lecture quiz seems very useful since we know that students might not watch all of video, even if it’s only a few minutes. Or, even if they watched it, have they grasped the significance?

The experts caution not to overdo this approach. Use it sparingly, not for every lesson but at strategic moments in the course. Otherwise, it falls into appearing as busy work.

Discussion board

Provide meaningful discussion prompts throughout the term. Make sure that students check the board. Their postings on the discussion board could be part of the class participation grade. Encourage postings by providing deadline dates for initial posts and replies. For students not participating, nudge them early in the term to do so. If you let it go, then students feel that it’s not important.

Respond on the discussion board yourself so that students see that you are engaged in the class. Schedule 30 minutes a day on your calendar regularly to check on the class discussion. Post short replies as needed. For more complex responses, consider posting a video response.

Depending upon class size, segment certain topics into small discussions groups.

Have one discussion board that is purely a Q&A forum. Encourage students to submit all questions to you through this Q&A forum. Provide extra credit points for students who can help answer the questions of other students.

When you need to provide private feedback to a student’s work, write up an anonymized version of that feedback and post it to the board. Just be sure to protect the student’s identity when necessary.

Use the board’s sticky feature to pin your important responses to the top of the discussion so that students don’t have to wade through everything to find the critical things that you are saying.

Before each class, send an announcement highlighting key points and questions that will help students be prepared for the class. This process not only place emphasis on the key concepts but also forms a study guide for the course. In a totally asynchronous class, this textual announcement could serve as an accompaniment to the video “lecture”.

Group work

So much of active learning is structured around group work. These projects are already difficult enough with in-person teaching. Online teaching adds an extra layer of difficulty. How can we make the purpose of distributed group work relevant?

Suggestion: provide guidance on the importance of learning how to work in a team. I like for my students to view this TED talk from Matt Mullenwegg (founder of WordPress) on “Why working from home is good for business.”

With group work, it’s always so hard to know whether to let students self choose their groups or if you should group them. With online instruction, it’s much more difficult to get a sense as to what students are personally close to each other. You can’t see the friendships by how they sit near each other or by their conversations with each other. Unless you already know the students, you’re going to be making some guesses if you try to organize the groups. And you might guess very badly. I’m going with self-selection and see how that goes.

If you teach coding: use GitHub

I’m a big fan of GitHub and use it daily in my own work as well as with my teaching. I won’t go into all the details of how I use GitHub or its possibilities for educational use. It’s valuable even for non-coding courses. Plus, it’s a marketable skill that students should learn about if they’re going into any technology-based industry. Suggestion: even if you don’t code, you can still use the issue tracking and project management functions of GitHub very effectively.

Show up for class!

As with everything: relationships are the key. Students have to see that you are interested in this topic and motivated to help them learn. If you don’t demonstrate that in every interaction with your students, don’t expect them to be very enthusiastic about your course. When a class is asynchronous online, use some of the techniques discussed in this post to enliven your own engagement with the course. Just because it’s asynchronous online, don’t treat teaching as a passive activity. Indeed, ideally, you’ve already done so much prep work in making it online, you are able to devote extra time to individualized interactions and feedback. After all, your individualized time provides the most value to each student. That’s what they’re paying for: your time. If you go asynchronous online, figure out how to show up for class even when there is no schedule class time.

Empathy for the students

This should go without saying. Take this as a gentle reminder. Remember that your students are just people trying their best in busy lives with many demands on their time. Your course might be a brand new subject to them, and perhaps even very intimidating. You might be intimidating. (Self-awareness is always difficult.) For remote students, remember that they live in all sorts of conditions that might impact their ability to focus on their studies. And remember that the Fall of 2020 is a highly unusual time: global pandemic, civil unrest, political crisis, a collapsing economy. All combined, in the US, it’s also a hugely significant presidential election year. Recognize that students are under even greater stress than ever before in our lifetimes.

A metacognitive note

The primary reason I wrote this post and an upcoming video is to implant this information into my own mind so that I can structure it effectively into my course. I read the book, highlighted a lot of sentences, nodded my head vigorously when I read key points. But, I know how I learn: it’s not just through reading. Suggestion: talk to students about your own learning process. Demystify the professor. You weren’t born with all this knowledge.

Article

What is GitHub?

GitHub has become a key tool in not only my web development process but also in my life and work.

You definitely don’t need GitHub in order to create web sites, but it can really help you stay organized and productive.

GitHub, as the name suggests, is based on what was once a little-known set of software for synchronizing repositories of software code. Git, started in 2005, is an open source software system for version control of distributed code repositories. (I’ll leave explaining the details of git to another time.)

GitHub is a service layer built on top of git. GitHub was started in 2008 as a small startup. The popularity grew over time, and GitHub now has over 40 million users. In 2018 Microsoft purchased GitHub for $7.5 billion.

GitHub is not the only service of its type. There’s also GitLab, Bitbucket and a few others. I prefer GitHub, personally. I like its interface and additional features. (I’m not interested in debating the pros and cons of GitHub over another system.)

One of the aspects of GitHub I like best are its project management features, particularly issue tracking. Every repository on GitHub comes with a built-in issue tracking system, project management board, and even a wiki. These tools are very useful in any team-based project. But they are also really useful when just working in solitude on your own project.

You can even create a repository without any code and still use the project management tools. Plus, everyone now has the option to make their repositories public or private.

Another tool of GitHub that I emphasize in a course on learning to program is the ability for simple web publishing through GitHub. It’s incredibly easy to setup a website and start publishing your own HTML and CSS code.

Article

How to Write Comments in JavaScript

All programming languages have the capability for the programmer to add comments into the code. Comments, unlike the other parts of the code, are intended for humans. Writing good comments are an important part of coding. Comments provide notes on what the code is doing.

Some professional programmers will say that good programming does not need explanation. But, as a beginner in coding, you should make use of comments.

Two methods to indicate a comment in JavaScript

Comments on a single line are started with two forward slashes //.

function pageTransition () {
  var tl = gsap.timeline();

  tl.set('.loading-screen', {transformOrigin: "bottom left"});
  //raises div to the top of the screen, horizontally
  tl.to('.loading-screen', { duration: .5, scaleY: 1});
  //moves div off top of screen
  tl.to('.loading-screen', { duration: .5, scaleY: 0, skewX: 0,
 transformOrigin: "top left", ease: "power1.out", delay: 1});
}

On lines 5 and 7, you can see two different single line comments. Those comments describe the code in the very next line that follows the comment.

The reason you write this type of comment would be for yourself: so that you remember a month later what the code is doing. As you are learning to code, leaving a lot of explanations is a good form of teaching yourself what the code does. Also, comments help others understand your code. As you gain more experience, you will write fewer comments.

Multi-line comments, or block comments, start with the opening tag /* and end with the closing tag */

function pageTransition () {
  var tl = gsap.timeline();

  tl.set('.loading-screen', {transformOrigin: "bottom left"});
  /*
  tl.to('.loading-screen', { duration: .5, scaleY: 1});
  tl.to('.loading-screen', { duration: .5, scaleY: 0, skewX: 0,
 transformOrigin: "top left", ease: "power1.out", delay: 1});
*/
}

The multi-line comment above comments out, or disables, those lines of code. In most code editors, lines that are comments will be grayed out and not in color. You can use comments in this manner to debug code when you are trying to troubleshoot a problem.

Cleaning up comments

When you are finished coding, either before you turn in an assignment or start using code for production work, go back and delete any unnecessary comments. This will make your code more readable in the long-term.

Article

The Collapse of Higher Education

Changes have been coming for higher education for some decades. It’s naive to think that higher ed in the mid-21st century will be the same as the late 20th century. The coronavirus pandemic marks the end of the 20th century and that way of thinking about the world. We now have students entering college who were born after 9/11, yet university administrators proudly tout their recent strategic plans at creating a 21st century education. For our students, it always has been the 21st century.

What does an education at an elite liberal arts college get you? It buys you membership in an exclusive alumni club.

As the graduate of such a college and as faculty in such a college, we like to espouse the benefits of a small, residential liberal arts college and how it prepares you for lifelong learning and handling the complexities of a changing world.

But we don’t know the counterfactual.

How different would my life have been if I had gone to a second-rank state university? Might I not have ended up in the very same job as I have now? The only real difference I can discern is that I would have had a different set of friends. But my very dear friends from college are mainly just Facebook friends now as we live all across the country. Over the years, we all have developed many other friends. Wherever anyone goes to college, or even if one doesn’t attend college, friendships will be created, some will fade, some will endure.

A perspective I’ve heard from fellow faculty is that college prepares you for life, for work and community. Is college the only way? Does not actual work prepare you better for the workplace?

I’ve been fairly successful in my career, but I truly know that success has come from the early work experiences in my career and not from college or graduate school. All I got from the latter were the credentials that legitimated access to the profession.

Do 18 year olds really know what they want to do with their lives? Or are they doing what they think their parents want them to do? Why do I meet so many teenagers who want to go into investment banking, wealth management, or law? Really, kids? Your life goal is to help people with more money than you make even more money?

In a way, I understand that. It’s not just parental pressure. A long-held American ideal was that each generation would do better than their parents. But if your parents are pulling down $600k/year, then you have limited choices of careers for doing better than that.

A value of the liberal arts is found in expanding the proverbial horizon of opportunity: highlighting that there’s more to life than just making money. And, if you do well financially, you’ll have the broad awareness of cultural and societal issues towards which you can contribute your excess wealth.

But I do understand those kids interested in finance. In high school, I remember reading an article in Forbes, which in the 1980s was a much better magazine than the website of the same name is now. The article profiled a research analyst in an investment banking firm. That was my first awareness that such a job existed. It sounded appealing. I had barely escaped poverty in small town Tennessee and wanted so much more.

The liberal arts provided a glorious distraction. Astonishing myself, I chose English as my major even though it wasn’t my best subject. I liked the idea of reading all those great works of literature, which I knew even then at age 20 that I would be unlikely to ever get around to reading on my own. Besides, I always thought that I would go straight to grad school and obtain my professional skills then. I got derailed for various reasons. Grad school got put on hold for a few years, and I got rejected from job after job because I “had no skills”. Finally, I got it all together and became a librarian while I figured out what I really wanted to do. 28 years later, still a librarian though librarianship has changed a lot.

These days, I’m all about helping younger generations learn about career possibilities that they’ve never thought about. And helping them learn about ways of working, particularly distributed work (to use the term preferred by Matt Mullenweg).

Between 2005 – 2013, I lived in Buenos Aires and worked remotely for clients in the U.S., Europe, and Australia. I never saw the faces of most of those clients. I never heard the voices of most of those clients. The best work is done through writing, not talking. Organizational dysfunction almost always stem from miscommunications and fostered through workplace chatter.

In the English-speaking expat community of Buenos Aires, I started meeting a variety of people who had extremely different educational backgrounds. Some never went to college and had very successful careers in their chosen endeavors. Most never went to an “elite” college, yet had done extremely well in life. It forced me to question the value of my undergraduate days at a residential liberal arts college. I loved those days as a student but I cannot say with any certainty that I am any better for that. (I can say with certainty that I amassed a lot of debt and suffered financial problems for years as I struggled to repay student loans.)

There will still be a place for the elite liberal arts college since many will want to buy their way into those alumni networks. And that’s fine. That serves a purpose. But we’re fooling ourselves if we really think that such an environment is the only way a smart person can get an outstanding education.

Increasingly, I’m more and more interested in exploring how do you bring those qualities of a residential liberal arts college into a distributed, online learning environment that engages people throughout a lifetime of learning.

Learning doesn’t stop at age 22. You’re just getting started.

But the traditional structure of higher education makes it difficult and expensive to pursue study later in life while also working full-time and raising a family. Many universities and also for-profit enterprises have established non-traditional structures, mostly online.

Most residential colleges will survive this coronavirus pandemic of 2020. But what if pandemics become the new normal, every few years? What if pandemics, buttressed by climate change, form the defining characteristics of the 21st century?

The USA started the century with a messy presidential election. Twenty years later we’re still entangled in even messier elections. At the start of the century, terrorism redefined so much with 9/11. Nearly twenty years later, we’re still stuck in a way on terrorism. We try to ignore the science of climate change. Why are we willing to bet that this pandemic is a one-off event?

It’s time to get busy educating the generation that will define the 21st century in a way that prepares them to handle the complex problems of the coming decades.

That last sentence leaves a lot of questions hanging as to what that looks like. More on that soon…

Article

Divi: Hide Social Media Icons in Footer

In the footer of the Divi theme, a set of social media icons appear:

You’ll want to turn these off if you’re not using. Or, you can add in your social media information for the ones you’re using them.

In the theme customizer, select the Footer.

Then in the submenu that appears after that, select Footer Elements:

Then unselect the option for show social icons, and then press Publish.

After that, the social media icons should have disappeared from the footer of your site.

Adding your own links to the social media icons

In the Divi theme options, you can also choose which social icons to show and add your own addresses to those that you are using.

From the WP Dashboard, choose the Divi menu and Theme Options.

On the Divi Theme Options page, be sure that you are on the General tab (which should be the default tab when you open Theme Options). Scroll down until you see the following part of the page:

It’s in that set of options that you can individually disable/enable different icons. And in the field that says URL, e.g., Twitter Profile Url, you can enter the full address of your social media info

Article

Divi: hiding the logo

By default the Divi theme includes its own logo in the top left corner of the page as you scroll down.

There are two places in the customizing themes section where you want to change the setting for hiding the logo. Go to the WP Dashboard for your site.

Hover over the Divi menu option so that the pop-up menu displays, and then select Theme Customizer.

Hiding the Divi logo: step 1

In the theme customizer, go to Header & Navigation:

In the Header & Navigation section, select Primary Menu Bar:

Several options will then display for customizing the primary menu bar of the Divi theme. Select the option to hide logo image. Then press Publish. The Divi logo will be removed from the primary menu.

Feel free to experiment with the other options.

Hiding the Divi logo: step 2

It’s important to note that the Divi logo reappears when you scroll the page unless you also make the following setting. Go back to the Header & Navigation section and select Fixed Navigation Settings.

Select the option to hide logo image in fixed navigation settings. Then press Publish. The logo will now no longer appear when you scroll the page down.

Hiding the Divi logo: step 3

Oh, lord, wait. There’s another place where you want to hide the Divi logo. When you resize the screen to a smaller size or look at your site on a mobile device, then the Divi logo will appear by default. In the Theme Customizer, you change this setting under Mobile Styles.

In the menu for customizing mobile styles, select Mobile Menu:

Then in the settings for the mobile menu, select hide logo image and then Publish.

You have now completed the 3 steps for hiding the Divi logo This is the process for not having a logo at all. But what if you just want to change the logo to an image of your own? Or to text of your own, like your name?

Article

Task list for initial prototype implementation

#4 in a series

What do you need to do?

The prototype shows you what you need to do. You then need to convert that into a list of tasks that you need to accomplish.

You can write the list as any kind of document. Don’t get stuck on figuring out the most fantastic task list app. Just write the stuff down.

What do you need to know?

As you create the task list, mark the items that you don’t yet know how to do. (It’s okay if that are all the items, but you probably know more than you realize.)

Initial tasks

For the zoonoses site I’m developing, here’s an initial list of tasks for getting started:

  • organize my file structure
  • setup the base files
  • implement a rough mockup in HTML/CSS based on the prototype sketch

Once you have this very rough prototype as actual site that you can work with, then start iterating. Add different elements. Build on each part incrementally. Before you know it, you’ll have a website.

css.php