CS1

I'm a Lumberjack and I'm Ok

Using the scenario of “Logsoft” a fictitious company that specializes in designing and maintaining logging software, students are asked to examine and manipulate a program that captures user activity for the company. Students are challenged with writing a utility that can merge two files correctly, one for capturing specific user information, and one file that runs even if it encounters a bad section of a disk.

You're An Ace!

Using statistics from the US Open Tennis Tournament, students create a program in Python that asks a user enter eight distinct numbers related to an individual tennis player. The program then uses those numbers to compute and report three statistics in order: number of serves attempted, double fault percentage, and ace percentage.

What a Penny Pincher!

In this project, students are asked to examine the cost of modifications done to a car and the impact on its fuel efficiency. Using python, students use certain functions such as number of miles driven per year, current mpg, cost (in dollars) of a gallon of gasoline, cost of the modification, and percent increase in mpg after the modification, in order to determine how long it will take the owner of the car to recoup their investment.

Introduction to the Raspberry Pi

This is a lab exercise in which students work in pairs to identify the hardware components on a Raspberry Pi, connect peripheral devices to it, perform the initial software installation, and log onto the computer. This lab assumes no prior experience and is the first lab of the semester.

The learning goals for the lab assignment are:

  • Know the basic architecture of a computing device
  • Understand the difference between hardware and software
  • Be able to connect a Raspberry Pi to peripheral devices, turn it on, and access the computer's command line interface

At the conclusion of this lab students are able to:

  • Identify and understand the basic architecture of a computer: processor, storage, and input/output
  • List the basic steps for instruction processing in the Von Neumann Model of computer architecture

Using programming to analyze real human DNA files

This assignment introduces the concepts of bio-computation and genetics and how programming is used to help solve current-day problems in those fields. Specifically this assignment looks at skin type, type-2 diabetes, exercise and diet. It includes references to a website with a diagram showing how the genotypes for exercise and diet interrelate and students need to develop code to implement the diagram. Learning objectives include: command-line arguments, data structure (python dictionary), if-else, loops, file input, writing user-defined functions.

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

Engagement Excellence

POGIL Activities (3) on Unit Testing in Java with JUnit

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning. Teams of 3-4 students work together to learn about unit testing in general, JUnit in particular, and effective test strategies.

The attached files are the student's versions of the activities. Please contact the author for the teacher's versions with solutions and additional information.

POGIL Activity on HTML 2: Documents and Links

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about HTML documents and links. Part 1 of the activity focuses on markup in general, HTML markup in particular, and related issues.

The attached file is the student's version of the activity. Please contact the author for the teacher's version with solutions and additional information.

POGIL Activity on HTML 1: Markup

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about markup in general, HTML markup in particular, and related issues. Part 2 of the activity focuses on HTML documents and links.

5_Poets: Only in the Poetry - Searching the Anglo-Saxon Corpus

This programming assignment requires students to consider a collection of Old English poetry and prose texts and consider the conjecture if any words appear only in the poetry (throughout the entire corpus)? And if so, how many times do these words occur? Students use a Python dictionary (also called a “hash table” or “map”) to keep track of all words in the poetry and then remove words from that dictionary that appear in the prose. Learning goals include problem decomposition (functions), extending existing code, technical writing, and writing scripts to produce HTML output.

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

4_Poets: True or False? Elves are tall … and Tolkien won’t let you think otherwise

This Python programming assignment requires students to seek evidence to help answer the following conjecture: True or False? Tolkien wanted his readers to fully appreciate that his elves were large, thus he used the word “tall” (or other variants such as “big”, “giant”, “large”, etc.) in close proximity to the name of an elf (e.g., “Legolas”, “Galadriel” or even the generic word, “elf”). Learning goals include problem decomposition (functions), extending existing code, technical writing, building an app to handle a wide range of input texts, and writing scripts to produce Excel-ready (comma-separated value) output.

Subscribe to CS1