|
|
Syllabus
Computer Science & Engineering 143 Lecture and Section Times Lecture MWF 10:50—11:50, Anderson 223 Sections various times and locations on Tuesdays and Thursdays Textbook Building Java Programs, Reges & Stepp, required. Course Overview This course is a continuation of CSE142. While CSE142 focused on control issues (loops, conditionals, methods, parameter passing, etc), CSE143 focuses on data issues. Topics include: ADTs (abstract data types), stacks, queues, linked lists, binary trees, recursion, interfaces, inheritance and encapsulation. The course also introduces the notion of complexity and performance tradeoffs in examining classic algorithms such as sorting and searching and classic data structures such as lists, sets and maps. The course will include a mixture of data structure implementation as well as using off-the-shelf components from the Java Collections Framework. The prerequisite is CSE142 or equivalent. Discussion Sections You will be expected to participate in two weekly 50-minute discussion sections. The TA who runs your discussion section will grade your homework assignments. In section we will answer questions, go over common errors in homework solutions and discuss sample problems in more detail than we can in lecture. Course Web Page Information about the course will be kept at http://www.cs.washington.edu/143. Links to course handouts will be kept on this page along with useful links to other class resources. Course Administrator Pim Lustig (pl@cs.washington.edu, 616-3225) is the course administrator and will handle many details including registration and switching sections. Computer Access/Software The department operates an Introductory Programming Lab (IPL) that is located on the third floor of Mary Gates Hall. TAs will be available at the lab to help students with problems. You can use any Java environment you want and whatever you choose should be relatively easy to get installed on your local computer. Common choices are jGRASP, DrJava, Eclipse and TextPad (Windows only). We will be using the version of Java known as JDK 6. More information can be found on the class web page (particularly handout #2). Because one of the focuses of this course is programming technique, it can be a good investment to take some time and set up a programming environment that works well for you. Grading You will be expected to complete a variety of programming assignments for this course and to take two open-note, open-book exams. The resulting scores will be combined according to the following weightings: 40% weekly homework assignments 20% midterm (in class on Friday, 7/25/08) 40% final exam (in class on Friday, 8/22/08) Using the weightings above, each student’s scores will be turned into an overall score ranging from 0 to 100 percent. These will be turned into grades as follows: 90% at least 3.5 80% at least 2.5 70% at least 1.5 60% at least 0.7 If you need to miss an exam, you must contact Michael prior to the exam to get permission. Even if you are sick at home, you should be able to call your instructor’s phone number (and if necessary) leave a message that you need to be contacted. The weekly assignments will generally be graded on a 20-point scale. Late Policy Each assignment will list its due date. Most will be due on Mondays at 9 pm. Each student in the class will have a total of 4 “free” late days (a late day is 24 hours of lateness). There are no partial days, so assignments are either on time, 1 day late, 2 days late, etc. Because of this late policy, students will not be granted extensions for assignments unless they have some highly extenuating circumstances. Once a student has used up all of his or her late days, each successive late day will result in a loss of 1 point. No assignment will be accepted more than 4 days after its due-date. Disallowed Forms of Student Collaboration You are to complete programming assignments individually. You may discuss the assignment in general terms with other students including a discussion of how to approach the problem, but the code you write must be your own. The intent is to allow you to get some help when you are stuck, but this help should be limited and should never involve details of how to code a solution. You must abide by the following:
Under our policy, a student who gives inappropriate help is equally guilty with one who receives it. In all cases of student misconduct, the Office of Student Integrity will be notified. Students should be familiar with the Honor Code and the penalties outlined in the Student Code of Conduct. If you are taking the course a second time, you are allowed to submit a previous solution that you authored unless that program was involved in a case of academic misconduct. For any assignment where academic misconduct was found (whether the case was settled formally or informally), you have to write a new version of the program. Encouraged Forms of Student Collaboration The reason we are so serious about individual work on programming assignments is because this course is designed to build programming skills that can't be learned without struggling through problems on your own. Real programmers almost always work on teams and have plenty of support - and so should you, except for the individual programming assignments. Forming informal class study groups is one of the best ways to ensure a high grade. It can be very instructive to work on non-assigned programming challenges (contact the instructor if you'd like some ideas), practice exams, and discussing neat techniques and tools. Contacting your instructor
|