CSCE 145 -- Fall 2007

Sections 4, 5, 6

Introduction to Algorithmic Design

Duncan A. Buell
Professor and Chair
Department of Computer Science and Engineering
University of South Carolina
Columbia, SC 29208
3A01 Swearingen Engineering Center
buell in domain sc.edu
803-777-2880(voice)
803-777-3767(fax)
Office hours: TBA
grizzlefarb

Basics

Class time: 2:30-3:20 pm M-W, Room B213 Main Street
Section 4 Lab times: 11:00-12:55 pm T-Th, Room 1D15 Swearingen (Kalakota, Cardwell)
Section 5 Lab times: 2:00-3:55 pm T-Th, Room 1D15 Swearingen (Primke, Kalakota)
Section 6 Lab times: 4:10-6:05 pm T-Th, Room 1D15 Swearingen (Cardwell, Primke)
Office hours: 1:30-2:30pm M-W
This URL
My home page
Teaching assistants: Jordan Cardwell (cardwelm), Prasanth Kalakota (kalakota), Thorben Primke (primke)

Caveat

This page will be changing throughout the semester.

Outline, Prerequisites, and Expectations

This course has a prerequisite of placement into MATH 141 or a grade of C or better in MATH 115.

You are responsible for checking this website on a regular basis. "Regular" means at least a couple of times each week.

You should read the material before coming to class. If we have covered all of a particular section or chapter, you should take the initiative on your own to read the next section or chapter.

You are not "required" to attend class in the sense that I will not mark you down for missing classes. However, you are responsible for the content of each class whether or not you attended. And, curiously enough, the USC academic support people have found that class attendance correlates statistically with improved grades. What a surprise!

Academic Support, Supplemental Instruction, and ACE

Some of you may find this course difficult. Some of you may also be enrolled in Math 141 or 142 and find that course to be difficult. If so, you are encouraged to to consult the academic support offices, including the offices that help with tutoring, supplemental instruction in CSCE 145 and MATH 141/142, and the Academic Centers for Excellence.

Also, if in fact you find this material easy, you should consider becoming a tutor or offering to work for the Academic Support people. My understanding is that they are always looking for good people in these courses. They will actually pay you money. And as anyone who has ever taught will say, you never really learn a subject until you have to teach it to someone else.

Official Syllabus

Here is the official syllabus for this course.

Email

There is a CSE department email alias for CSCE 145, namely CSCE145-004, CSCE146-005, CSCE145-006, in the domain lists.cse.sc.edu. This alias sends email to the CSE departmental login userid@cse.sc.edu that you get with this course. A mass mailing to the entire class will be done through these mail aliases. Actually, any of you can send mail to this alias.

The mail alias of the previous paragraph sends mail to the CSE departmental login that you get with this course. You are responsible for reading mail sent to this account and the engr.sc.edu account of the college's mail server.

Texts, References, and Links to Useful Information

The text for this course is Byron Weber Becker, Java: Learning to Program with Robots, Thomson Course Technology, 2007.

Tests and Assignments

The mid-term exam will be on 1 October 2007. This will allow us to get back the exams on 3 October. The last day to drop the class with a "W" grade is 4 October.

A commentary about the midterm can be found here.

The second mid-term exam is scheduled for 5 November 2007. (Please note that this used to say "tentatively scheduled". The date is now firm.)

Lab assignments will be short programs to be written in class. They must be turned in at the end of the lab time and will not be accepted if turned in later.

Homework assignments are longer programs to be written outside of class. They will be turned in electronically to the departmental drop box, and they must be done individually as your own work.

The exams will be closed book exams.

The final exam will be cumulative.

The homework assignments can be found here.

The lab assignments can be found here.

The final exam is scheduled for Wednesday 12 December 2007 at 2:00pm.

Grading Scheme

Lab Assignments 20%
Lab Tests (2) 10%
Homework Assignments 25%
Tests (2) 30%
Final 15%

Version Control

Everything we will use in this course either comes with the textbook or is free and available on the web for download. However, things are are available for download tend to change versions on a regular basis.

We do not believe there will be functionally different versions of software available during this semester, but if you download tools for your home computer it is possible that you will be downloading a different version from that which is used in the 1D15 computer lab.

For the most part, the things that will different from one version of Eclipse to another or from one version of Java to another are not things you will notice in this class.

Java versions are labelled (and no, this makes no sense) 1.3, 1.4, 5.0, and then 6.0. The key to Java is that you have at least version 5.0 or higher. As of the day before classes started, the most recent version is Update 2 to Java 6. You will notice that the Java libraries in the labs are labelled 6.0.

Similarly, we are currently running Eclipse version 3.1 in the labs. The most recent version is 3.3, available as of 25 June 2007. We take a risk-averse approach to computer labs, in that we are unlikely to install the most recent version until it's been used and tested (by someone else). I personally am running Eclipse 3.2 on my three computers (home linux, office desktop, and laptop). You will see different versions, but I cannot imagine that you'll notice any difference from one version to the next on the kind of things you'll be using in this class.

Schedule

The schedule of class topics (subject to change and adjustment) can be found here.

Deadlines

Assignments will have due dates. Unless otherwise specified, the usual deadline will be that assignments are to be sent to the drop box by midnight of the day the assignment is due, and the drop box will be closed as of midnight. Late assignments will not be accepted without prior arrangement to accommodate truly extraordinary circumstances.

No makeup quizzes will be given.

Notes and Slides

(Caveat: any lecture notes I prepare may well change during the lecture process, and if you print them too early or too often you may use up your print quota.

These are not my slides. These are the slides written by the author and posted with the permission of the author and the book publisher. Do not distribute these slides further. Use of these slides is not to extend beyond CSCE 145 classes at the University of South Carolina, Columbia, during the time when Becker's robots book is used as the text.

Academic Honesty

Assignments and examination work are expected to be the sole effort of the student submitting the work. Students are expected to follow the University of South Carolina Honor Code and should expect that every instance of a suspected violation will be reported. Students found responsible for violations of the Code will be subject to academic penalities under the Code in addition to whatever disciplinary sanctions are applied.

There seems to be a widespread misunderstanding of the concept of "your own work." In addition to the USC Code, some good sources of text for what is or is not acceptable behavior are the academic honesty policy statement from Harvey Mudd College, the policy statement from Professor Steven Huss-Lederman at Beloit College, and the text of part of the collaboration policy statement from MIT. You can expect your programming assignments to be checked against those turned in by other members of the class as well as code that I can find on the web. I expect the correlations between your work and that of others to be minimal.

I can also offer an operational definition of what you can do and of how you can distinguish "learning from a group discussion" and "turning in someone else's work." If, after having participated in a group activity, you can walk away, put the books down, have lunch, and then come back afterwards to re-create from your own head the material and techniques you discussed as a group, then you can legitimately say that you have learned from the group but the work you turn in is your own.

On the Proper Use of Computing Resources

Students are expected to be aware of the university policy on use of computing resources, including the Student Guidelines for Responsible Computing, as well as the college and departmental policies on proper use of computing resources. Every instance of a suspected violation will be reported. Students should be aware that neither the instructor nor the department are responsible for making alternative arrangements should improper use leading to revocation of access to departmental or college resources make it impossible for you to complete the programming assignments on time.

On the Nature of Academic Work

Students might also find relevant an essay from a professor at Georgia Tech.

Swearingen Engineering Center | Columbia, SC 29208 | 803.777.2880 | web@cse.sc.edu