Multiple Programming Language Introduction to Programming Course

Author Information
Michael Scott Brown
Tommy Bennett
Lewis Williams
Institution(s) or Organization(s) Where EP Occurred: 
University of Maryland University College University of Maryland University College
Effective Practice Abstract/Summary
Abstract/Summary of Effective Practice: 

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.

Description of the Effective Practice
Description of the Effective Practice: 

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:

  • Not only do students learn the programming language for their major, but can optionally learn additional programming languages.
  • All students regardless of major enroll in the same class. UMUC has more full sections, which is financially beneficial.
  • New programming languages can be added in the future without creating new courses.

    UMUC has identified some disadvantages:

  • The faculty needs to have working knowledge of all of the programming languages.
  • Students cannot always help each other with assignments because they could be studying different languages.
  • Supporting Information for this Effective Practice
    Evidence of Effectiveness: 

    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.

    How does this practice relate to pillars?: 

    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.

    Equipment necessary to implement Effective Practice: 

    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.

    Estimate the probable costs associated with this practice: 

    Assuming a school has online classroom software, there is no additional cost.

    References, supporting documents: 

    [1] Fernandez, M. (2014). Programming Languages and Operational Semantics: A Concise Overview, Springer.

    Contact(s) for this Effective Practice
    Effective Practice Contact: 
    Michael Brown
    Email this contact:
    Effective Practice Contact 2: 
    Tommy Bennett
    Email contact 2: