CS1

CarBot

CarBot is a first programming assignment for a CS0/CS1 course. It is a chatbot program wrapped around a monthly payment calculator for a car loan.

Input Validation - "All Input is Evil"

Imagine making a 1 billion dollar error by typing the incorrect information into a computer. That is what happened to a Japanese securities trader in December of 2005. The trader accidentally typed in the wrong amount when selling a share of stock and lost his investors millions upon millions of dollars. This module discusses the importance input validation and the risks involved if this is not considered in code.

File I/O - Benford's Law

In this lab, students experiment with input and output files using real-world population data to see if they follow Benford's Law. At the end of the lab, students are asked discussion questions which help to extend their thinking.

Engagement Excellence

Arrays 1- CoWorkers and Directions

In this lab, students get practice using Arrays and ArrayLists to complete common tasks such as "fixing" a co-worker's mistake, and reversing the directions from "their office to their client's office". Student are also asked discussion questions at the end in order to extend their thinking.

Integer Error – You Can’t Count That High

In this laboratory, student are asked to examine integer values that are too large or too small and may fall outside the allowable range for their data type. This may lead to undefined behavior that can both reduce the robustness of the code and lead to security vulnerabilities.

Pokemon Go Graphic

In this homework assignment, students are asked to use Python Turtle Graphics to design and draw a simple Pokémon graphic.

CS1510 (CS1) Syllabus

This is the first introductory computer science course at the University of Northern Iowa. It is a semester-long course with three one-hour classroom lectures and a two-hour interactive lab per week. It is required for computer science majors but non-majors also take the course. No prior programming experience is expected, but the class is designed to be engaging to those with and without programming experience. While a major goal of the course is to provide a good start to the development of programming skills (using Python), the course is not solely about programming.  

Upon successful completion of the course students should have gained the following skills and proficiencies: general computer and operating system usage, computer operation, a mental model of how programs are executed, machine capabilities and functions, general program design, standard approaches to common (simple) programming tasks, abstraction (data , procedural, thinking), data and problem representation, and elementary data structures.

Minecraft Drawing

In this assignment, students use Python functions to create two or more types of Minecraft tiles. Examples of a drawing as well as a summary of Turtle methods are provided for guidance. In addition, past submissions are provided for inspiration.

Video CV

In this lab (typically the first, or an induction session for a CS1 course), students work either individually or in pairs to create a one-minute video CV using equipment and software of their choosing. To start, students are simply told that a Computing major can lead to a number of career options, and they are encouraged to think and discuss "cool" or desired jobs. Students are then asked to create a video where they introduce themselves, talk about their experience and think about how their course will lead them to their desired job in the field. It is important to note that the videos are not made publically available, and are kept for staff use only.

Day One Ice Breakers

This a set of "icebreaker" activities are used on the first day of an introductory programming class to help create a welcoming learning environment for students and to lay the groundwork for discussions about how to be successful in Introductory Computing. I have included student-facing slides, a sign-in handout, and a short paper with tips for implementing these activities.

Subscribe to CS1