2_Poets: Reading Poetry Backwards – RPB v1.0

This programming assignment requires students to study, understand, and augment a Python program that (re)writes or “breaks” poems in various “deformed” manners, including printing the lines of a poem in reverse (last line to first line) and with randomized lines. Emily Dickinson wrote in the margins of a book: 'Did you ever read one of her Poems backward, because the plunge from the front overturned you?’ Learning goals include problem decomposition (functions), extending existing code, problem solving with multiple solutions, and building an app to handle a wide range of input texts.

The author of this material was awarded a 2016 NCWIT Engagement Excellence Award for this assignment. Learn more on NCWIT's awards page.

Engagement Excellence

1_Poets: Making a website -- Google's Ngram Viewer

This is the first of five assignments in a semester-long CS-1-like course named Computing for Poets to introduce students to programming within one area of the digital humanities: the application of computing to the study of digitized texts. Here, students must build a small website with answers to two queries applied to and the results obtained from Google’s Ngram Viewer. The course leverages a MOOC for HTML/CSS/Javascript practice to maximize in-class, hands-on sessions. Students will return to HTML in the final assignment in this series when their Python scripts will produce web pages on the go.

5_DNA: Comparative Genomics via Genomic Signature

This is the last of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics: the analysis of DNA within a single cell of an organism. Originally, the course targeted students in the life sciences but it now attracts students across the academy. The goal of these assignments is to prepare students to obtain enough confidence with scripting and associated scientific write-ups to conduct a small computational experiment in a final project.

This programming assignment requests a Python program to generate a report that serves as a preliminary study to compare and contrast certain features of sequences between multiple organisms. Comparative genomics is the analysis and comparison of genomes from different species. This assignment focuses on “genomic signature” to help infer if a region of DNA is “like” other regions of DNA. The genomic signature refers to the “characteristic frequency of oligonucleotides (e.g., motifs of length 4 bp are referred to as tetramers) in a genome or sequence. It has been observed that the genomic signature of phylogenetically related genomes is similar.

4_DNA: Motif Finder

This is the fourth of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics: the analysis of DNA within a single cell of an organism. Originally, the course targeted students in the life sciences but it now attracts students across the academy. The goal of these assignments is to prepare students to obtain enough confidence with scripting and associated scientific write-ups to conduct a small computational experiment in a final project.

This programming assignment assumes that you have already located a specific gene (perhaps using some of the software written in the previous assignment) but now you want to investigate the regulatory DNA sequences “upstream” (just prior to or to the left of) that gene. Regulatory (or promoter) sequences in intergenic regions (between the genes) are vitally important in the process of protein production. Promoter motifs (DNA "words") often are repetitive and/or "fuzzy" (variable) DNA sequences upstream of genes. This assignment applies regular expressions to locate certain categories of repetitions (direct and mirror repeats).

3_DNA: Mini Gene Finder

This is the third of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics: the analysis of DNA within a single cell of an organism. Originally, the course targeted students in the life sciences but it now attracts students across the academy. The goal of these assignments is to prepare students to obtain enough confidence with scripting and associated scientific write-ups to conduct a small computational experiment in a final project.

This programming assignment requests a Python program to work the steps in a simplified view of the Central Dogma of molecular biology that relates DNA, RNA, and proteins. Briefly put, the DNA sequence (gene) provides instructions for the protein's production. The program produces all three reading frames of an mRNA and outputs the results of four elementary tests to help a human reader pick the “valid” protein.

1_DNA: Playing with (strings of) DNA

This is the first of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics. This assignment requests a Python program to perform an introductory analysis of a "snip" of DNA that includes some upstream (intergenic) sequence and the beginning (but not all) of a gene (genic sequence). A "Starter Kit" includes a template of a Python source file that shows, by example, good introductory and inline documentation, the use of good (camelCase) variable names, and a healthy dose of print statements that produce meaningful and neat output. 

2_DNA: Chargaff’s Numbers

This is the second of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics. This programming assignment requests a Python program to open and read a FASTA-formatted file filled with DNA and print a neat summary of Chargaff’s numbers, defined as: the number/proportion/percentage of A, C, G, T nucleotides in the file of DNA. Students are required to research and download the genome of an entire microbe of their choice. In addition to submitting source code, students must practice their scientific writing in a report of their program as applied to an entire microbial genome of their choice. The report must include the sections of Introduction, Methods, Results, and Discussion.

Searching in Hi-Lo - CS1 First Day on Algorithm Design & Analysis

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning. I use this the first day of CS1, and sometimes the first week of CS2 (depending on students). Teams of 3-4 students work together to identify and evaluate several strategies (algorithms) to solve a Hi-Lo number guessing game. In doing so, they learn about tradeoffs between difficulty and efficiency, and are introduced to complexity analysis, although the activity does not use O() notation.

Wrapper classes

In this tutorial, students create a program in Java that utilizes wrapper classes. The program must include three ArrayLists (one of type Integer, type Double, and type Character) and it needs to parse values from the ArrayList.

Exam review: classes, methods, etc.

In this tutorial, students create a program in Java that covers methods, conditionals, and object-oriented programming. The activity requires students to use the Problem.java file to practice creating an interactive program that accepts user input and then performs some action on that entry. Then, the students must modify methods (such as answerCorrect) to evaluate the user's overall performance for answering questions correcting on the quiz/interactive program.

Subscribe to Baccalaureate Colleges - Liberal Arts