Assessment

To help students evaluate their mastery of the learning outcomes, we'll (tenatively) use the following assessments:

  • Exams: two midterms and a final over the course of the semester. (50%)
  • Weekly programs: each week students will complete a short program using concepts from that week's material. Students may work on these alone or during their (optional) lab time. (50%)

We do not plan at this time to offer extra credit, but we strongly encourage students to get as much practice with coding over the course of the semester as they can.

Intended Learning Outcomes

By the end of the course, students should be able to:

  • Communicate using computer science terminology. Using the language of programming to talk about concepts helps ease the exchange of ideas between programmers.
  • Build large projects in small steps. Creating milestones and breaking large programs down into smaller functions makes complicated projects more achievable.
  • Process data from existing files without manual entry. Dealing with large datasets is much more efficient and less error-prone when the process can be automated.
  • Write Python code. We will implement all of the concepts and ideas from the course using Python 2.7.

Materials

We have not yet selected a textbook for the spring, though our top two choices are the freely-available Think Python or a paid electronic text with self-check questions such as Zyante.

Students would be encouraged to work on their own computers but would not be required to have them. The CS department will make two Windows labs available to the class on certain days, and Python is compatible with all major operating systems.