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.
Several of the assignments used this course can be found in the EngageCSEdu Collection. Links are provided in the schedule document provided below. Please note that syllabi are not peer-reviewed and are provided in the collection to provide sequencing information to collection materials.
This syllabus is from spring semester 2014. NOTE: Syllabi are not peer-reviewed.
Each week students participate in a lab session and complete a homework assignment (with the exception of midterm and finals week). Each lab session in the course is meant to solidify a new concept introduced in class and is followed by a homework that allows the student to solidify the concept in further depth. The students in lab sessions are encouraged to be interactive with the instructors and each other to implement programming solutions related to a new concept. Most of the lab activities in this course encourage students to work in pairs, with one student acting as the driver and the other as the navigator. Most labs also have stopping points when student teams must raise their hands and verify a solution with a lab instructor before moving on. Labs can be finished by the students in a two-hour period; however, thoughtful students with little previous programming experience may sometimes require more time. We have found these labs are most successful when the next classroom lecture directly discusses the challenges and solutions to the lab. Homework expands on the concepts learned in the preceding lab and are designed to be completed individually by the students.
Materials in the collection from this course make use of these Engagement Practices.