CSCE 146 -- Spring 2011

All Sections

Algorithmic Design II

Duncan A. Buell
Professor
Department of Computer Science and Engineering
University of South Carolina
Columbia, SC 29208
3A69 Swearingen
Email
803-777-7848(voice)
803-777-3767(fax)
Office hours: 3:30-4:30pm T-Th and by appointment
grizzlefarb

Basics

  • Class: Sections 1, 2: 12:30-1:45 T-Th, Room B213 Main Street
    Class: Sections 3, 4: 2:00-3:15 T-Th, Room B213 Main Street
  • Lab: Section 1: 8:00-9:55 W, Room 1D15 Swearingen
    Lab: Section 2: 10:10-12:05 W, Room 1D15 Swearingen
    Lab: Section 3: 12:20-2:15 W, Room 1D15 Swearingen
    Lab: Section 4: 2:30-4:25 W, Room 1D15 Swearingen
  • Office hours: 3:30-4:30pm T-Th and by appointment.
  • To the extent that it is feasible, I will teach the "two" classes in an identical fashion. The one clear distinction will come at final exam time, since the two final exams are a week apart. Other than that, though, the assignments, lectures, and requirements, including assignment submission deadlines, will be the same for both classes,
  • This URL
  • My home page
  • The official syllabus for this course.
  • Teaching assistants:
    Section 1: Yokuki To (dongy) and Shuai Jiang
    Section 2: Xu Sun (sun23) and Yokuki To
    Section 3: Yang Gao (gao36) and Xu Sun
    Section 4: Shuai Jiang (jiangs) and Yang Gao
    in domain cse.sc.edu)
  • This is the Moodle site for this course. There will be a lot of information put up on the Moodle site, which will be used instead of Blackboard. Unlike this web page, which is available to all and sundry around the world, the Moodle website will be password limited to students in this class.

Caveat

The contents of this page and of the Moodle site will be changing throughout the semester. You are responsible for looking at this page and the Moodle site on a regular basis, which means at least as often as once per class/lab event.

Tests and Assignments

The midterm exam will be on Tuesday 22 February 2011. This will allow us to get back the exams during the lab sessions the next day or in class on the Thursday following. The last day to drop the class with a "W" grade is Monday 28 February 2011.

The second midterm exam is tentatively scheduled for 29 March 2011. The date of the first mid-term is fixed to fit with the magic day for "W" grades, but no such constraint is placed on the second midterm, so its date might be adjusted one class or two if too many people have other conflicting exams.

Lab assignments will be short programs to be written in class. They must be turned in by the end of the lab time and will not be accepted if turned in later, period. It may be the case that the lab assignments are available earlier than class time, and if so then they may then be submitted early.

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 on the Moodle site.

The lab assignments can be found on the Moodle site.

The tentative schedule for labs and assignments can be found on the Moodle site.

The Java style guidelines can be found on the Moodle site. This is the rubric on which grading of your programs for style will be based. It is not enough that your programs "run correctly"; in order to be of "A" grade quality they must be styled and documented properly. These guidelines are the rules that define "properly".

The final exam for Sections 1 and 2 is scheduled for Wednesday, 4 May 2009, at 2:00 p.m.

The final exam for Sections 3 and 4 is scheduled for Wednesday, 27 April 2009, at 9:00 a.m.

Grading Scheme

Lab Assignments 20% (ten at 20 points each?)
Lab Quizzes (2) 10% (two at 50 points each?)
Homework Assignments 25% (six at 35 points each and one at 40 points?)
Tests (2) 30% (two at 150 points each?)
Final 15% (one at 150 points?)


Attendance and Grades

It has been found, and should come as no surprise to anyone, that attendance at class correlates positively with your GPA. I will be taking attendance. For every three (3) unexcused absences, your grade will be lowered by one full letter. The judgement as to accepting the excuse is mine. Illness, family emergencies, and such are excusable. Returning home late from Myrtle Beach to avoid the traffic jam is not an excusable absence.

Note also that the exams count a total of only 45% of your grade. Your grade is thus heavily dependent on your lab assignments and homework assignments. What this means is that there is in the grading system a strong incentive for you to keep up to date with assignments and to come to class and labs. It is NOT possible in this class to slack off through the semester and then somehow make up the difference with a strong final. The final exam just doesn't count enough to pull up your grade, not even when combined with the two regular exams. You will need to get reasonable grades on the labs and on the homeworks in order to do well in this course.

On the other hand, it is usually the case that the grades for labs and homeworks cluster very tightly. It is not that uncommon, for example, for perhaps 80% of the students to get a 16, 17, or 18 out of 20 on a lab assignment. Since the discrimination of total points thus is dominated by the grades on the exams, it is usually the grades on the exams that play the biggest role in the final grade. You can't slack off on either the labs and homeworks or on the exams.

Unless otherwise indicated, there are no bonus points that can be earned in this class. If you want to total up points so as to get a good grade, then do the labs and homeworks and do well on the exams.

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 8:00am of the day the assignment is due, and the drop box will be closed as of 8:00am. Late assignments will not be accepted without prior arrangement to accommodate truly extraordinary circumstances.

No makeup quizzes will be given.

Rules, expectations, etc.

  • You are expected to read this website and the Moodle site regularly and carefully. You are responsible for the material in this website, including rules and scheduling information.
  • You are expected to know who I am, how to get in touch with me by email, and how to find my office in person. (See the first point above.) If you google "duncan buell" then my USC web page is what comes up first on the list, so there is no excuse for someone in a computer science class not being savvy enough to find my contact information.
  • You are expected to turn in assignments on time to the dropbox. When you turn things in to the dropbox, you are responsible for checking that in fact the material has been stored as it should be. Some of the grading process will be automatic. If you submit a dot class file instead of a dot java file, that's your fault. If you submit a zip file instead of individual files, the automatic process will probably not unzip your submission, and it will be your fault that your submission doesn't get graded. And so forth; you get the point.

    If for some reason the Moodle dropbox is not functioning, you should immediately send me an email with your assignment attached. This email must have a timestamp before the dropbox deadline. Late assignments will be penalized. (See the first two points above.)
  • You are expected to read your university email.
  • You are expected to attend class. Attendance will be taken, and it will affect your grade. See below for details. The Student Success Center has found (to no one's great surprise) that your GPA is likely to improve by a full one-half point simply if you attend class.
  • This course has a prerequisite of a grade of C or better in MATH 141 and CSCE 145.
  • 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.

Texts, References, and Links to Useful Information

  • The link to the Moodle website is here.
  • A reference for Moodle can be found here.
  • The text for this course is being written by me, to be published by Jones and Bartlett. You will be provided with pdf of the chapters on the Moodle site. This material is copyrighted and is available only for distribution to the students in this class. Any publishing of this material on the web or any distribution to someone not in this class is a violation of copyright and I, together with Jones and Bartlett, will follow through with exacting penalities as provided by copyright law.


    For those who care about such things: this text was chosen for this class using to the university guidelines for selecting as a text a book written by a USC faculty member. The question does not arise this spring, but to avoid any questions of my getting royalties by having USC students purchasing a book for which I get royalties, I have agreed to donate an appropriate fraction of my royalties for this text to a departmental scholarship fund.

  • Some of you may know Visual Basic already. You might be interested in Cooper's book The Visual Basic Programmer's Guide to Java.
  • Some of you may know C++ already. You can find some tutorials about Java for C++ programmers by googling. Two such references are here and here.
  • The college page about computing support.
  • The Eclipse website.
  • A page on how to install Java.
  • A page on how to install Eclipse.
  • A page on how to connect remotely to the college computer network.

Academic Support, Supplemental Instruction, and ACE

Some of you may find this course difficult. Some of you may also be enrolled in Math 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 146 and MATH 142, and the Academic Centers for Excellence. Supplemental Instruction (SI) is offered for this course and provides you with the opportunity to attend 3 study sessions per week. SI sessions are facilitated by Stephen Cevallos, an undergraduate student who has taken this course and excelled in the course material. Your SI leader will facilitate a discussion and activities that encourage you to practice, discuss, and ask questions about the most recent lecture material. All SI sessions are held in the Student Success Center, Thomas Cooper Library. You can find the days/times for your SI leader's sessions at the supplemental instruction website, The Department of Computer Science and Engineering has specifically paid the cost of the SI person; this is a resource you should strongly consider using if you are having trouble in the class.

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.

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 computer labs.

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. This is necessary in order for you to do everything in this course.

Similarly, we are currently running Eclipse version 3.? in the labs. 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 different versions of Eclipse 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.

As they say in this business, your mileage may vary. You may not find exactly the same set of buttons on any of the versions of Java or Eclipse that you use, but Java 6 and a recent version of Eclipse ought to provide the functionality you need even if the buttons are slightly different. The keys to success include the ability to adapt.

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 found here, 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.

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