CS 141: Introduction to computer science (Section 2)

Winter 2013

Professor: David Bunde, SMC E-203, 341-7479, dbunde@knox.edu
Office hours: Whenever my office door is open; email for an appointment.

Teaching Assistant: Hai Nguyen (hnguyen@knox.edu)
Office hours: Monday 7-8pm in the Stellyes lab (SMC E-016)

Website: http://courses.knox.edu/cs141

Course overview

This course teaches problem solving on a computer. We will be using the Java programming language, but the point of the class is not just to learn Java. Rather, Java is being used as a vehicle to teach skills like problem decomposition, abstraction, and object-oriented thinking. My goal is to teach programming as a tool for use in computer science or your own field.

Meetings

We meet Monday, Wednesday, and Friday during 2nd period (9:20-10:30) and Thursday during 3rd (10:40-11:50). All meetings will be in the Cat Lab (SMC E-011).

We will not have meetings during our normal time on 1/23, 1/25, or 3/8. Some of these will be replaced with special assignments.

Resources

Our book is "Objects first with Java" by David J. Barnes and Michael Kolling. Its first couple of chapters are available online (here). We will follow the book fairly closely at the beginning of the term, with some "detours" later. The Class meetings page will tell you what sections we covered in each class meeting and give links to outside notes.

We will be programming with BlueJ. This is a programming environment specifically designed for teaching Java. It is refered to throughout the textbook. You can download the programs from the text from the book's website. I've slightly customized the version installed on the lab machines in order to use BlueJ's submission system and to simplify the new class templates. Here are instructions to make these changes on your own version.

Later in the term, we be using CloudCoder to do practice problems. More details to follow.

Extra help

If you find yourself struggling in this course, get help right away. The term will move quickly and concepts in this course build on one another so you can't afford to get too far behind. Don't hesitate to come by my office or email me a question.

There is a tutor available in the Red Room (second floor of Seymour library) on Tuesday, Wednesday, and Thursday evenings from 7-9pm. It is also possible to arrange for an individual tutor through the Center for Teaching and Learning (CTL).

Rough schedule

The following is a rough schedule of what we'll cover each week. I will refine it as the term progresses so don't expect this to be our exact schedule. For a list of what we've actually done, see the Class meetings page.

Week 1: Introductions and administrivia. Objects and classes. Fields, constructors, and methods.

Week 2: Numeric types. Mathematical operations.

Week 3: Booleans and conditionals.

Week 4: Strings. Debugging. Midterm.

Week 5: Problem subdivision. Inheritence. Polymorphism. Overriding.

Week 6: Graphical user interfaces (GUIs). Events. Linked Lists. Recursion.

Week 7: Collections.

Week 8: Iteration and Iterators. Midterm.

Weeks 9 and 10: Arrays. Intro to class design.

Assignments

Late work

You should plan on submitting all work by the due date, but I know this is not always possible. Therefore, you will get two "late days" that may be used on homework assignments during the term. Each allows you to submit one homework 24 hours late without penalty. They can be used for the same or different assignments. To use them, write a note on the top of your submission. Late assignments without such a note will lose 10% of their points for each 24 hours they are late. Late submissions will not be accepted once solutions have been posted so let me know if you intend to work on something past its normal deadline. Individual extensions beyond these two days will require extraordinary circumstances.

Absences

Regular attendance is expected. If you miss class for any reason, you are still responsible for that day's material so you need to get notes from someone. It is possible to make up quizzes and exams if you notify me ahead of time and have a valid reason, such as significant illness (doctor's verification may be required) or are on college business (athletic competition or class field trip).

Policy on Collaboration

Mini-quizes and exams in this class must be completed individually. You are allowed to talk with others about homework and encouraged to work together in small groups (2-3 students). When you do this, however, you must do two things:

  1. First of all, you must acknowledge all collaborators by adding a note to your solution describing who helped you and how.
  2. Secondly, you must avoid "collaborations" where one person gives the solution to another. When working together, each person should contribute ideas. If one person is helping another, the helper can explain concepts and guide the "helpee" toward a solution, but cannot tell them how to solve the problem. In all collaborations, everyone is expected to understand the entire solution and each individual must write up their solution separately.

The same policies apply to getting help from inanimate sources. If you use the web or a textbook other than the one we're using, you must cite this source. As in collaborations with another person, you are expected to write you own solution; do not copy text or code from any source. In addition, you may look at other sources for examples or conceptual help, but not actual solutions. Some problems assigned for this class may have been previously assigned to other classes, but you are expected not to deliberately seek solutions. (If you come across one accidently, let me know and I will give you a modified assignment.)

Please feel free to contact me if you have any questions about this policy.

Grading

At the end of the term, all of your work will combined into an overall course percentage based on the following weights:
Mini-quizzes15%
Homework35%
Midterms15% each
Final20%

The range of scores mapping to each grade will be determined at the end of the term. The mapping will not be stricter than the "standard" 90/80/70/60 and may be more generous. In general, spend your time learning the material rather than worrying about your grade, but feel free to talk with me if you are concerned about it.