A well-run introductory CS1 course is essential for all students within CS education. CS1 is necessary to keep students in the major and important to attract non-majors to the CS field. Unfortunately, there are many well-known issues that most CS1 courses have in common: high drop rates, low retention, high student stress, student struggle, academic dishonesty, and low grades. In this work, we aim to address these issues and seek to improve CS1 courses by focusing on weekly programming assignments. Our work introduces a different teaching approach from the traditional One Large Program (OLP) teaching approach, to a Many Small Programs (MSP) teaching approach. Instead of assigning students one large programming assignment to complete each week, the MSP approach involves assigning students multiple smaller programming assignments, for example 5-7 programs each week, instead. Such an approach has become more feasible with the advent of program auto-graders with immediate feedback to students, partial credit, and resubmit capabilities. In this dissertation, we discuss the conception of the MSP approach, provide insight into the process of transitioning from an OLP approach to an MSP approach, discuss various benefits that an MSP approach offers, discuss some pros and cons for using such an approach, present results from surveys and multiple analyses on various metrics related to an MSP approach, and discuss future use and improvements to the current MSP approach and tools used to analyze student interaction. This work shows that an MSP approach can lead to reduced student stress, can improve student grade performance, finds students making good use of the benefits an MSP approach offers, and shows that students are still well prepared for a CS2. Finally, we introduce a tool for instructors to upload their own MSP data sets to gain deep insight into their own students' behavior when using an MSP approach in their own classes.