SI182: Building Applications for Information Environments
SI182 is now EECS182/SI182! The EECS department approved the new course cross-listed between SI and EECS. EECS182/SI182 will be taught in Fall 2008 by Prof. Atul Prakash of the EECS department. Dr. Severance will be involved in the class as well.
For more information on the Fall 2008 course: Course Website: http://www.eecs.umich.edu/courses/eecs182 Prof. Atul Prakash:: http://www.eecs.umich.edu/~aprakash
About the Course
SI182 is a new course being taught Winter 2008 semester at the University of Michigan. SI 182 is an introductory programming course designed to be useful to a wide range of students in all concentrations. Specifically, we designed the course keeping in mind the technology skills students will need throughout their careers. The one thing that you will likely encounter over and over during your undergraduate degree, when you pursue advanced degrees, and once you are working is complex data that needs to be analyzed, understood, and visualized.
While you can do a lot with a spreadsheet, most of the interesting data is never quite in the right format. Sometimes, before you can work with data, you have to "clean it up", transform it, or even check it for errors. Often, this manipulation of data requires a series of tedious manual steps - and sometimes you have to repeat the steps over and over again for each new data set with which you are working.
This is where programming comes in - programming is a simple way for you to describe a series of steps to the computer and then sit back and watch as the computer happily does your task over and over without making a mistake. As a result, you can turn your focus to exploring and interpreting the data instead of laboring over manual editing.
Automation of these mundane tasks requires some programming skills. It isn't necessary to be a "super programmer" - just to have an ability to learn and apply the basics. These basics are useful for writing a macro in a spreadsheet, data vizualization script, interactive web page, or game to run on your cell phone.
If you want to take more advanced software development courses, SI 182 is a solid introduction to programming and will prepare you for the more advanced courses in EECS. And, if this is the only programming course you ever take,you will be pretty handy with data and vizualization for the rest of your career.
In SI 182 we will work together to learn the basics of programming in the Python language. Python is free software, and you will install it on your computer to keep and use during the course and beyond.
SI 182 has been designed for students with no prior programming experience. Students will be encouraged to help and support each other in their learning throughout the term. During the first half of the course, we learn the basics of programming taking our time to understand the basic concepts of programming and revisiting topics as necessary. Weekly assignments will be key, as they will provide a venue for applying programming concepts. During the second half of the course, we will look at a number of data applications and use our programming skills to manipulate, transform, and visualize the data from multiple sources and application domains.
The course will be taught in a lecture and lab format. There will be podcasts that support the course topics and course assignments and allow students to learn at their own pace, reviewing material as needed.
Frequently Asked Questions
This section will be updated as questions and issues come up and you ask more questions :).
- Are there any pre-requisites for this course? No.
- What computer skills are required for the course? The ability to use basic software, edit files, and install programs on your computer is all that is needed.
- Will I have to buy any software? No - everything you will use is free and you can keep the software and use it as long as you would like.
- Should I have a laptop? Our experience is that it is best to have your own laptop for a course like this. This allows you to take the necessary time with the assignments to learn the material. There are however laptops in the lab which we will be using.
- Does this course count as a pre-requisite for other courses? No - this is an elective course.
Other Python Courses
This is a list of other courses that I have found using Python to teach introductory materials.
- Loyola University Chicago - Dr. Andrew N. Harrington
- Wartburg College - John M. Zelle - CS 220: OOP and Data Structures
- Gergia Tech - Colin Potts and Monica Sweat
- Simon Frasier University - Diana Cukierman - CMPT 120 -
- Michigan State University - Richard Enbody and Bill Punch - CSE 231: Introduction to Programming I
- Bryn Mawr University - Dianna Xu and Deepak Kuma
- MIT - Intro to EECS I
If you are teaching an introductory programming course using Python at the college level - please drop me a note.