|
Computer Science 307 |
Welcome to the homepage for CS 307, Fundamentals of Computer Science, Fall 2003 version. All of the important administrative information you need for the class is contained via one of the links below.
Syllabus Schedule Software Links Assignments Office Hours / Lab Hours Test Review Materials Discussion Section Handouts(DiSHes)
December 29: A breakdown of results on the final and final course grades.
December 15: I have finished grading the final, posted the grades for the final exam to egradebook, and have submitted final grades to the registrar. I do not know how long it takes for the registrar to make grades available, but when you get your final course grade please keep the following in mind:
The grading system needs to be fair to everyone so keep this in mind:
(1) Assigned grades are not the starting point of a negotiation. This isn't a
weekend bazaar. Unless we have made a specific mistake in grading your
work (i.e., you have a correct answer that was marked wrong or your score was
added incorrectly), your grade is final.
(2) If we have made a mistake then in a calm and professional manner send me an
email message describing the error you think has been made.
Note that none of the following grade discussions are appropriate:
(1) "I know my answer was wrong, but I deserve more partial credit
points." When we grade, we make decisions about how many points to give for
various kinds of wrong answers. This is never a clear cut decision. The
important thing is that we make some decision and then implement it fairly for
everyone. It is completely unfair to come back later and give one person more
points just because they ask. We won't do it.
(2) "I don't like my final grade. It will ruin my life for the following
reason: ... Therefore you should give me a better one." Class grades
reflect only one thing: how well you did in the class. Life circumstances just
don't play a role here. Don't come to me with this kind of argument.
(3) "I don't like my final grade. I am desperate. Isn't there some sort of
extra credit thing I could do?" Any answer other than "No" to
this question would be completely unfair to other students in the class unless
they were all offered this option. That would be equivalent to saying that the
semester isn't over and everyone can keep trying. We're not going to do this.
Final grades are final.
(4) "I don't like my final grade. Can I have an incomplete and try
again?" There are University rules for giving incompletes. If you meet
those rules (e.g., you had a medical problem during the semester), then, of
course, come and tell me and ask for an incomplete. But make sure you do it as
soon as you can. Do not wait until the semester is over. If you do not meet the
rules, the answer is "No".
(5) "I don't like my final grade. It doesn't reflect what I really know. I
guess I didn't show what I know on the exams, but won't you give me a chance to
convince you that I really know this stuff." Again, any answer other than
"No" would be unfair to everyone else.
Remember, grades are a reflection of performance in the class on homework, quizzes, midterms, and the final. Unfortunately the amount of effort you put in the course or your perception of your knowledge level have no relevance or bearing on the final grade you are assigned. It is based on your performance on the homework, quizzes, midterms, and the final. The time to "do something" about your grade is long past. The time to do something about your grade was during the term in studying for the class and doing the work for the class.
I am not posting this information because I am mean-spirited. I am simply amazed at the number of students each term who try to negotiate a final grade that has little correlation to their performance in the class and I am trying to head off these types of discussions before they start.
Take care and have a good break.
December 10: Room assignments for the final: Students with last names starting with A - H are assigned to Painter 2.48 and students with last names starting with I - Z are assigned to Painter 4.42/ Please go to the correct room.
December 9: Please bring a pencil to the exam. A portion of the exam will use a standardized test bubble sheet.
November 24: I have posted scores to egradebook for midterm 2. The aggregate results and curve have been posted.
The final exam is Thursday, December 11, 7 - 10 p.m. in Painter Hall 2.48 and 4.42 (Room assignments to be posted at a later date.) The makeup, available only via prior arrangement with me, is Friday, December 12, 9a.m. - 12 noon. The length of the final will not be significantly longer than the midterms all the format will be a little different. I have decided to include our class in a national survey of introductory programming classes using Java and so there will be some standardized (multiple choice) questions most involving reasoning about pieces of code and possible implementation of data structures. There will be 3 coding questions, one involving trees (and therefore, possibly recursion) and 2 questions involving data structure, using and implementing.
For the week of the final I will be holding extra office hours so please feel free to stop by on Tuesday December 9, ~10 - 2, Wednesday December 10, all day, and Thursday, December 11, 12 - 5.
November 20: Assignment 11 has been posted.
November 14: Assignment 10 has been posted.
November 10: The second midterm exam is on Wednesday, November 12, from 7 - 9 p.m. in ART 1.102. If you made prior arrangements for the makeup it is Thursday, November 13, from 9:30 - 11:30 a.m. in Taylor 3,128.
November 5: The SparseMatrixGenerator class has been posted.
November 3: Assignment 9 has been posted. The supporting classes for testing will be available Wednesday.
October 30: Tomorrow's classes (Friday, October 31) are canceled. I am at home sick. (A touch of pneumonia.)
October 27: The assignment handout states duplicate entries are not allowed in the Lexicon. This is incorrect. Duplicate entries are allowed. This makes you job a little easier.
Someone in the afternoon class asked what the Java ArrayList class started its containers at. From the java source code (which is included as a zipped file when you download the sdk. Look under the directory you installed the SDK for src.zip.)
public ArrayList() {
this(10);
}
It calls the constructor where the capacity can be sent as an int with an initial size of 10. Shame on them for not using a constant.
October 24: Assignment 8 has been posted. Enjoy!
October 22: Contrary to a posting I made to the newsgroup in a less than lucid moment, you can use the substring method in the palindrome method. Sorry!
October 20: The drop deadline for courses is Wednesday. You should have enough information to decide whether you want to drop or not based on midterm, quiz, and assignment performance. I am not encouraging people to drop, in fact I am encouraging people to stay. The chairman of the Computer Science Department, Professor J Moore, summed it up very nicely: "making a C or B in your first CS course is not indicative of failure! The field is broad and many experts (including most of the faculty!) are good at some parts and not particularly interested in others. Deciding to abandon the field because you didn't make an A in your first course is not very defensible." I strongly urge you to stay with computer science if it interests you as a field of study. If you are planning on pursuing a different field of study I would ask you to examine you reasons why.
October 17: Assignment 7 has been (Thanks Mom.) posted.
October 15: Midterm 1 aggregate results have been posted. This includes the curve.
October 10: Assignment 6 has been posted.
October 10: There is an error in the original version of the Simulation class I provided. The step method does not check to ensure a BasicOrganism has not been eaten between the time the list of all organisms was pulled from the world for the current turn and an organism is told to act. The corrected version of step is:
//--------------------simulation.java------
public void step()
{ Locatable[] orgs = myWorld.allObjects();
shuffle(orgs);
for(int i = 0; i < orgs.length; i++)
{
if(myWorld.objectAt(orgs[i].location())
== orgs[i])
((BasicOrganism)(orgs[i])).act(myWorld);
}
}
//---------------
Add the if statement to your code. Many thanks to David Grohmann for identifying and fixing this problem.
The deadline for assignment 5 is extended until Monday, October 13 at 11:00 p.m.
October 6: This assignment (Terrarium) is another hard
assignment. Hopefully you already started and have a partner to work with. I
would start with very simple strategies for your animals and then if you have
time add complexity.
The two assignments after this one will, depending on the student, take less
time. On an absolute scale I would say the next two assignments are certainly
easier than the current and previous assignment or DNA assignment, more on par
with the Matrix assignment.
I know that coding can be a real grind, but please keep in mind, our goal is for
you to learn a valuable and important skill that will assist you in your study
of computer science. As Dan Rather says, "Courage."
October 3: Assignment 5 has been posted. And there was much rejoicing...
September 26: Assignment 4 has been posted. Midterm 1 will be held Wednesday, October 1, 7 - 9 p.m. in ART 1.102. The alternate exam (which may only been taken if you have made prior arrangements with me) will be 9:30 - 11:30 a.m. in Taylor Hall 2.144.
September 19: The post condition for the process strands method in assignment 2 had an error in the post condition: Just to be clear:
/* pre: labels and strands are parallel arrays,
containing the labels and strands for a group of dna strands. labels[0] is the
label for strands[0], label[1] is the label for strands[1], and so forth.
label.length = strands.length. No element of labels or strands is null.
threshold > 1
post: process the strands according to the process described in the assignment 2
handout using threshold. The method returns an array of Strings which contains
the labels for the final strand(s). The length of the returned shall equal the
final number of strands. This will be a parallel array to the variable strands.
The variable strands will contain the merged strands. The N final
strands will be contained in the first N elements of the variable strands. Note,
strands will contain some null elements if any merges occurred. This is
necessary because any statement such as"
The original version stated labels instead of strands. This of course is completely wrong. The labels array should not contain the strands, it should contain labels, but really isn't important since the method returns the array of labels. The char[][] will contain the information of the strands, the bases if you will.
September 19: Assignment 3 has been posted.
September 15: Posted a page with links to all of the discussion section handouts. Check the schedule for suggested problems.
September 15: The assignment is unclear on how to combine labels when a match occurs. It is up to you. The order doesn't matter.
September 12: Assignment 2 has been posted.
September 8: Lab hours page posted. The USLs will be holding lab hours starting today.
September 5: Small section signups are happening now. Please make sure you visit the page listed below and sign up for your section. Sections will not meet until Tuesday, September 16th. They will not meet on Tuesday, September 9th. USLs will start holding lab hours in the microlab starting Monday. Please see the Lab Hours Schedule page.
September 3: Section signups are available. Go to http://www.cs.utexas.edu/users/leverich/signup/ and follow the instructions. Sections will not start until September 16th. Remember if you work as a pair on an assignment, you must have the same section leader.
Please use the newsgroup as it was intended. To pose and answer questions about course material and other CS topics in general. Sophomoric pictures, pickup lines, and useless comments on people testing their connectivity to the newsgroup are not appropriate uses of the newsgroup. Thanks.
Letters for students who need to see the CS advising office in Taylor 2.126 regarding prereqs and/or repeating the class are available.
August 29: If you are having trouble accessing the newsgroup be sure you have followed all the instructions from the ITS web site.
August 27: Here is a link to the story I mentioned in class about the UT CS professors and the next generation processor. Here is a link to Professor Peter Stone and his Artificial and Robot Soccer research.
August 25: Welcome to CS 307, Fall 2003. Check back often for news and announcements.
There is a class packet with slides and homework problems available at the University Duplicating Services office in Welch Hall, room 2.228.
Detailed instructions about accessing UT newsgroups can be found on the class software page. Nathan Skvirsky, a proctor for the course, has provided simple instructions on how to set up Microsoft Outlook Express to access the class newsgroup via an on campus computer.
Syllabus: The most important document in the class. This contains details for just about every issue on the class
Schedule: This has the calendar of everything including links to handouts given in class.
Software: A page with more links to information and instructions on how to use the various pieces of software required for the class.
Links: A collection of helpful and interesting links.
Assignments: The large page containing links to assignment handouts and the necessary java files for assignments.
Tutoring: In addition to the instructor, TAs, and undergraduate proctors, tutoring help available via the following means:
Maintained by Mike Scott. Email me comments and suggestions.