Summer 2011


PREREQUISITES: Data Structures (COP-3530). You must drop the course if you haven't gotten a C or better in Data Structures.

INSTRUCTOR: Prof. Mark Allen Weiss

OFFICE HOURS: You are free to stop by my office (ECS-353) any time you can find me. I am generally not hard to find, and on campus five days a week. My office phone is FIU-2036.

You can also try email: weiss email address. You will generally get an answer within 10 minutes of my reading the message, and I do tend to be connected often and at very late hours.

I have three standing rules:

  1. I will not debug programs. Debugging is part of the assignment. If you are very confused about some compiler error messages, you can ask, but read the error message carefully and ask as a last resort, not a first. Also, check the announcements page, since I occasionally post answers to common problems reported to me.
  2. If you miss class, get the class notes from a classmate or check the lectures page. Do not ask me what you missed.
  3. I am very unsympathetic toward questions that are asked on the program due date. You should be done by then.

LANGUAGES AND PLATFORMS: This course will be conducted in a new format. First we will use Java to discuss multithreading and networking. Next the course will use C. Most of the course will be done on a Windows platform, but time permitting, we may also use Unix at the end of the course. I assume that you are reasonably well-versed in Java, having had Intermediate Programming AND Data Structures in Java, and that therefore, you are no longer a novice programmer. You should have an excellent grasp of object-oriented programming and be experienced at debugging. THERE WILL BE NO HAND HOLDING IN THIS COURSE. I intend to enforce the fact that this is an advanced programming course. You must use a Java 5 compiler (or higher), and a reasonably recent C compiler. Free C compilers are available.

TEXT: The course text is The C Programming Language 2nd ed (Kernighan and Ritchie) for the C material and you can use a standard Java book such as Big Java from earlier courses, or even the Sun Online Tutorial for the Java parts.

COURSE GRADING: Grades will be based on six programs, quizzes based on the programs, one midterm exam (graded prior to the drop date), and a final examination. The midterm is worth 2 programs, the final is worth 2 programs, and each quiz is worth the same as a program. I will drop both the lowest and highest program and the lowest and highest quiz. So the final average will be based on 4 programs, 4 quizzes, and 2 exams, and programs, quizzes, and exams are each worth one-third of your grade. If you miss a program or quiz, that will be the one that is dropped. The scale is as follows: A is 90% or higher, B is 80% or higher, and C is 70% or higher. + or - is done at 3.33% intervals, so A- is 86.67% or higher, B+ is 83.33%, etc. C- is 66.67% or higher. I reserve the right to change the method of assigning grades, including changing the number of assignments or exams, but in no case will a curve be applied.

PROGRAMS: Programs are due at the deadline, which will always be thirty minutes before the start of class. After that they are late. Barring tragedy, I will not accept late programs. Programs must be submitted electronically. For program submission we will use moodle to have electronic submissions. Your submission must include source code and sample output. I will generally specify what the data is. Your work must be your own, and you must attest to this in a comment that begins each program. See also FIU's Code of Academic Integrity. Each set of assignments will be scanned by Moss. Let me make myself perfectly clear: I will not tolerate cheating. Your work needs to be your own. It cannot be joint work with another student in the class. It cannot be joint work with another student who previously took the class. You cannot pay someone to do the programs for you. You cannot have someone do the programs for you for free. You cannot submit code that is based on code submitted in earlier semesters by others. I do not want to be getting any more emails from professional programmers telling me that students are posting assignments and asking for code. I want some honesty, and if I don't get it, there will be significant consequences.

The assignments and if appropriate, input data, will be placed here.

(Revised) Course Outcomes:


  1. Java
  2. C
  3. Advanced C
  4. Possible Additional Topics (Time Permitting)