From “Hello World!” to Fourier Transforms: Teaching linguistics undergraduates to code in ten weeks or less

Reed Blaylock, University of Southern California

I taught linguistics students to code by using backward design to scaffold weekly programming assignments that built to a final project of coding frequency decomposition and sine wave synthesis of vowels. Based on grades and self-reflections, students successfully learned to complete complex computational tasks in under 10 weeks.

Watch this 1-minute video

Learn more here

“Speech for Humans and Machines” was a smallish upper-division course with about 15 linguistics students that I taught during the first COVID quarter in Spring 2020 at the University of California, Santa Barbara. In this class, students learned how to code some of the common algorithms that have been used to model speech production, to synthesize speech, and to recognize natural speech. 

I wanted to give these students practical coding experience with real-world speech algorithms. But some students had extensive programming backgrounds while others had never programmed before. The challenge was to develop a curriculum that would benefit all the students by teaching the fundamentals of computer programming through the lens of speech synthesis and recognition.

I used Backward Design to create a series of weekly exercises that led up to summative assessment. Assignments had a “Read, write, reflect” structure: students read and explained samples of code, wrote algorithms using code they had read, and reflected on their work. Each assignment’s algorithm was useful in the scope of phonetics (e.g., synthesize one sine wave) and a component of the final assessment (e.g., synthesize a vowel). I included line-by-line instructions in the “write” part of the assignment so students could focus on one step at a time.

Overall, this strategy worked: students appeared to have mastered synthesizing and decomposing vowels in just 10 weeks. In end-of-term reflections, students said they appreciated the new coding skills, enjoyed creating something “tangible”, and saw use for these algorithms beyond linguistics.

While students with no previous programming experience did get up to speed, some reported struggling both affectively (“I don’t think I can do this”) and conceptually (“I’m having trouble understanding/connecting this to what we’ve already done”). These students probably worked longer hours than students who did have previous programming experience, some of whom said they found the early assignments too easy.

It is common in introductory computer science classes to have students with a wide variety of previous programming experience. Some work in computer science pedagogy has suggested using different learning objectives for students with different amounts of previous coding experience: more advanced students receive larger and more complex tasks while novice students are given projects that focus on the basics. I might instead (or in addition) like to use a form of ungrading that takes students’ improvement into account. I welcome your feedback!


Backward design

Cho, J., & Allen, T. (2005). ” Backward” curiculum design and assessment: what goes around comes around, or haven’t we seen this before?. Taboo, 9(2), 105.

Wiggins, G., & McTighe, J. (1998). What is backward design. Understanding by design, 1, 7-19.


Selby, C. (2011). Four approaches to teaching programming.

Zavala, L. (2016). Read, Manipulate, and Write: A study of the role of these cumulative skills in learning computer programming. In Proceedings of the ASEE NE 2016 Conference. April (pp. 28-30).

Different expectations for different levels of coding experience

Jenkins, T., & Davy, J. (2002). Diversity and motivation in introductory programming. Innovation in Teaching and Learning in Information and Computer Sciences, 1(1), 1-9.

Additional Materials

This presentation is part of the organized session on Scholarly Teaching in Linguistics in the Age of Covid-19 and Beyond at the 2021 Annual Meeting of the Linguistic Society of America. For correspondence regarding this particular presentation, please contact the author(s) at the email address listed above.

Check out our other POSTER panel presentations:

POSTER Session A: Course Design [11:00am]
  1. Using a Class Wiki to Facilitate Community and Linguistic Inclusivity (Bjorndahl)
  2. Offline vs. Online Modalities in Extracurricular Programming (Lucovich)
  3. Diversifying the Field: Activities to make linguistics more relevant (Mantenuto)
  4. ADA Compliance and Teaching Linguistics Online: Best practices and resources (Miller)
  5. Contract grading in Introductory Linguistics: Creating motivated self-learners (Paraskevas)
  6. Course Design Principles for a More Diverse Professoriate (Truong)
  7. Rethinking Extra Credit: How gamification can reduce grade inflation and strengthen soft skills (Welch)
POSTER Session B: Learning Activities [11:30am]
  1. Podcasting in a Pandemic for Teaching, Outreach, and Justice (Anderson, Bjorkman, Desmeules-Trudel, Doner, Currie Hall, Mills, Sanders, Taniguchi)
  2. Interactive Activities for Asynchronous Introduction to Linguistics (Curtis)
  3. Team Based Learning and English Grammar: Building community and lowering affect (Launspach)
  4. Replacing Traditional Sections With Teams-based Groupwork: Remote learning and beyond (Lee)
  5. Journaling About Progress and Errors (Nordquist)
  6. Making Online Group Work Appealing Through Wikipedia Editing (Stvan)
  7. The impact of Metacognition in Linguistics Courses (Vallejos & Rodríguez-González)
POSTER Session C: Teaching a Specific Topic in Linguistics [12:00pm]
  1. From “Hello World!” to Fourier Transforms: Teaching linguistics undergraduates to code in ten weeks or less (Blaylock)
  2. Active Learning in Asynchronous Introductory Linguistics: Successes and challenges (Bunger)
  3. All in With Google Slides: Virtual engagement and formative assessment in introductory sign language linguistics (Geer)
  4. Fostering Learner Investment Through Objectives-based Evaluation and Structured Independent Research Projects (Nee & Remirez)
  5. Teaching Grammaticality with Online Tools (Rapp Young)
  6. Ten Trees a Day: How Gwilym the Trilingual Buffalo and Insights from Learning Science Can Improve Syntax Skills (Santelmann)
  7. Teaching Teachers Phonetics: The design and implementation of an asynchronous online English phonetics course (Weinberger, Almalki & Olesova)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: