Syllabus
Computer Sciences 307
Foundations of Computer Science

CS 303E · The University of Texas at Austin · Fall 2001 - University Extension

Objectives.  To learn fundamental computer science concepts including data types, data structures, and algorithms; functions and recursion; abstraction and encapsulation; correctness: specification, testing, and proving. 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.  One year of programming in high school, or a grade of at least C in CS 304P, CS303e, or consent of instructor.

Textbooks.
Required: 
Mark Allen Weiss, Data Structures, and Problem Solving with Java (2nd edition)  (Addison-Wesley, 2002), ISBN 0-201-74835-5.

Recommended: Patrick Henry Winston, Sundar Narasimhan, On to Java 1.2, (2nd edition) (Addison-Wesley, 1998), ISBN 0-201-38598-8

Staff.

Classes. Mondays, 6:30 p.m. - 9:30 p.m.

Web Site. A class web site http://www.cs.utexas.edu/users/scottm/cs307e/utx is maintained. Course materials and announcements will be available here. Visit the web site frequently — at least every time you visit the lab or work on an assignment — to check for announcements, especially about assignments, between lectures. Assignments, model solutions, review materials, and other materials will also be posted there.

Painter Microcomputer Lab. PCs and Macintosh computers are available for assignments in the CS Department microcomputer lab located  in  Painter Hall, room 3.06. Students musts 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 TAs and proctors will hold office hours in the lab to assist students with questions on programming assignments. Students may also use other computers available to them to do assignments.

Software. The preferred software for the course is BlueJ, a non commercial Java IDE developed by educators for educational purposes.  BlueJ requires the Java SDK version 1.3 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 along with BlueJ. The class web page has instructions on how to do this. 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 and BlueJ software up and running.  The instructor and TAs will not be able to help you with installation of software on your personal computer although you may be able to help each other a lot through 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 given below.  The same information will be posted on the web page and any changes to the schedule will be announced in class, on the listserv and made on that page.  The schedule page will also contain links to slides from the lectures. Unless otherwise noted readings are from the required textbook.  I expect you to complete the readings before class so we can have a discussion on the topic instead of a simple lecture. 

 
Date Lecture Topic
Sep 10 1 Java Basics, Classes and Objects
Sep 17 2 Classes and Objects
Sep 24 3 OO Design, Algorithm Analysis, Matrices
Oct 1 4 Matrices, Recursion
Oct 8 5 Recursion
Oct 15 6 Sorting, Searching, Java Interfaces
Oct 22 7 ADTs and Linked Lists
Oct 29 8 More Linked Lists, Stacks and Queues
Nov 5 9 Simulations, 
Nov 12 10 Trees
Nov 19 11 Trees
Nov 26 12 Graphs
Dec 3 13 Graphs
Dec 10 14 Final

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

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, so it is important to have mastered early topics in order to understand later topics.  It is very similar  to Mathematics in this regard.

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

Final Averages will be calculated to 2 decimal places.  The line has to be drawn somewhere and no special allowances, other than a regrade of the final to ensure correctness, will be made for students whose final average falls near, but below the cutoff.  No curve for the final average will be used although the midterms and final may be curved if the instructor believes it is warranted. Nonacademic explanations for poor class performance have no bearing on the assignment of grades.   

Final Exam. The final exam will be cumulative and must be taken by all students. 

Assignments. Assignments will be given every week. Each assignment will have a clearly stated due date and time. Assignments start out easy, but get harder very quickly.  Most assignments will require programming and may require substantial time over several days. Budget sufficient time to complete assignments before the deadline. Model solutions to assignments will be posted on the class web site 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 for any reason. 

Late assignments. No late assignments shall be accepted. Missing an assignment will not be excused for any reason. 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 via email to Mike. Be sure to turn in the required files which will normally be you java source code, the .java file. Please put your name, and the assignment number in the header of the email.

Graded assignments. Assignments submitted via the turnin program are placed in your directory on the turnin server. Graded assignments will be returned via email to you.

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 text file that can be compiled and run; word processing files will not be accepted.  If you are using CodeWarrior do not submit the .mcp file.  Always submit the .java file or files.

Collaboration. You are encouraged to study for tests together, to discuss methods for solving the assignments, to help each other in using the course software (BlueJ), and to discuss methods for debugging code. However, the code that you submit for a grade shall be your own work; you may not share code or copy code from another student or any other source.  If you turn in someone else's code you will be subject to the University Rules and Penalties for Cheating.

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, your section number, and the number of the assignment or exam in question. Please include your name in the "From:" line of the email message, not just your email address. Email accounts are available free to students from the university and commercial sources; see the page on email accounts.

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 classwork 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 classwork 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.

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 the teaching assistant for your small section within two weeks of the date the teaching staff first attempted to return the assignment to you. For assignments returned via your turnin directory, this will be the date on the returned graded file. Complaints about grades received after this date will be considered only if their are extraordinary circumstances for missing the deadline.

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.

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, 471-6259 or 471-4641 TTY.


To the CS 307 home page