CS 117: Introduction to Computer Science
Winter 2005
Jeff Ondich
Course Information

The instructor

My office phone number is 646-4364, and my home number is 663-7123. My office hours for the winter term of 2005 are Monday 2A, Tuesday 1:00-2:00, Wednesday 3A, and Friday 2A. I am also available for most of the day from 2A-5A on Mondays, Wednesdays, and Fridays, so feel free to make an appointment or drop by if you want to talk to me.

The textbook

Java: Software Solutions, foundations of program design, 4e, by John Lewis and William Loftus, Addison Wesley, 2005.

Your grade

Your grade in the course will be determined by your performance on two takehome midterm exams (20% each), a final project (20%), and homework (40%). The first takehome exam will be due on the Wednesday before midterm break, and the second will be due a couple days before the end of the term.

Working from home

The labs in CMC304 and CMC306 are set up to be as convenient as possible for our computer science students, and you are welcome to work there most hours of the day (check the doors for detailed schedules). However, if you would like to do your assignments on your own computer, you may do so. Keep in mind that your programs will be graded using the CMC's computers, so you will need to make sure they work properly there. Most of the time, a program that works at home will also work elsewhere, but it's always prudent to test that assumption. Computers can be weird.

We are working on some documents to describe how you can set up a Java development system on your own computer. I'll let you know when it's ready.

Homework policy

Each assignment will have a specific time for which it will be due, and your electronic submissions are marked with their submission time. A program turned in late within one day of the due time will be docked 25%. A program turned in between 24 and 48 hours late will be docked 50%. After that, you will receive no credit. This policy is to protect the grader, but also to encourage you to begin your work as early as possible. If you have extraordinary circumstances, I may grant an extension, but you need to talk to me about it before the assignment is due.

Getting help

If you need help with a project, you can consult with other students, talk to our lab assistants, or come to me. I am happy to answer your questions either in person or via e-mail. It's doubtless harder to catch me in person than to fire off an e-mail message, but you may find that I respond more quickly in person than I do electronically.

Collaboration

Working with other people can be a great way to learn, and so I encourage you to do your programming assignments with a partner if you are so inclined. However, if you find that you are letting your partner do all the work (or you are doing all the work for your partner), you should reconsider the partnership. If you do work with a partner, you need only submit one copy of your programs, but you should put both names in your code. Occasionally, I will require you to do an assignment solo.

Other people's work

When you're writing a paper and you take an idea or a quotation from another person's work, you provide a citation for that work. You do this in part to help your reader understand the history of the ideas you are writing about, and to provide pointers to other relevant work to guide the reader in his or her studies. But you also do it because it is not nice to take credit for other people's work, any more than it is nice to steal their furniture or tell lies about them. Civil discourse about important ideas demands that credit is given where it is due. In fact, our society believes this is so important that it punishes plagiarism and intellectual property theft very harshly.

When you are writing a computer program, just as when you are writing a paper, you should take care to cite the work of others. If you take code from one of my example programs or from the book, a brief mention in the comment at the top of your source code is appropriate. Similarly, if you receive a significant idea from a classmate or a lab assistant, you should mention it in your comments. I expect that you will build your programs from many parts, including some parts from your own brain and others from other sources--we would be hard-pressed to make much progress in our work if we didn't build on other people's work. But I also expect you to write most of the code yourself, and to make clear where your code is borrowed.

One more thing: sometimes, you can find solutions to assignments similar to your own assignments posted on the Internet. These solutions are seldom well-written, usually easy for me to spot, and always inappropriate to use. If you want to learn the material in the course, and you don't want to end up in big trouble with the college, don't grab programs off the Internet.

Rough schedule


Jeff Ondich, Department of Mathematics and Computer Science, Carleton College, Northfield, MN 55057, (507) 646-4364, jondich@carleton.edu