CIS 170 Science of Computing
Fall 2008
Syllabus

Mondays and Wednesdays, 4 PM to 5:20 PM, 116 Eslinger (CRN 15638) 4 Credits
Web Pages: http://www.cs.uoregon.edu/classes/08F/cis170/

Overview

Instructor

Anthony Hornof
356 Deschutes
hornof@cs.uoregon.edu
Office Hours: MW 2:45-3:45 PM, or by appointment

The Point of the Course

The goal of the course is to introduce students, in a fun and comfortable way, to computer science. We hope to dispel the notion that computer programming is a cryptic skill that is attainable only by people who love memorizing secret codes and spend all their free time solving math puzzles, but instead that computer programming is done by all kinds of interesting, creative people in all kinds of fascinating and important situations. We aim to educate a wide range of students on some of the basic concepts of computer science, how computers work, and how to program a computer. The class is intended to do two things: (a) help first- and second-year students learn about the exciting field of computer science, and decide if they want to major in computer science, and (b) educate a general college population on the fundamentals of how computers work, and how to get computers to work for you.

Is this class for you? This class is probably good for you if you have little or no experience programming computers (using a language like Java), and if you would learn more about how computers work, how to program them, and what kinds of interesting real-world problems can be solved through computer programming. If you already consider yourself to be a wizard at computer programming in a language like C++ or Java (html does not count) then this class is probably not for you.

Programming Environment and Textbook

This course will teach fundamental concepts of computer science using the Alice 3D programming environment. You can try out Alice yourself by downloading Alice 2.0 and going through the tutorials that come with the environment. (Note that the environment takes a while to start up, with no indication that it is starting up.) The textbook will be:

Dann, Cooper, & Pausch. (2008). Learning to Program with Alice, 2nd edition. Upper Saddle River, NJ: Prentice Hall.

Your Responsibilities

Reading

You are expected to read the assigned chapters before class, and come to class ready to discuss those chapters, with questions about what you read. You are expected to take notes on what you read, understand the material, and to look up words that you don't know in a dictionary.

Class Participation

All students are expected to attend all lectures, presentations, and group meetings with the professor, and to take written notes at all classes and meetings. Students are also expected to participate in class presentations, group meetings, and discussions. Your in-class participation may be supplemented by emailing the instructor with questions or comments, which he will try to incorporate into the next class. All students will also be expected to participate in a few in-class group presentations.

Come to class ready to engage the material and to interact face-to-face with the other human beings in the classroom. Please leave 21st-Century distractions behind. Turn your cell phones and pagers off (do not just put them into "vibrate" mode). Cell phones ringing in class are inappropriate, discourteous and disruptive. Activities such as surfing the web or checking email during class is inappropriate and discourteous. Please practice your skill of focusing on the intellectual activity occurring in a physical room with real live people.

Weekly Short-Answer Questions

There will weekly short-answer questions based on the material in the textbook, and also on material presented in lectures.

Weekly Programming Projects

There will be weekly programming projects. Some of these will be accomplished on your own, and others working with other students. It will be made clear in advance which are solo and which are team assignments.

Final Project

There will be a final project. It will be due either in the last week of class or on the date of the final exam.

Exams

There will be one midterm exam and a final exam. The final exam will occur in the time slot allocated on the UO final exam schedule. A programming portion of the exam may also be given in the last two weeks of classes, to assure classroom availability. There will also be quizzes and in-class exercises to further supplement learning and assessment.

You are expected to schedule other events such as trips or job interviews to avoid conflicts with the exam dates. The only acceptable excuses for missing an exam on the scheduled date and time are documented medical problems, religious holidays (if cleared in advance), presenting papers at leading academic conferences (if cleared in advance), and documented personal emergencies. An unexcused absence at an exam will result in a grade of zero on the exam.

Communication

Students have the responsibility to communicate with the instructor about any questions, concerns, or problems that they have during the course. These might relate to any aspect of the class including lectures, group dynamics, communication breakdowns, or anything. Please visit the instructor during his office hours or set up an appointment to discuss any problem or concerns.

Email

Please contact the instructor with any questions and concerns at all regarding the class, following these guidelines:

Grades

Grades will be determined based on your performance on a midterm, a final exam, and in-class quizzes; and based on your group's performance on group projects. Your final grade will be weighted as follows:

Weekly Short-Answer Questions: 20%
Weekly Programming Projects: 25%
Final Project: 15%
Midterm: 15%
Final Exam: 20%
Class Participation: 5%

Grades for the course will be determined on the following scale:

90-100% = A
80-89% = B
70-79% = C
60-69% = D
59 and below = F

Projects submitted late will be subjected to a full letter grade penalty.  Projects will be accepted no more than two calendar days past the due date.  Exceptions will only be considered if the request is submitted before the due date.

Any grading discrepancies (such as a miscounting of points on an assignment) must be resolved within a week after the assignment is returned.

Assessment of Work

Evaluation Criteria

Projects will be assessed against a set of evaluation criteria that will be made available with each project. Read these criteria carefully because they reflect the aspects of the projects that are important given the pedagogical goals of the class.

Subjective Assessment

While much in the discipline of computer science is objective (such as whether a computer program will compile and produce a specified answer), most of the material that covered in this class will be concepts, ideas, terminology, conventions, and practices that cannot be defined in pure objective language such as that of a computer program. Exams, quizzes, and projects are graded based on the instructor's subjective assessment of the accuracy and completeness of the answers and materials provided by the students.

The instructor will apply an understanding of the material that he has established (a) with first-hand experience interacting with the concepts and ideas covered in the class over fifteen years of post-undergraduate academic experience and five years in the professional software industry, (b) extensive reading on the material covered in the course, and (c) extensive discussions with practitioners and researchers who specialize in the topics of the class.

Good Writing

Projects will be evaluated in part based on the instructor's subjective assessment of the quality of the written materials submitted. A modern skilled technology expert must be able to communicate his or her ideas clearly and concisely. Good writing occurs on three levels:

  1. Structure a paper so that the main ideas are clearly accessible. State the main point of the paper in the introduction. Start each paragraph with a topic sentence. Break the paper into sections and give each section a title. Summarize your major findings in a conclusion. A storytelling approach is not a good organizational style.
  2. Communicate individual ideas effectively. Be thorough but concise. The tone of your writing should be serious and direct, as if you were reporting to your boss at a real job. An informal "chatty" style is not appropriate. Every figure (graph, drawing, or screenshot) must be relevant, should have a caption that explains what it is and why it is important, and should be referred to in the main body of the text.
  3. All spelling and grammar must be standard and correct.

If you have any doubts about the quality of your writing, work with your project collaborators to critique each other's drafts. Also, take drafts to the drop-in writing lab at Academic Learning Services in the basement of the PLC, open Monday - Friday from 9:00am to 4:00pm.

Modern writing standards advocate the use of inclusive language, and you should follow this standard. For example, if you are referring to a single anonymous person, you should write "he or she," "the user," or "the programmer," but not just "he." Also, please refer to women as "women" and not "girls" or "ladies".

People with disabilities should be first recognized as people, and then by their distinguishing characteristic. For example, "people with disabilities" is preferred over "disabled people".

Course Policies

Diversity Welcome

The modern technology workplace is diverse, international, and intercultural. This course welcomes and values these differences as an opportunity to increase our awareness of the contemporary global society, how to work better in groups, and how to build better computer systems.

Students with Disabilities

If you have a documented disability and anticipate needing accommodations in this course, during the first two weeks of class please (a) ask the counselor for students with disabilities send the instructor a letter verifying your disability and (b) arrange to meet with the instructor to discuss your needs.

Prerequisite

The only prerequisite is Math 111 College Algebra. If you are good in math and if you work hard, you should be able to do well in this class.

Recording

You may not make audio or visual recordings of the class without explicit permission from the instructor.

Academic Honesty

Students who are found to have committed an academically dishonest act in this course will receive an F for the course.

Anemically honesty includes the following. You should do all of the following:

Academic dishonesty includes the following. You should not do any of the following:

All evidence of academic dishonesty will be rigorously pursued consistent with the University of Oregon Policy on Academic Dishonesty.

Acknowledgments

This course draws heavily from materials developed at Carnegie Mellon University with funding from the National Science Foundation. The materials have been acquired from alice.org and aliceprogramming.net.

A.Hornof 10/1/08