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:
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
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.
Component | Date | Weight |
---|---|---|
Take Home Midterm | Handed Out in Class Oct 22, Due in class Oct 29 | 20% |
Final Exam | Dec 10 | 40% |
Assignments | (Stated in each assignment) Normally on Thursday evenings at midnight. 14 assignments planned. Lowest assignment score dropped. | 40% |
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:
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.