DARPA has a program called MUSE (Mining and Understanding Software Enclaves) that is described as a "paradigm shift in the way we think about software." The first step is no less than for MUSE to suck up all of the world’s open-source software. That would be hundreds of billions of lines of code, which would then need to be organized it in at database.
A reason to attempt this is because the 20 billion lines of code written each year includes lots of duplication. MUSE will assemble a massive collection of chunks of code and tag it so that programmers can automatically be found and assembled. That means that someone who knows little about programming languages would be able to program.
Might MUSE be a way to launch non-coding programming?
This can also fit in with President Obama’s BRAIN Initiative and it may contribute to the development of brain-inspired computers.
Cognitive technology is still emerging, but Irving Wladawsky-Berger, formerly of IBM and now at New York University, has said “We should definitely teach design. This is not coding, or even programming. It requires the ability to think about the problem, organize the approach, know how to use design tools.”
Quicksearch Your search for coding returned 23 results:
The Georgia Institute of Technology made news when it offered in 2014 a low-cost online master’s degree program in computer science that used MOOCs. It was an experiment and a successful one that now has nearly 4,000 students.
They have talked about testing the MOOC model elsewhere, and now it is expanding with a low-cost online computer science course for undergrads.
They are partnering with edX and McGraw-Hill Education to offer a fully online introductory coding course. The online “Introduction to Computing Using Python” course will feature the same content as their on-campus course (a requirement for all undergraduates). It will be created with McGraw-Hill Education’s adaptive “SmartBook” technology.
Like many other MOOCs, it will be freely available through edX, the nonprofit online learning destination founded by Harvard and MIT.The startup plan is to make it available to anyone as a MOOC. It will also have an optional $99 identity-verified certificate. They will pilot the course in February 2017 with about 50 of its own students and it will carry college credit for them.
They are not currently planning an undergraduate degree in computer science like their masters degree,
This expansion is part of a larger trend towards degrees in which students spend less time on campus. MIT (which co-founded edX) is another school looking at whether freshman and senior years could be delivered through online education.
Georgia Tech partnered with Udacity for their master’s degree program and is using edX for the new undergraduate course and they also offer online courses via Coursera.
A recent story on NPR asked "Should Computer Education Cover More Than Just Coding?" My answer is, "Yes." You can read their story for the full details, but the takeaways are that teaching other computer (really "technology") skills and the accompanying "soft" skills like critical thinking often require coding.
For example, students learning to work with and structure data, or ones working with an Arduino will need to use code and understand basic concepts such as algorithms.
There is global interest in teaching programming in schools. Initiatives that come from outside education, like Code.org, which is backed by Mark Zuckerberg and Bill Gates, are trying to get more students learning a second (or third) language, but it's not one that is spoken. But I also see a backlash of those who say that writing code is a terrible way for humans to instruct computers and that newer technology may render programming languages "about as useful as Latin."
I support some middle ground. Teaching some coding as part of regular language study in English and world language classes.
This week I am giving a presentation at the NJEDge.Net Faculty Best Practices Showcase that I titled "Code as a (second) Language." It's not about becoming a programmer. Learning about code, like learning about grammar, is about understanding how a system of communication works below the surface.
There are several "computer science, meets humanities" programs. One is at Stanford University, which offers a new major there called CS+X which is a middle ground between computer science and any of 14 disciplines in the humanities, including history, art, and classics.
What are the cognitive advantages to learning a second language? Learning any system of signs, symbols and rules used to communicate improves thinking by challenging the brain to: recognize & negotiate meaning, work within structures and rules, and master different language patterns.
As a longtime language teacher - and shorter term coder - I know that code-switching (and that is the term) occurs when a speaker alternates between two or more languages, or language varieties, in the context of a single conversation. That can be done between English and French, but also between English and Java.
Whether you are working in a traditional language class or a programming class, memorizing rules and learning new vocabulary strengthens overall memory. Multilingual people are better at remembering lists or sequences. Language study & coding forces a focus on knowing important information & excluding extraneous information. We have all heard and read beautiful” and elegant language, such as in a Shakespeare play or great poem, but programmers and mathematicians also talk about beautiful and elegant code and equations.
The conference this week is about STEAM -- STEM plus the arts, including language arts.
Engineering and other STEM subjects are appealing to students in part because they often include hands-on, real-world applications. Many students also feel that these majors lead to better job prospects. Of course, learning to think like an engineer could be useful no matter what students decide to pursue. An increasing number of high schools offer introduction to engineering courses that are project-based, an inquiry-centered.
There is a Code as a Second Language National Initiative that brings tech professionals and software engineers into schools to introduce students to coding in classes, but also in after-school sessions and events like coding jams.
This is all great, but my interest here is bring the coding found in STEM courses into languages classes.
How is a programming language comparable to a spoken language?
My idea is not without precedents. Natural language processing looks at syntax, semantics and models of language analysis, interpretation & generation. Human language technology continues to grow. On a large scale, products like Google and other search tools and Apple's Siri and speech drive commercial uses. The field of computational linguistics is one that grew out of early machine translation efforts and generated mechanized linguistic theories.
There are many programming languages we might use, depending on the grade level and applications. Although JAVA is the most popular programming language, and the AP computer science exam uses a Java subset, it is more than many students will have time to learn. There are coding options that I have written about here for using simpler languages (such as SCRATCH) and tools to aid in writing programs.
Although Java might not be the coolest language to use these days, you can do many things with it - including tapping into the current interest by young people for Minecraft. Using mods for Minecraft makes Java more beginner-friendly.
Language teachers can work with STEM teachers, especially in K-12 schools, to show students the connections between concepts like syntax and help bridge student knowledge of the two fields and also understand commonalties in communications.
The 2016 NJEDge.Net Faculty Best Practices Showcase is a venue to showcase faculty work, work-in-progress or posters to the New Jersey Higher Ed and K-12 communities. Registration and Information on the presentations at NJEDge.net/activities/facultyshowcase/2016/
View the "Coding as a (second) Language" slides via Slideshare by Kenneth Ronkowitz
Microsoft sees the potential of Minecraft. Hopefully, it sees its potential as a learning tool and not just as a way to make money. They acquired an existing version of the software, MinecraftEdu, from an independent developer, Teacher Gaming.
MinecraftEdu provides products and services to educators to use Minecraft in the classroom. This includes a special version of the software, a cloud-based hosting solution for Minecraft classroom servers so students and teachers can connect and play together, a library of lessons and activities and a teacher community with 5,500 teachers in 40+ countries using it for STEM to Language to History to Art.
Microsoft will also launch a new version of Minecraft for schools this summer. They will offer a free "trial" version - so profit will certainly play a role in their plans.
I never taught or used Minecraft in any depth but it is very popular. Though I would classify it as an online video game, it is one where you build rather than just use virtual worlds using blocks. It is virtual world reminiscent of places like Second Life and The Sims (though not as sophisticated and not as graphic-intensive) that kids use as a digital sandbox, They can construct anything they want using mostly block-shaped materials. Kids may enjoy building and destroying things there, but educators connected to the constructive nature as a supplemental learning tool.
It has a user base of at least 22 million people. Kids discovered it and then teachers who saw that interest then found ways to use it for lessons.
Microsoft does offer schools some productivity tools (Office 365 Education) free to teachers and students, and some teachers use Skype for videoconferencing platform, but Google has deeper hooks into schools. Google Apps for Education is used by more than 50 million students, teachers and administrators worldwide and certainly "Minecraft: Education Edition" is intended to help Microsoft get into more classrooms.
I wrote earlier about the "Hour of Code" and about how coding is a subject not often taught in schools (at all levels) or taught in isolation and to only a small percentage of students.
Students and teachers are sometimes moving into coding via other projects, such as a makerspace and playing with things like an Arduino board or robotics that require some coding knowledge. But a lot of coding education is occurring outside of traditional school settings.
Code.org has a search tool to find computer science classes in your area and my searching around New Jersey didn't turn up as much as I would have guessed.
Coding bootcamps are intensive, accelerated learning programs that teach beginners coding skills, but the "coding academies" like General Assembly, Galvanize, and the Flatiron School are much more.
I know someone is reading this and thinking "Why do I or my students need to learn to code?" I might answer that you don't know what skills will be necessary for your future work, but knowing something about coding could be part of that skil set. Of course, that is very close to the answer I got from my 8th grade algebra teacher when I complained that I would never need algebra to be a writer or English teacher.
These coding bootcamps and academies have only been around for about five years, although there have been computer science classes and programming courses in schools and for-profits for more than three decades.
Ones that are intended for adults are usually making their money by offering courses aligned with or even in partnership with an employer network.
In 2015, it was expected that the number of graduates from such programs would be 16,000. Not an enormous number, but more than double from 2014, according to a recent survey by Course Report.
Almost none of these are accredited and so students enrolled are more interested in skills than credits or certificates. However, some of these students would probably be interested in using those courses towards a college degree if it was offered, as is the case with many college certificate programs that are usually part of their continuing education or adult learning programs. These can include courses that lead directly into graduate degree programs.
College tuition isn't cheap and these outside bootcamps and academies aren’t cheap either. A summary of the Course Report survey notes that the average cost of the courses is more than $11,000. There are about 70 of the programs in the United States and Canada today.
Last March, President Obama announced an initiative, called TechHire, to train Americans in technology jobs. Among other things, the effort encourages people to enroll in coding boot camps.
Boot camps have the potential to complement computer-science departments’ curricula and degrees, but most colleges are not comfortable in these partnerships, although they do often work with individual employers looking for customized training.
I am particularly interested in the growth of programs for our younger students that use coding both as a critical thinking builder and as a way to learn coding in order to do other STEAM projects.
The vision of many of these groups is based on the belief that computer science and programming should be part of the core curriculum in education, alongside other science, technology, engineering, and mathematics (STEM) courses, such as biology, physics, chemistry and algebra.
Here are some resources towards that goal.
Code.org – This nonprofit foundation website is a great starting point for coding novices. It shares lots of useful online resources, apps and places to learning coding.
Scratch was designed by MIT students and aimed at children ages 8 to 16 as an easy-to-use programming language. Without using lines of code, you arrange and snap together Scratch blocks of code.
Stencyl is software inspired by Scratch's snapping blocks system that allows you to create simple games for iOS, Android, Flash, Windows, Linux and Mac. There are paid pro plans that come with advanced functionality.
Khan Academy is best known for its math tutorials that often look like games, but it also has basic programming tutorials and students can learn to build graphics, animations and interactive visualizations.
CodeAcademy is an interactive website that has a gentle learning curve and teaches kids basic code through fun and simple exercises that feel like games.
Hackety Hack this quick download allows you to learn Ruby, an open-source programming language that's easy and intuitive.
Code Monster is particularly good for kids learning as the Code Monster shows two adjacent boxes - one showing code, the other shows what the code does. As you play around with the code with some help from a prompt, you learn what each command does.
No one knows how old you are when you use these sites, so all you curious adults should feel free to use them as a way to get started - an then share them with your own kids in school or at home.