CSE 109 Systems Programming Fall 2008 (CSE 411 Advanced Programming) Instructor: Ed Kay Packard Laboratory 204B Phone: (W) - 758-3623 (H) - 867-3136 (Before 10 PM!) Email: ejk0 Office Hours: MWF 9:10-10:00 AM, or by appointment Prerequisite: CSE 17 Text: Walter Savitch, "Absolute C++", 3rd Edition, Addison-Wesley, 2007. Attendance: You are responsible for material covered in class, including elaboration and modification of assignments, and you are expected to participate in class. Course Web Page: www.lehigh.edu/~ejk0/cse109.html Basis for Grades: Percent of Grade Homework Assignments 5% Programming Assignments 35% Test 1 Friday 3 October 2008 15% Test 2 Friday 14 November 2008 15% Final Examination 30% Tests: 1. The tests and final examination are closed book, closed notes. 2. I do not give makeup tests. Except in extraordinary circumstances, you will recieve a zero for a missed test. Assignments: 1. For each assignment you will hand in an electronic copy. The electronic copy will be automatically collected at 9 PM of the day it is due. The details of this procedure will be discussed in class. 2. Each assignment will be graded on a 100 point scale. There will be three opportunities to submit programming assignments: the time it is due, one day later, and two days later, except that assignments originally due on Thursday are collected (late) Saturday and Sunday. On the third collection, all assignments not previously submitted will be collected. Your grade on programming assignments will be reduced 10 points for being one collection day late and an additional 10 points for being two collections days late. Late homework assignments (as distinguished from late programming assignments) will not be accepted. 3. In the past I have always returned assignments and tests at the next class after they are collected. I intend to continue that practice. If you miss that class, ask me for the given assignment or test. Topics Covered (not neccesarily in the order below): 1. Introduction to Unix 2. Review of structures shared by Java and C++ 3. Passing variables to functions 4. Pointers 5. Makefiles 6. Text reading 7. Classes and Subclasses 8. Templated Classes 9. Lexical Analysis 10. Parsing 11. Code Generation 12. Building Mid-Size Programs 13. C University Policy on Disabilities: "If you have a disability for which you are or may be requesting accommodations, please contact your professor and the Office of Academic Services, Room 212, University Center or call (610)758-4152 as early as possible in the semester. You must have doucmentation from the office of Academic Support Services before accommodations can be granted. University policy states that you must notify your professor seven (7) days prior taking an exam that you are requesiting an accommodation." Collaboration: I will not tolerate unfair collaboration, i.e., copying of programs. Below I try to make clear when collaboration is unfair. In grappling with the course work, the sharing of ideas is educationally useful. The copying of ideas is destructive. YOU ARE STRICTLY FORBIDDEN TO COPY SOMEONE ELSE'S HOMEWORK* ASSIGNMENTS OR PROGRAMMING ASSIGNMENTS. It is difficult to know where to draw the line between educationally useful sharing of ideas and the educationally destructive copying of ideas. I will quote Roger D. Eastman of Loyola College (ironically I copied this), who draws the line rather well for programming assignments: "I encourage you to help each other with programming assignments, but I also want you to understand where the help should stop. Don't take someone else's program to copy, or give yours for copying. If you want to show someone your program to ask about a syntax or run-time error, that's fine; if you want to brainstorm about what the assignment requires and how to approach it, that's fine; if you want to share your knowledge of [C++], that's fine; but letting someone copy your program line by line, in fact or spirit, is not fine." The line between sharing and copying may still seem fuzzy. To put it another way, when you start writing code, it is time to stop sharing ideas. But what about when you are stuck with a syntax error? In that case it is all right to ask someone about the syntax error, but that is as far as your sharing of information should go. To put it still another way, it is wrong to show someone else a copy of your program for "reference" or to use someone else's copy of a program for "reference." Please visit the following website for some detailed examples of what is and what is not unfair collaboration: http://www.lehigh.edu/~ejk0/cheating/ I normally submit any case of suspected academics dishonesty to the University Committee on Discipline. Often, when the discipline committee finds a student guilty of academic dishonesty, the penalty is a WF in the course. If the Committee on Discipline finds you guilty of academic dishonesty and does not assign a WF, I reserve the right to lower your grade or assign the grade of F. THERE MUST NOT BE ANY COPYING OF PROGRAMS. *Members of a pair assigned to work as a team on homework may share that homework.