CSE 109 Systems Programming Spring 2012 Instructor: Ed Kay Packard Laboratory 204B Phone: (W) - 758-3623 (H) - 867-3136 (Before 10 PM!) Email: ejk0 Office Hours: MWF 9:00-10:00 AM, or by appointment Prerequisite: CSE 17 or CSE 18 Text (OPTIONAL): Walter Savitch, "Absolute C++", 3rd (2007) or 4th Edition (2009), Addison-Wesley, 2009. 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 24 February 2012 15% Test 2 Friday 13 April 2012 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 10:45 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 dates for late submission will account for weekends and mid-semester vacation. On the third collection, all assignments not previously submitted will be collected. Your grade on programming assignments will be reduced 10 points for being collected one day late and an additional 10 points for being collectioned two days late. I will not accept late homework assignments (as distinguished from late programming assignments). 3. In the past I have always returned assignments and tests at the first class that occurs 24 hours after they are completed. I intend to continue that practice. If you miss that class, ask me for the given graded assignment or test. Topics Covered (not neccesarily in the order below): 1. Introduction to Unix and emacs 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. Building Mid-Size Programs 12. 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. UNLESS I STATE AN EXCEPTION FOR A PARTICULAR HOMEWORK OR PROGRAMMING ASSIGNMENT YOU ARE STRICTLY FORBIDDEN TO COPY SOMEONE ELSE'S HOMEWORK* ASSIGNMENTS OR PROGRAMMING ASSIGNMENTS, AND YOU ARE STRICTLY FORBIDDEN TO COPY CODE FROM A TEXTBOOK OR THE WEB. 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, but I do have his permission to use the quote), 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 is clear: 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 HOMEWORK OR PROGRAMS. *Members of a pair assigned to work as a team on homework may share that homework.