Syllabus
Computer Sciences 307
Foundations of Computer Science

CS 307 · The University of Texas at Austin · Fall 2003

Objectives.  To learn fundamental computer science concepts including data types, data structures (linked lists, trees, graphs, stacks, and queues), and algorithms; recursion; data abstraction and encapsulation; correctness: specification, testing, and proving. Object oriented design and implementation. Introduction to reasoning about programs correctness and efficiency.

Prerequisites:

  1. A score of at least 560 on the SAT II Subject Test in Mathematics Level I or Level IC, or a score of at least 530 on the SAT II Subject Test in Mathematics Level IIC, or a grade of at least C in Mathematics 305G; 
  2.  and one year of programming in high school, or a grade of at least C in CS303e, CS 305J or consent of instructor.
  3. and repeated enrollment in CS 307 requires the consent of a CS academic advisor. 

    Warning letters to students apparently not meeting these requirements will be issued by the CS undergraduate advising office and distributed in class. Failure to resolve issues involving prerequisites or repeating the course will result in you being dropped from the course.

Textbooks, Required:  William J. Collins, Data Structures and the Java Collections Framework, (McGraw Hill 2002), ISBN 0-07-236964-7

There is a class packet with slides and homework problems available at the University Duplicating Services office in Welch Hall, room 2.228.

Staff.

Classes. Monday, Wednesday, and Friday class meetings will be lectures meeting together with me. These are not quite traditional lectures because I will often ask students questions and ask for questions during our time together. Small group discussion sections meet on Tuesday depending on which small discussion section you sign up for. Section signups will be via the web. More details on this will be given when the course starts. 

Each section meets separately with a USL to give students the opportunity to discuss supplementary material, homework assignments, and allow students to ask questions. Handouts are in the course packet and contain some of the material to be covered in section. You should complete these problems before coming to section although it will not be graded. Participation in lecture and discussion section is one thing that can help you move up if you are on the borderline of a grade break. This means if you are within 1 point of the next highest grade and I believe you have actively participated in class I reserve the right to move you up to the next highest grade. 

Short quizzes will be given during each discussion section  and important examples will be worked during these discussion sections. You are responsible for any and all material presented at these small discussion sections. 

Web Site. The class web site http://www.cs.utexas.edu/users/scottm/cs307. Course materials and announcements will be available here. Visit the web site and newsgroup (see below) frequently — at least every time you visit the lab or work on an assignment — to check for announcements, especially about assignments, between lectures. Assignments, review materials, and other materials will also be posted there. If you need anything, chances are it's on the website.

Class Newsgroup. There is a class newsgroup, utexas.class.cs307-scott. If you do not have an email account get one as soon as possible.  There is information on the class web page explaining how to obtain an email account. Note, to access the utexas newsgroups via an off campus internet connection you will have to follow the instructions at www.utexas.edu/cc/usenet/extnews/  The name of the news server is newshost.cc.utexas.edu If you are using Outlook Express on campus you add a new news account with this news server address.  (Under Tools -> Accounts -> add account)  You can also see www.utexas.edu/cc/usenet/index.html for more information about reading from newsgroups. 

Painter Hall Microcomputer Lab. PCs are available for assignments in the CS Department microcomputer lab located  in  Painter Hall, room 3.06. Students must see the user assistant (UA) in Painter 3.12 to obtain an account for the microlab. These accounts are only for the CS microlab, and not any other labs or networks at UT. The USLs, will hold office hours in the lab to assist students with questions on programming assignments. Note, the USLs will help you to solve your own problems, but will not write or correct all of your program for you. You need to be proactive and ask the USLs good questions. "I don't understand the assignment" is not a good question. Neither is, "My program doesn't work." Students may also use other computers available to them to do assignments.

Note, class slides and handouts may not be printed in the Microlab. Only programs (source code) may be printed.

Software. The programming language for this course is Java. You must obtain a copy of the Java SDK (software development kit) version 1.4 or later, which is available for free via the web. You probably also want an IDE (interactive development environment) to  make programming easier. There is no official IDE and you have your choice of many free ones, again available via the web. One simple IDE is BlueJ, a non commercial Java IDE developed by educators for educational purposes.  BlueJ requires the Java SDK version 1.4 or later be installed first. If you wish to work outside the lab, you will have to download and install the Java Software Development Kit from Sun Microsystems web site. The class web page has instructions on how to do this. Another popular (and good) IDE is JCreator, available for free via the web. See the class software page for links to these products. A lot of folks think BlueJ is too simple minded and like JCreator better.

Please note, working at home is optional and aside from the information on the web page you are on your own to download, install, and get the Java software up and running.  You will also be required to turn in most of your assignments electronically via the Turnin Program, a piece of software that allows you to transfer files from other computers to your account on the microlab server. The instructor and USLs will not be able to help you with installation of software on your personal computer although you may be able to help each other via the class newsgroup.  Be warned, if you choose this route you are mostly on your own.  The time to try and download and install the software at home is NOT four hours before the first assignment is due.

Schedule. A schedule of lecture topics, reading assignments, and assignment distribution and due dates is available online via the class web page.  A copy of the projected schedule will be handed out the first day of class. The schedule page will also contain links to slides from the lectures, assignments, and online readings. I expect you to complete the readings before class so we can have a discussion on the topic instead of a simple lecture. The schedule is subject to change so be sure to look at the class web site and online schedule of topics. 

Exams and Grading. Your grade will be maintained your USL, normally the person who teaches your small discussion group.  If you have questions or concerns about your grade contact your USL at lab hours or via email.  Please do not contact Mike initially with grade questions or concerns else you will get a pithy reply reminding you to contact your TA.  

Grades on assignments, quizzes, and exams will be posted to egradebook which can be accessed via your UTDirect account.

Course grades will be based on the following components.

Exam Topics: Exams will cover material from lecture, discussion sections, assignments, and the assigned readings.  Exams will be cumulative although they will be more heavily weighted towards material not yet tested.  Computer Science and programming is a very cumulative discipline (like Mathematics), so it is important to have mastered earlier topics in order to understand later topics.

Final Grades: Final grades will be assigned according to the following criteria:

Final Average Letter Grade
90 - 100 A
80 - < 90 B
70 - < 80 C
60 - < 70 D
  0 - < 60 F

If your final average is within 1 point of the next highest grade you may be moved up if you have participated in class and discussion section.

Final Averages will be calculated to 2 decimal places.  I think the grading system is to restrictive. I want more options such as + and - modifiers. The difference between a 79 student and an 80 student is not that much, but the grading system makes it seem there is a huge difference between the two. Alas, the line has to be drawn somewhere.  No curve for the final average will be used although the midterms and final may be curved if the instructor believes it is warranted. I hope to get the following breakdown on tests. 18% As, 27% Bs, 35% Cs, 15% Ds, and 5% Fs. I will only curve test grades up. If everyone gets an A on the test, no curve will be imposed to lower scores. If everyone passes the test on raw score I will not curve anyone down to an F. 

Nonacademic explanations for poor class performance have no bearing on the assignment of grades. 

Midterm exams. Two midterm exams will be held in the evening on the days shown above. These tests will be held from 7:00 p.m. to 9:00 p.m. in the evening. Exams will cover all material up to and including material presented on the Monday just before the exam. Attendance at exams is required and missing an exam will result in a grade of 0.  However, students who present adequate proof of a conflict with the exam time to the instructor two weeks  before the exam may receive permission to take the exam at an announced alternate date and time, probably the next morning.  You must contact the instructor via email and provide the required information as listed on the class web page. Failure to meet this administrative deadline will result in a 10 point penalty on the exam.

With adequate proof of exceptional conditions, such as illness, the instructor may excuse a student from taking an exam. In this case, there will be no make-up exam; the missed exam grade will be replaced by the weighted average of the remaining midterm exam grade and the final exam grade.  

Please note class meets during normal times on the day of an exam.

Final Exam. The final exam must be taken by all students. It will be held on a uniform exam date, which will be established later, and not on the date announced in the schedule of classes. Students who present adequate proof of an exam conflict, or have three or more  final exams on the exam day, or other exceptional circumstances, to the instructor at least one week before the last day of classes may receive permission to take the final exam at the alternate date and time. Failure to meet this administrative deadline will result in a 10 point penalty on the exam.

If you miss an exam because of an emergency or due to some other circumstance show up and take the alternate exam, but realize the 10 point penalty will be enforced except for verified emergencies.

Assignments. Assignments will be given every week. Each assignment will have a clearly stated due date and time. Assignments are normally due by 7:59:59 p.m. on Fridays. Assignments start out easy, but get harder very quickly.  Most assignments will require programming and may require substantial effort over several days with possible help from the myself and the USLs. Budget sufficient time to complete assignments before the deadline. Model solutions to assignments will be handed out in class after the due date. The lowest assignment grade will be dropped.  This is to cover and allow for emergencies and unforeseen problems. Because one assignment is dropped, assignments will not be excused. 

The best strategy for assignments is to work on it during the weekend immediately after it is handed out. If you finish it with no problem, great. Otherwise you can bring your questions to, my office hours, the micro lab or small section to get help.

Late assignments. No late assignments shall be accepted. Missing an assignment will not be excused. The dropping of the lowest assignment grade is designed to cover all reasons for missing an assignment.

Turning in assignments. All assignments must be submitted using the turnin program. See the class web site for instructions on finding and using the turnin program. The turnin program is installed on machines in the Microcomputer Lab. It may also be downloaded and run on any machine running Windows 95, 98, ME, NT, or XP after an internet connection is made. However, we do not guarantee that the turnin program will work outside the Microcomputer Lab. If it does not work on your machine or you are having a problem with your internet connection, you must use the turnin program installed in the lab. If you have trouble using the turnin program in the Microcomputer Lab you must follow the procedures and instructions below to turn in the assignment.

You shall normally turn in your Java source code and this must compile and run when your USL grades it. You will normally not be provided the testing code we will use to grade your program. Developing good tests is part of your job when writing programs.

If you cannot get the turnin program to work for you in the Microcomputer Lab, then have a USL in the lab email the assignment for you to your USL, with a copy to you and me for proof of mailing. If we determine that turnin works for you in the Microcomputer Lab, we will notify you that further submissions by email will not be accepted. Assignments emailed by students themselves will not be accepted for grading.

Grading of Assignments. Assignments submitted via the turnin program are placed in your directory on the Microcomputer Lab server. You will arrange for a time with the USL to go over the assignment together to get feedback and discuss any problems you had.

Assignments will be graded on two criteria, functionality and style. A program that works is not, by any means, a perfect program. I want you to write programs that are well thought out and put together well. Each of these will count for half of the grade on your program. More on the two criteria:

Each program will be worth 20 points with 10 points for correctness and 10 points for style.  

Programs will be graded interactively with your USL. You will be arranging a time to meet with the USL to cover most of the programming assignment you do in the class. The USL will offer feedback and suggestions for the future to improve your programs. A student who earns an initial grade of 17 or higher on a program does not need to attend the interactive grading sessions. Your USL will inform students who earned a preliminary grade of 17 or higher. If you miss the interactive grading period you will have another 2 points deducted from your grade.

Header and file name. All assignments must be submitted with the proper header, containing the name (as registered), name of your USL, and the assignment number at the top of the assignment. Your student ID number or social security number is not required. In addition, because assignments are submitted as files by the Turnin program, they must have the correct file name which will be specified in the assignment handout. You must also ensure you turn in the assignment to the correct section folder, that is the section you are currently registered in. Look at the turnin page on the class web page for information on how to make sure you are turning the assignment into the right section. 

Assignments that are not named correctly will have 4 points deducted from the grade for that program.

Most assignments will be programs. For programs, the source code (.java file(s)) must be turned in; no credit will be given for turning in a compiled, executable, or other file. The source code must be a simple text file (with the .java extension) that can be compiled and run; word processing files will not be accepted. It is up to you to ensure your turned in the proper file prior to the due date and time.

Quizzes Short 10 point quizzes will be given during each small section meeting throughout the term. The lowest of these quizzes will be dropped. Two quizzes are worth one assignment.

Grade Disputes and Corrections: If you are dissatisfied with a grade you receive on an assignment or test, you must submit your complaint briefly in writing or by email, along with supporting evidence or arguments, to your USL for your small section within one week of the date the teaching staff first attempted to return the assignment to you. For assignments this will be the scheduled time and date of your one on one grading session with your USL. Complaints about grades received after this date will be considered only if their are extraordinary circumstances for missing the deadline.

Collaboration. You are encouraged to study for tests together, to discuss methods for solving the assignments, to help each other in using the software, and to discuss methods for debugging code. You may work together on the assignment with one other person who has the same USL as you. If you do so I strongly (again I strongly) urge you to not simply partition the assignment, rather work together (in the same room, at the same computer, with one person driving and one person navigating) on the assignment. If you do this you will turnin the assignment to only one of your microlab accounts, but be sure to include both of your names in the header and note that this is a pair assignment. Both students shall get the same grade for the assignment. Note, if you abuse this policy and simply partition the work or allow someone to do all of the assignment, you will not be prepared for the exams. 

Again, you may work together with only one other person. Wholesale copying of code between pairs will result in academic penalties according to the University Rules and Penalties for Cheating. My punishment for cheating on an exam or assignment is the assignment of an F as the course grade. Cheating in the context of assignments is sharing and copying code with more than 1 person. 

I will use plagiarism detection software on various assignments to find pairs who have copied code from one another. Since you are only turning in 1 version of the assignment it should not be the same as any other assignment turned in.

Extra Credit:  There are no opportunities for extra credit in this class.

Other Policies

Email. Students are encouraged to discuss any matter with the teaching staff in person, typically after class or during lab or office hours. However when that is inconvenient, communications between students and the teaching staff are most conveniently handled by email. In email, include your name, and the number of the assignment or exam in question. Email accounts are available free to students from the university and commercial sources; see the page on email accounts.

Adding and Dropping the Course:  

The academic calendar for each semester is provided in the front of the current Course Schedule. The following information is generally true during each new long semester. Summer courses are subject to a somewhat compressed version of this procedure  (Note class days, refer to University class days, not course class days):

Adding the Course

  1. Before the 12th class day: During the first four (1-4) class days, students may add courses using ROSE, the Registrar's Online Services. To add a class during this period, the student must go to the department offering the course. Permission to add a class is at the discretion of the department. In some colleges and schools, the approval of the student's adviser and dean are also required.
  2. After the 12th class day of a long-session semester the student may add a course only in rare and extenuating circumstances as approved by the student's dean and the chairman of the department offering the course.

Dropping the Course 

  1. Before the 4th class day:  During the first four (1-4) class days, students may drop courses using ROSE, the Registrar's Online Services with no academic penalty.
  2. 5th class day to the 12th class day:   To drop a course during this period, the student must have the approval of the chairman of the department offering the course. In some colleges and schools, the student must also have the approval of his or her adviser and dean; each student must consult the regulations of his or her college or school. If the student is allowed to drop the course, the course is deleted from his or her academic record and applicable fees are refunded. Note, approval during this period is normal and routine.
  3. 13th class day to the 20th class day (the end of the fourth week) To drop a course during this period, the student must have the approval of his or her dean. In some colleges and schools, the approval of the student's adviser is also required; each student must consult the regulations of his or her college or school. If the student is allowed to drop the course, the symbol Q appears on his or her academic record to indicate a drop without academic penalty. No refund is given.
  4. 21st class day to the mid semester deadline.  To drop a course during this period, the student must have the approval of the instructor, the student's adviser, and the student's dean. If the instructor approves the drop, he or she will assign the symbol Q or a grade of F. The symbol Q indicates that the student has a grade of at least C in the course, that no grade has yet been assigned, or that no academic penalty is in order because of the student's performance and the nature of the course. In compelling circumstances, the student's dean may assign the symbol Q for nonacademic reasons.|
  5. After mid semester drop deadline. After the mid semester deadline for dropping courses in a long-session semester, an undergraduate may not drop a course except with the approval of his or her dean and then only for urgent and substantiated, nonacademic reasons.

Translation: Adding the course after the 4th day is hard, but not impossible. Adding the course after the 12th day is almost impossible. Dropping the course with a Q up to the mid semester deadline is fairly painless and I will always, always, always give a Q if a student requests to drop the course. After the mid semester deadline it becomes almost but not quite impossible to drop the course. I always, always, always, recommend a grade of Q for these post mid semester drops due to substantiated non academic reasons. If you drop after the 12th class day with a Q you are still considered to have taken the course once under the CS department's limited course repetition rules

Tuesday, September 2 4th class day. Last day to add a class using TEX or ROSE. Last day of the official add/drop period; after this date, changes in registration require the approval of the chair and usually the student's dean. (See General Information, chapter 4, for required approvals.)
Monday, September 8 8th class day. Deadline (4:00pm) for seeing a CS Academic Advisor to resolve problems concerning prerequisites or repeated enrollment.
Friday, September 12  12th class day. Last day to add a class except for unusual circumstances.
Last day to drop a class for possible refund.
Last day a course can be dropped without counting as an enrollment under the CS department's limited-repetition rule.
Wednesday, September 24 20th class day. Last day to drop a class with an automatic Q
Wednesday, October 22 Last day to drop a class (with a possible F) or withdraw without nonacademic reasons.
Last day to change a class to Pass/Fail.

The deadline for dropping the course without possible academic penalty is Wednesday, September 24. The last day an undergraduate student may, with the dean's approval, withdraw from the University or drop a course except for urgent and substantiated, nonacademic reasons is Wednesday, October 22. After the end of the fourth week of class and until this date, a student wishing to drop the course ("Q drop") must get the forms from the Dean of his or her college and ask the instructor to complete the drop form that assigns a Q or an F. After the 22rd of October drops are allowed only for substantiated, nonacademic reasons and you must see inquire within your college the procedure to do this. I always honor student requests for a Q up to the deadline on the 22nd of October. I do not assign X's except in cases that strictly meet the guidelines of the Academic policies and procedures section of the general information guide: 

Approved uses of the symbol X. An undergraduate student may, with the approval of the instructor, be assigned the symbol X in a course for one of the following reasons:

  1. Missing the final examination: The student is unable to take a final examination because of illness or other nonacademic reason. A physician's statement or other satisfactory verification is required.
  2. Incomplete classroom assignment: The student has not been able to complete the required class or laboratory assignments for a reason other than lack of adequate effort. A request for temporary delay of the final course grade because of incomplete class or laboratory work can be made only if the student has a passing average on the class work or laboratory work already completed and has taken and passed the final examination (unless a final examination is not given in the course or the student is unable to take the examination for reasons indicated in the previous paragraph).
  3. Reexamination petition: Only a student who has a grade average of at least C on all class work and laboratory work submitted before the final examination may request a temporary delay of the final course grade because he or she failed the final examination, which is the examination given during the final examination period as printed in the official examination schedule. If the petition is denied by the instructor, the student's final course grade will remain as originally determined. If the petition is granted by the instructor, the grade on the reexamination will be substituted for the grade on the original examination in determining the student's final course grade, provided the student earns at least a C on the reexamination. If the grade on the reexamination is less than a C, a final course grade of F must be recorded.

Improper uses of the symbol X. A student must not be assigned a temporary delay of the final course grade symbol to permit (1) time to prepare coursework in addition to that assigned the entire class, (2) time to repeat the entire course, or (3) opportunity to raise a grade for any reason other than the approved reasons cited above. The temporary delay of final course grade symbol is not issued for student or faculty convenience; it may be issued for the reasons cited above only in the case of compelling, nonacademic circumstances beyond the student's control.

Religious Holy Days: A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the examination on an alternate day, submit the assignment up to 24 hours late without penalty, or be excused from the examination or assignment, if proper notice of the planned absence has been given. Notice must be given at least fourteen days prior to the classes scheduled on dates the student will be absent. For religious holy days that fall within the first two weeks of the semester, notice should be given on the first day of the semester. It must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail, return receipt requested. Email notification will be accepted if received, but a student submitting such notification must receive email confirmation from the instructor. A student who fails to complete missed work within the time allowed will be subject to the normal academic penalties.

Scholastic Dishonesty: Students who violate University rules on scholastic dishonesty in assignments or exams are subject to disciplinary penalties, including the possibility of a lowered or 0 grade on an assignment or exam, failure in the course, and/or dismissal from the University. Representing the work of others as your own will be considered academic dishonesty and will not be tolerated. Such dishonesty harms the individual, all students, and the integrity of the University, and policies on scholastic dishonesty will be strictly enforced. My punishment for cheating on an exam or assignment is the assignment of an F as the course grade.

Disability Related Needs: Please notify me of any modification/adaptation you may require to accommodate a disability-related need. You will be requested to provide documentation to the Dean of Students' Office in order that the most appropriate accommodations can be determined. Specialized services are available on campus through Services for Students with Disabilities, SSB 4.104, A5800, 471-1201, fax 471-7833, TTY 471-4641


To the CS 307 home page