University of Maryland University College (UMUC) has created an Introduction to Programming course which teaches multiple programming languages. This is needed because many majors at UMUC use different programming languages specialized for their fields. Students across many majors enroll in the same course, however the course is dynamically customized to the programming language that they need to learn. This has created educational and financial benefits.
For decades only Computer Science majors needed to know how to program computers. That has changed and we are seeing many majors require basic programming skills. These include Software Engineering, Database Management, Biotechnology, Data Analytics and more.
There are hundreds of computer programming languages each specialized for different types of computing [1]. Because of this language diversity each major often wants to use different programming languages. This presents a problem when teaching students how to program.
Schools typically solve this problem in one of two ways. Some schools select one official programming language and require all departments to use it. The disadvantage of this approach is that some majors use languages not designed for their subject. Another approach that some schools take is to develop and conduct multiple Introduction to Programming courses each using different programming languages. The disadvantage of this approach is that multiple courses need to be developed and since enrollment is spread over multiple courses there are more partially filled sections, which is not financially optimal.
University of Maryland University College (UMUC) has created the first multi-language introduction to programming course. It is actually two courses in a series. UMUC's Software Engineering and Database programs use the Java programming language. Biotechnology uses Python and Data Analytics uses R. All students, regardless of major, register and take the same introduction to programming course. However, the classroom is individually customized to the language they need to learn.
The courses allow students to select what language that they would like to learn. Each module has content broken into general information and specific content for each programming language: Java, Python and R. The student's selection of a programming language controls visibility of the content. All students see the general information about the concept and the content specific to their programming language.
There are many advantages to this multiple programming language course:
UMUC has identified some disadvantages:
The multiple language introduction to programming courses were launched at UMUC in January 2016. In one semester UMUC taught over 90 students how to program in different programming language. UMUC is on track to have 200 students learn programming in 2016.
We believe that this practice supports the OLC pillars.
Learn Effective: This practice allows students to learn the programming language appropriate for their major. But they are not limited to only that one language.
Scale: To reduce the cost of higher education institutions need to be as efficient as possible. One important way to do this is to have as many full sections as possible. This is a very efficient approach.
Access: By allowing students without programming backgrounds into these in demand majors permits more students to change careers.
Faculty Satisfaction: The faculty find the courses very rewarding and many faculty had to learn new programming languages in order to teach them.
Student Satisfaction: Student surveys suggest that the students are satisfied with the classes also. These courses have removed barriers to students entering these majors.
Most, if not all, online classroom software support features that can be used to implement a class similar to this one. In UMUC's case their classroom software support a student survey feature. A survey was built that asked students to select the language(s) that they wanted to learn. Visibility triggers were placed on the programming language specific content that corresponded to the student's selection. General content that pertains to all programming languages did not have such a trigger.
Assuming a school has online classroom software, there is no additional cost.
[1] Fernandez, M. (2014). Programming Languages and Operational Semantics: A Concise Overview, Springer.