Syllabus

[Note: this webpage last modified Friday, 04-Feb-2011 19:56:39 EST]

Table of Contents

General Information
Purpose and Focus of Course
Grading, Assignments, and Expectations
Office Hours
Blackboard
Academic Integrity
Special Needs

General Information

Lecture: MWF 2:00-2:50, in A009 Root Hall
First class: Wednesday August 25
Last class: Friday December 10
Office hours: Monday and Wednesday 4:00-5:00pm in A-156 Root Hall
Instructor: Jeff Kinne
Website: http://cs.indstate.edu/~jkinne/cs151-f2010/ (or search for Jeff Kinne on google, bing, yahoo, etc. and find a link to the course website from my personal webpage)

Required text: Introduction to Computing and Programming in Python, A Multimedia Approach, 2nd edition by Mark Guzdial and Barbara Ericson.

More information about Python: Official Python Web site, Python Tutorial, Python Language Reference, Python Language Library

More resources for our textbook: draft of the text that is fairly outdated but is online/free, what other students have done with JES, and some more, official PPT slides for the textbook

Another reference: Think Python: How to Think Like a Computer Scientist by Allen Downey. This is the text used by the other sections of 151 and is a good supplementary source of information to the Mark Guzdial text we are using.

Software/Programming Environment: For the majority of the course, we will be programming in a programming environment that was specifically designed for those who use the Mark Guzdial textbook. Called the Jython Environment for Students (JES) (Jython is a particular type of Python that is implemented in Java), this environment is freely downloadable and can be installed on Windows, Mac, or Unix/Linux computers. I hope the software will be installed on the computers in the student computer center before the semester starts. You can download the JES software from http://code.google.com/p/mediacomp-jes/ to run on your own computer. Instructions for downloading and installing the MediaTools Application that is referenced in the book are at http://coweb.cc.gatech.edu/mediaComp-teach/45.

Near the end of the course, we will also use the "standard" Python programming environment (that is implemented in C rather than Java and is not specifically directed at students using the Mark Guzdial text). This can be downloaded from http://python.org/download/.

Purpose and Focus of Course

This course is an introduction to programming in Python and is also the first course in computer science taken by those majoring or minoring in computer science. The primary goal of the course is that you learn the fundamentals of programming in Python. After taking this course, you should be able to write programs and solve complicated problems using Python, and you should be able to read, understand, and modify Python code written by others. Another main goal of the course is that you begin to think and solve problems like a computer scientist (computer science is much more than "just coding/programming").

Why Python? We have chosen Python as the programming language for this course because it is easier to learn than many other important programming languages such as C++ and Java. At the same time, Python is widely used in industry and a good language to know.

Why multimedia? The textbook for this course introduces programming through manipulating pictures, sounds, and videos. A traditional introduction to programming course typically uses examples that are further removed from the daily experiences and interests of today's average student. I have chosen to use this text to engage you in the joy of computer programming and computational thinking while at the same time learning very practical information such as how pictures are stored on computers.

For a detailed list of topics that we will cover, see the Course Outline.

Grading, Assignments, and Expectations

The students of this course have the following responsibilities: read assigned pages of the book before lecture, attend lecture, complete online quizzes (one per lecture), complete weekly homeworks, take 3 non-cumulative exams, and complete a final project. The final grade consists of:

The class attendance grade serves the purpose of giving you credit for coming to class. You benefit from coming to class by seeing me present the new material, getting to ask questions, interacting with your classmates, keeping up on what is going on in the course, etc.

The online quizzes are designed to ensure that you are following along with the basic concepts.

The weekly homework assignments are designed to test your ability to put together the basic concepts in more complicated situations, and will be more challenging.

The exams will be taken in-class. The exams will not be cumulative per se, but you certainly will not pass the second exam, for example if you forget everything from the first exam. Computer programming courses in particular, and mathematics and computer science courses in general, are organized so that the content in later parts of the course builds on earlier parts of the course. When each exam is closer, I will make it clear what material is covered on that exam. In particular, I will release a sample exam and list of topics covered on the exam. Because the material in this course is very much cumulative by nature, I STRONGLY encourage you to get off to a good start to the course. It can be difficult to begin the course with a poor grade and end the course with a good grade.

The final project will be discussed further after the first exam. Students will choose a larger programming project that will be completed by the end of the semester and presented to the class.

Expectations. My expectation is that an average student will spend 6-9 hours outside of class each week to complete their coursework for this class. Some students may spend less time than this, and some students may spend more. I have included so many different types of assignments that you must complete (online quizzes, attendance quiz, weekly homework) to help ensure you are spending enough time to learn the material and do not get behind.

Classroom conduct. You may not use cell phones, iPods/music players, etc. during class. You should be civil and respectful to both the instructor and your classmates, and you should arrive to class a few minutes before the scheduled lecture so you are ready for lecture to begin on time. For many lectures, there will be time to solve problems in groups or test out what has been presented by the instructor. During the time the instructor is lecturing, however, all laptops MUST BE CLOSED and all computer screens of the computers in the classroom MUST BE TURNED OFF. Although some students may want to take notes on their computer, this is very distracting to some (including myself), and I believe the harm of taking notes on a laptop outweighs the benefit.

Grade cutoffs

I will make no promise ahead of time what the exact cutoff will be in terms of the number of points to achieve an A+, A, A-, etc. These will depend on how the course goes. I will use the guidelines below in assigning letter grades. I will assign letter grades to weekly homework assignments, exams, and the final project. You can keep track of how you are doing in the course with the blackboard site. The blackboard site will contain all of your grades, and it will be updated after each homework with "what your grade would be if the semester ended today".

Office Hours

I will hold office hours in the A009 classroom on Monday and Friday from 4:00-5:00pm. Note that there is a class that meets until 3:50pm in A009, so you should not arrive early to office hours.

I have chosen to hold the office hours in the computer classroom so that if you would like, you can use this as "lab time". You can work on homework and exercises at one of the computers in the classroom and ask for help when/if you need it. You can also use the office hour time to ask questions about material covered in class, ask questions in preparation for the exams, etc.

Important Note. If you wait until the last minute to begin your homework assignments, I will not be available to answer questions if you have problems. Programming assignments are notorious in the sense that oftentimes most of the time completing the assignment occurs after you thought you had the problem solved. This is called debugging (and testing), and is typically most of the effort in completing a complex program. So you MUST start your homework early. I suggest attempting the assignment the day it is given, or the day after, so that if you have a problem you can ask at the Friday office hour. If you continue to have problems in trying to complete the assignment, you can come to the Monday office hour. Working on programming assignments is much less stressful if you start early!

If you wish to speak with me (asking for help, etc.) outside of office hours, you can email me to set up an appointment.

Blackboard

The course has a blackboard site. Click here to go to blackboard. You should see CS 151 listed under your courses for the Fall 2010 term. The blackboard site is used only for taking the online quizzes and for viewing your grades. All course content, schedule, etc. is kept on the instructor's webpage (which you are currently viewing).

Academic Integrity

Please follow these guidelines to avoid problems with academic misconduct in this course:

We point out that if cheating is observed, the university's policy on Academic Integrity requires the instructor to notify the department chair and either an associate dean or academic integrity coordinator. They may then recommend additional penalties beyond what the instructor has chosen. We point out that these can be very serious consequences, so please refrain from cheating. See the Student Code of Conduct and Academic Integrity Resources for more information.

Please ask the instructor if you have doubts about what is considered cheating in this course.

Special Needs

If you have special needs for the classroom environment, homeworks, or exams, please inform the instructor during the first week of classes. If you have any such needs, you should go to the Student Academic Services Center to coordinate this. See Student Academic Services Center - Disabled Student Services for more information.