Proposed syllabus

Week(s) Module Description
1 Image Batch Processing Ever have to apply the same change to a large group of images, such as resizing prior to emailing them? Batch processing allows you to perform the same task over a large number of objects, and saves time by removing the need to make the changes by hand. Students will create batch processes for making changes to a large number of images and to become familiar with batch processing. Lab description.
2 eBook Library List Students will explore ways in which a time consuming manual task, such as assembling a list of all eBooks contained in your library, can be accomplished easily using simple command line and python scripts. Lab description.
3 Creating and Posting a Playlist Design, implement, test and deliver a 100 song randomizing script for web broadcasting. Lab description.
4 Computer Assisted Reporting How does the Waco Metropolitan Statistical Area compare with other similar MSAs in total crimes and crimes in various categories? Students will use data provided from the Uniform Crime Reports from the FBI to generate a proposal for a news story.
5 Timecode Calculator Calculating timecodes in movie film is a time consuming and error-prone task. Students will develop two small programs to automatically calculate the addition and subtraction of timecodes, using Excel macro programming and Javascript.
6 Probability, Testimony and Belief Students will devise a computational strategy to answer the question: How many reliable independent witnesses does it take to convince a rational person that an improbable event has occurred, under a Bayesian framework?
7 Prisoner's Dilemma How can rational, selfish actors cooperate for their common good? Students will model the Prisoner's Dilemma using programming tools and test various hypotheses as to how cooperation can arise among multiple competing agents. Using their model, strategies such as tit-for-tat and always cooperate will be evaluated and compared using payoff and equilibrium outcome as metrics.
8 Staffing Problem One of the major reasons nurses report for leaving the profession is their inability to give the level of patient care they believe is best due to inappropriate workloads. Staffing decisions and patient assignments are often based on a patient acuity system, which is not well defined and receives little nursing input in its development. Students will design, implement and test a version of patient acuity and a staffing program for calculating the number of nurses required for a given shift. At each phase, students will assess the quality and correctness of their calculations. Students will also evaluate the feasibility of using their program in nursing practice.
9 Cruise Control System Students will design a simple PID controller as the basis for a cruise control system used to guide a car simulation. Principles of PID control will be covered as well as parameter fine-tuning for selection of proper controller parameters.
10 Direct and Indirect Objects Spanish direct and indirect object pronouns used together are often problematic for the person whose native language is English. By comparing the use of direct and indirect objects first individually, and then together, in English, the student will be able to apply the same strategies to identifying these items in Spanish.
11 and 12 Music Theory and the 12-tone System Given that both free atonal and 12-tone music use the full chromatic spectrum, one persistent problem in music analysis is determining to which category a post-tonal work may belong. Therefore, it would be useful to devise a computational method for differentiating between these two compositional approaches. Students will understand the difference between free atonality and 12-tone music, and students will devise and demonstrate a computational strategy for determining and analyzing this difference.
13, 14 and 15 Game Development Write a video game using a high-level programming language. Students will demonstrate effective use of program documentation, demonstrate the application of computational thinking through the design process of a video game, and demonstrate the ability to implement and test a software application.