Spring 2008
Dr. Ben Schafer
schafer@cs.uni.edu
273-2187
ITTC 316
Office Hours (my schedule)
Time and Place:
This class is worth 4 credits based on 3 credits for the lecture portion and 1 credit for the programming assignments and the lab work. You are required to attend both components.
Text
Introduction to Computing & Programming in Python: A Multimedia Approach,
Mark Guzdial, ISBN 0-13-117655-2 (NOTE :
You may be able to obtain a used copy of this book which does not contain the
original bundled CD. This is ok as you can download the more up to date
information off the Internet).
Course Description
As the name implies, CS I is the computer science department’s introductory
course. While it is the first course in the programming sequence for
majors it is appropriate for non-majors and it does NOT assume that you have programming experience.
This course has two primary goals:
In order to meet these goals, we will spend much of the semester studying the concept of media computation. Computing with images, sound, text, and video offers a rich body of problems to solve that will bring us into contact with many of the fundamental ideas of computer science: representing and transforming data; design, analysis, and experimentation; and the thrill of solving problems in any domain of human thought.
Outcomes
While a major goal of this course is to provide a good start to the
development of programming skills, the course is not solely about programming. Upon successful completion of the course students should
have gained the following skills and proficiencies:
|
|
Additionally, you should develop skills and understanding that will ultimately allow you to analyze complex problems and apply your knowledge and experience to developing good solutions to them.
Programming is a creative process. However, to exercise that creativity, one must learn basic tools and principles. That is the purpose of this course. Gaining basic skills and knowledge will require much attention to and remembrance of detail.
Class Directory
http://www.cs.uni.edu/~schafer/courses/059/
Most course materials will be made available on the course web page during the semester. You are responsible for checking this site frequently for reading assignments, prep activities, lecture notes, announcements and supplemental class materials.
Class Mailing List
I frequently send e-mail to inform you of breaking news and to answer common questions. Furthermore, I encourage you to use this mailing list to ask questions of me and/or your fellow students. By default, mail to this list will go to your @uni.edu address and mail sent by you to this list will be rejected unless it comes from that address. Talk to me if this is a problem. You are responsible for checking your email to be aware of announcements.
Computer Access
By signing up for this class you will be provided Windows access on the CNS computing network. While there are multiple places where you can log on and use this account, there are three of primary interest.
We will be using Windows as our primary operating system this semester. You will do your lab exercises and programming assignments using JES, a lightweight development environment for Jython/Python.
I realize that many of you have access to machines at "home." You may choose to do programming assignments on any platform you like, such as a Mac or a Windows PC. JES and many of the code samples we use this semester are available on a CD that comes with your textbook. However, you will need to be in one of the on-campus labs to submit your homework, so please be aware of deadlines.
Assigning grades earned in a course is a tough activity. I would prefer to think in terms of "acceptable", "shows solid understanding", and "shows advanced initiative or knowledge' when grading things like exams and programming assignments. Unfortunately, the university requires that you earn grades on the A-F scale. I have to consider a system that allows us to do a little bit of both.
The final letter grade you earn in this course will be based on points accumulated over five activities as described below. The following expected point system will be used in calculating final grades. Please note that I reserve the right to modify these points slightly based on the number of class sessions and lab assignments.
|
Activity |
Number |
Adjusted Score |
| Attendance and Participation | ~45 | 100 |
| In-lab work (Tuesdays) | ~15 | 150 |
| Programming Assignments |
~10 |
250 |
| Midterm exams | 2 | 300 |
|
1 |
200 |
Notice that points are weighted. Thus, even though you may earn ~180 actual points for attendance/participation and 50 actual points for a midterm exam, each would be scaled to 100 and 150 points respectively.
Grading for this course is on an absolute scale. I do not "curve" thus, the performance of others in the class will not negatively affect your grade.
Final grades will be assigned based on cut off points no “higher” than:
There are exceptions to this:
**** It is also worth pointing out that departmental policy requires that you receive a grade of C or better in this course prior to enrolling in CS II.
Class Attendance and Participation
Socrates reportedly said that the best learning takes place on a log, with the teacher on one end and the student on the other. In other words, learning is most effective if it is an interactive process. To be interactive, we must have two things - attendance and participation.
Although I will often use the terms "lab" and "lecture," this course will rely less on the "lecture" you may be used to, and more on an open discussion between instructors and students. Regular class sessions will be aided significantly by your participation in discussions, as well as your willingness to ask questions and share your experiences with your classmates. To encourage this, I will take attendance, and I will try to evaluate how much effort you seem to be putting into participating in the process.
To encourage attendance I will begin each day by taking attendance. Right off the bat, you can earn 2 points :
On top of that, you will be assigned points based on your participation in the whole-class "lecture" and various small group activities. These points will be assigned as :
This means you can have a score anywhere from 0 to 4 each day.
At the end of the semester, you will be assigned an overall "attendance and participation" grade based on the total number of points you have earned. The formula for this is somewhat arbitrary, but you can equate it loosely to the GPA scales. For example, if you are in class EVERY day, but NEVER participate, you will have averaged a score of 2.0. I would consider this to be about a C, and thus would assign you somewhere around 75 out of the 100 points. Good attendance and average participation would earn you about a 3.0 average, which is about a B (85 points).
It is always worth pointing out that you can participate too much. Remember that I am trying to have dynamic interaction with slightly more than a dozen students at the same time. Students who participate too much cheat those other students of a chance to participate. Please feel comfortable participating, but also be aware of how doing so affects the class as a whole.
Lab is designed to be a time to allow you to learn new skills, apply and practices existing skills, and prepare yourself for the upcoming lectures and programming assignment. Points for these activities will be assigned based on level of difficulty for each activity and will be awarded for successful completion. If you are unable to complete each of the activities in-lab, you will be allowed to complete them on your own. However, you must complete and submit the lab sheet by the start of class on the Friday following each lab unless announced otherwise.
Attendance to lab sessions is required - you will receive credit only for labs you attend. The activities for lab are designed to encourage interaction between students and instructors (either me or the TAs) and sometimes between students themselves. Failure to be in lab robs you of some of the learning objectives for that lab. I expect you to be in lab, on time, and prepared to work. Students who arrive late will be docked points regardless of the quality of their lab work. In general, students who do not show up at all will not receive credit for making up the lab (although you should still complete the activities so you do not fall behind).
Having said that, I DO realize that occasionally things come up. For this reason, students will get a one time "free pass" to accommodate for illness, car trouble, etc. You will be allowed to make up one lab activity for full credit, no questions asked.
Programming assignments are designed to take what you have learned in-lab and during lecture, and apply these skills to a program on a scale larger than that explored in-lab. Programming assignments will typically be assigned over a time period of one week. The complexity of these assignments will vary , and some may count for more credit than others.
It is expected that you will complete all assignments as an individual unless otherwise instructed (see section on scholastic conduct). If you have questions concerning an assignment, feel free to consult your instructor or a TA. In fact, if you spend more than 15 minutes staring at the book or computer trying to figure out what to do next, ask for help! I don't know what you are thinking if you don't tell me. Therefore, take advantage of the fact that I am willing to help you. However, plan your time wisely. Do not wait until the last minute or help may not be available.
The grading of programming assignments will be based on the quality of your code as well as your adherence to general and assignment specific directions. A grading rubric will often be announced with each programming assignment. For more information, see the Programming Assignment Collection Policy.
There will be assignments due during the last week of regular classes.
There are a total of three exams this semester.
Unlike the final exam (which will be a formal, written exam following the schedule established by the university) the time, place, and format of the "mid-term" exams has not been decided. These exams will be announced approximately one week prior to the exam, and exam specifics will be provided at that time. You are expected to be present for these exams unless you have made prior arrangements. Make-up exams will be offered under very limited circumstances. If you are aware of conflicts prior to the exam, please bring these to my attention as early as possible.
These exams are generally closed-book exams. Under certain circumstances I may allow you bring in a reference sheet of code. Specific instructions regarding what will and will not be allowed for each exam will be published to the course website prior to each exam, and will be clearly indicated in the instructions for each exam. It is your responsibility to be aware of what is and is not allowed on a given exam.
I try to accommodate student needs whenever possible, but I can only do so if I know about them. If you ever have to make alternate arrangements for a class session, an assignment, or an exam, contact me in advance. The safest way to make such arrangements is by notifying me via e-mail or phone of your circumstances and of how you can be reached.
All assignments are due at their assigned date and time. In order to receive partial credit, always submit your best effort at that time. Late work may not be accepted for a grade.
Incompletes are awarded only in very rare instances when an unforeseeable event causes a student who has completed all the coursework to date to be unable to complete a small portion of the work in the last week or two of the semester (typically the final project or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentation must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such an unforeseeable event is apparent.
You are responsible for being familiar with the University’s Academic Ethics Policies (http://www.uni.edu/pres/policies/301.shtml).
It would be easy if I could just state "copying and collaboration is wrong" But, in fact, that statement is partially inaccurate in a programming environment. There will be many times this semester when I will explicitly ask you to copy some starter code, and there are times when you may (and even should) discuss code with other students. In other words, under certain circumstances, copy and collaboration is not only ok, it is expected.
General guidelines regarding "copying"
General guidelines regarding collaboration
In addition to the activities we can all agree are cheating (plagiarism, bringing unauthorized notes to a closed book exam, etc), assisting or collaborating on cheating is cheating (providing answers to exam questions, discussing test questions with a student who hasn't taken the exam yet). Cheating can result in failing the course and/or more severe disciplinary actions.
Remember: Discussing assignments is good. Copying code or answers is not.
We live in a technological society, and many of you now carry a variety of electronic distractions with you. These include cell phones, laptops, PDAs, MP3 players, etc. While you are welcome to own and use these, and other, electronic devices, their use in the classroom is forbidden without my explicit permission (In fact, this is now a University-wide policy).
A few exceptions do exist, and I reserve the right to approve these situations on a case-by-case basis with prior notification For example, due to a family emergency it may be necessary to have your cell phone turned on.
Unless we have discussed it in advance, all electronic devices should be turned off and left out of sight during class time. The inappropriate use of any of these devices will cause you to receive a participation grade of negative one point regardless of your participation otherwise. Multiple infractions may cause more extreme consequences, including removal from the course.
The Americans with Disabilities Act of 1990 (ADA) provides protection from discrimination for qualified individuals with disabilities. Students with a disability, who require assistance, will need to contact the Office of Disability Services (ODS) for coordination of academic accommodations. The ODS is located at 213 Student Services Center. Their phone number is 319/273-2676. Additionally, please contact me immediately if you have a learning or physical disability requiring accommodation
Once you have allocated the necessary time for this course, the following suggestions, compiled from student experiences, should help you plan your time use and prepare for the labs and exams: