CS 301
Introduction
to Data Programming
Introduction to Data Programming aims to teach the skills associated with programming, with an emphasis on creating real, useable solutions to problems in a wide variety of fields.
Students in 301 learn the Python programming language to implement their solutions.
Course Description
Programming skills are in demand across a wide variety of fields. Students and professionals are reaping increasing benefits from the ability to automate tasks, deconstruct problems logically, and deal with increasingly large datasets. CS 301, Introduction to Data Programming, aims to teach these skills to students who may not otherwise want to major in computer sciences by offering a slower-paced and more applications-focused introduction to programming than our already-popular 302 course.
Through a combination of classroom instruction and hands-on experience, students with no prior programming experience will learn about program design, implementation, and style.
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.