Introduction to Computing

810:051

Spring 2009

 

Instructor Information

Dr. Ben Schafer
schafer@cs.uni.edu
273-2187
ITTC 316


Office Hours (my schedule)


 

General Course Information

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 Goals and Outcomes
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.

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:

  • general computer & OS usage; 
  • computer operation;
  • a mental model of how programs are executed
  • machine capabilities and functions
  • a variety of incidental knowledge/understanding.

 

  • general program design;
  • standard approaches to common (simple) tasks;
  • abstraction (data, procedural, thinking);
  • data & problem representation;
  • elementary data structures;

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.


Computing Environment

Class Directory

http://www.cs.uni.edu/~schafer/courses/051/  

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

810-051-01-SPRING@uni.edu .   

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.

On 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.

At-Home Computer Access

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. If you wish to work from home you should probably make sure to install the version of JES (version 3.1) contained in the labs:

While there is a version distributed on a CD with your textbook this is several versions out of date.  Having said that, MOST of the code and certainly the media content (images and sound files) from the CD are perfectly acceptable.


Course Structure and Grading Policies

The final letter grade you earn in this course will be based on points accumulated over five activities as described below.  The following approximate point system will be used in calculating final grades.  Please note that I reserve the right to modify these points based on the number of class sessions and lab assignments.

Activity

Estimated
Number

Estimated
Score
Attendance and Participation 45 100
In-lab work (Tuesdays) 15 150
Programming Assignments

10

200

Quizzes 11 50
Midterm exams 4 400

Final exam

1

200

Grading for this course is on an absolute scale.  I do not "curve" in the traditional sense. 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 Data Structures (810:052).

 

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 based on the idea that perfect attendance with "some participation" each day (averaging 3 points per day for each day of the semester) should earn you 100% of the points in this category.

It is always worth pointing out that you can participate too much.  Remember that I am trying to have dynamic interaction with a whole class room full of students at the same time.  Students who participate too much cheat 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.

In-lab work

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 the next class period (normally Wednesday) 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

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.

Quizzes

There will be approximately eleven un-announced quizzes over the course of this semester.  Each quiz is a short activity at the start or the end of a class to see if you have been paying attention and if you really understand the material.  Each quiz will be worth 5 points.  I will drop your lowest quiz score from the grade book.

Exams

There are a total of five exams this semester. 

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.

Final Thoughts on Grading

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

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.


Scholastic Conduct

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. 


Class Distractions

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.


Accessibility

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


Guidelines for Success in this Course

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:

Finally, I encourage you to utilize the Academic Learning Center's free assistance with writing, math, reading, and learning strategies.  UNI’s Academic Learning Center is located in 008 ITTC.  Visit the website at http://www.uni.edu/unialc/ or phone 319-273-2361 for more information.