Course Description

CS 1322 is the second course in the introductory computer science sequence. It introduces the fundamentals of software engineering and computer programming (and why they are not the same thing). In CS 1322, your knowledge of abstraction and decomposition (from 1321) is used to build intelligent software solutions to many different types of problems, using a real-world computer language. You will also learn the difference between a working program and an intelligent one, a sloppy design and an elegant one, and most importantly you will learn how the software development process works.

Since the topics in CS1322 are cumulative of the material in CS 1321, do not take this class if you have not had CS 1321.

CS 1322 is taught in the Java programming language (v 1.3.1).

Instructors

Instructor: David Smith
Office: College of Computing Building, Rm 121
Time: Monday: 10:00 a.m. - noon
           Wednesday: 1:00 p.m. - 3:00 p.m.
Email: dmsmith@cc.gatech.edu

Instructor: Saun Shewanown
Office: College of Computing Building, Rm 123
Time: Monday: 3:30 p.m. - 4:30 p.m.
           Wednesday: 1:30 p.m. - 3:00 p.m.
           Thursday: 3:15 p.m. - 4:30 p.m.
           Or by appointment.
Note: Please consult my schedule (http://calendar.yahoo.com/saungatech) for making an appointment. I will post any schedule change (e.g. office hour cancelation) on my schedule. If you have to make a special trip to school to visit my office hour, please check my schedule in advance.
Email: saun@cc.gatech.edu

Instructor: Monica Sweat
Office: College of Computing Building, Rm 120
Time: See my web page.
Email: sweat@cc.gatech.edu

Course Structure

There are two components to the course: lecture and recitation. Each component will stress a different but critical element of the course.

Lecture is the theoretical part of the course, where you will learn the principles of software design and implementation.

Recitation is the interactive part of the course, where you will learn how to intelligently apply what you've learned.



Course Assignments

All assignments are due midnight of the day they are indicated on the calendar. (You are able to turn them in early.) There is an eight hour grace period that begins immediately after that midnight due time. After the grace period absolutely no submissions are possible without an approved extension. For example, Program 0 is due - September 2nd, 2002 - Tuesday night at midnight, but submissions are accepted until Wednesday, September 3rd at 8:00 a.m. further submissions will not be allowed. It also absolutely advised that you retrieve a copy of your submission before the due date has passed and do a CLEAN compile to ensure we have received what you want us to receive. It is your responsibility to retrieve and double check your submission!

Programming Homeworks

During the course of the semester, you will be assigned 7 programming homeworks (P0 through P6). P0 will count for 50 points, and all others will count for 100 points.

Each program will be divided into sections, called "phases". Each phase will have a suggested ammount of time for completion. This amount of time is by no means a guarantee that you will be able to finish in that ammount of time, as you may not understand the material, or may encounter some unexpected bug in your program- so do not wait until that much time before a deadline to start! Instead, these time guidelines are intended to help you know when you need to get help. If you are stuck on a portion of the program for longer than the recommended time, you should definiately see your TA to get a stronger understanding of the concepts involved prior to putting continued effort into the assignment.

On each program, certain phases will be marked as "instant feedback" phases. On these phases, you will be able to submit to WebWork to get feedback about your code. This feedback does not result in a direct grade, and is there for your benefit. However, you should be aware of three important aspects of this feedback:

1) Each instant feedback phase has a deadline, after which WebWork will NOT provide any feedback for that phase. If you do not have the phase completed by that deadline, you are on your own. Therefore, START EARLY!

2) While the instant feedback does not directly result in a grade, the grade that your TA assigns you for that section of your program will be strongly correlated to the results of the instant feedback. If the instant feedback system told you that your code was not correct, you can expect to receive no credit for it. Furthermore, since the instant feedback phases will correspond to the "building blocks" that you will build the rest of your code from, if these underlying pieces do not work, your program as a whole will not function correctly.

3) We will not entertain complaints after the grading is done about any aspects which you would have been able to determine did not function correctly from the instant feedback system. This includes any problems that may be caused in other parts of your code due to faulty "building blocks" from the instant feedback phases.

Tests

Tests will be conducted during recitation. The tests will cover concepts, as well as coding; however, you may expect coding to constitute a significant portion of the exam. It is expected that you will be familiar with the material from any programming homework that is due prior to an exam and able to work any problems that are from those homeworks, or similar to them with relative ease. While we will ask questions that directly relate to the homework, they may be slight variations on what was presented in those assignments- therefore, it is very important to understand the material, not just to memorize things if you wish to do well in this course. Furthermore, we may ask you to code something that you have not seen at all before, but which you should be able to code from your understanding of the concepts involved.



Recitation

As in 1321, this course is stucturally maintained by undergraduate TAs. You will be assigned to a recitation section by the beginning of the second week of the course. Recitation is a time for you to take the tests, receive supplementary instruction from your TA and have your questions answered. The goal for recitation is to provide 'coaching' on your programming. Your TA will be responsible for grading your programs, design documents and tests, as well as handling recitation.

Newsgroup and Webpage

The CS1322 Website and Newsgroups are two of your most valuable resources you will have in the class.

The CS1322 Website is your point of reference for due dates, study guides, JAVA resources, "How-To's", and any other resources that we can provide to make your success in this class as great as possible. You are responsible for everything presented on the website, so it is highly recommended that you visit here at least once a day, and check the calendar for any changes in due dates; however, any changes will be announced on the .announce newsgroup.

The CS1322 newsgroups are your absolute BEST resource for questions that you need answered concerning the course, assignments, or other programming related items concerning code editors or JDK. There are 4 newsgroups provided for use in CS1322. There is one for programs, labs, questions, and class annoucements. The newsgroup where announcements are made is git.cc.class.cs1322.announce. You are required to read git.cc.class.cs1322.announce every day. It is your resposibility to be aware of any and all information provided there.

For more detailed information concerning newsgroups, including how to read them off campus, check out the F.A.Q . Provided for your conveinence are Web-based newsgroups, a link is located on the navigation bar to the left.

Handouts are available for printing in postscript format (*.ps), and for online viewing as pdf files, which require Adobe System's Acrobat Reader plug-in. Acrobat Reader is a free download, which you can get here.

Grading


Grade Scale:
90 - 100 = A
80 - 89 = B
70 - 79 = C
60 - 69 = D
0 - 59 = F

Course Grade Percentages:

Program Homeworks 15%
Tests (conducted during recitation) 5@12% = 60%
Final Exam 25%

There is NO curve.
There is NO dropping lowest test.
There is NO redo program.



Tentative Date and Time Final Schedule

TBA

Textbook and other Materials

CS1322 Course Textbook



Title: Big Java
Author: Cay Horstmann
Edition: copyright 2002, 1st edition


You will also need an editor of your choice for writing java. We have provided links for obtaining a copy of Emacs online. Click on the "Emacs" link in the left menu bar. In addition to this, you will need the Java Development Kit (JDK) for compiling and running your programs. Follow the link in the left menu bar for "Java Resources" to find the link you need.

Late & Make-up Policies

We do not except late work in this course. Every student has up until the due date to complete a given assignment -- no credit will be given for late submissions.

Exceptions to this policy may be made on an emergency basis. A student can make up missed work if he/she notifies their TA no less than 48 hours before the due date for the assignment; documentation of the emergency may be required. All final decisions will be made by the Head TA or your Instructor. If you believe your circumstances are qualified under this policy, please email Andrew Hilton, the Head TA. Absence due to health problems is not considered an exception in most cases (unless you were hospitalized or have a Doctor's excuse).

NOTE: Notification after the fact without good reason will result in a grade of 0. It is also the students responsibility to makeup the assignment at the earliest possible date, and approve the details of a makeup assignment with their TA. The makeup assignment shall be due no later than 72 hours after the original due date. Failure to schedule a makeup will result in a grade of 0.



Collaboration Policy

We have chosen to move the burden of assessment of students' knowledge of programming concepts andskills from homework assignments to in-class exams. Homeworkassignments are now opportunities for learning and discovery; they arenot instruments of evaluation. (In fact, the only reason homework assignments are considered in the final grade is to motivate students to work on the assignments.)

Because homework assignments are now not used for assessment, we can now greatly relax the constraints on collaboration with respect to these assignments. Effective this semester, any and all forms of collaboration between students in CS 1322 are permitted, including the sharing of solutions if that is what is needed for a student to learn to develop a working solution to a given homework problem.

As has always been the case, however, plagiarism is not allowed. If you use sources other than those provided for everyone in the course (i.e., instructors, teaching assistants, the textbook, the course web site, the course newsgroups, the lectures, or the recitations), you must give appropriate credit to those sources. Note that so long as you give credit where credit is due, your grade will not be affected nor will you be charged with academic misconduct. On the other hand, a failure to give appropriate credit to sources of help (other than course materials or personnel as noted above) will be treated as plagiarism, a violation of Georgia Tech's Student Conduct Code.

To ensure that you give credit where credit is due, we now require that you place a collaboration statement at the beginning of every set of homework solutions you submit. That collaboration statement should say either:

"I worked on the homework assignment alone, using only course materials."

or

"I worked on this homework with [give the names of the people you worked with], used solutions or partial solutions provided by [name the people or other sources], and referred to [cite any texts, web sites, or other materials not provided as course materials for CS 1322]."

From now on, no set of homework solutions will be graded if it does not include a collaboration statement.

Furthermore, while the sharing of solutions is now permitted, unsolicited sharing of solutions is not acceptable. Many students do not want to see a solution to a problem until they have worked out their own solution. For that reason, we must insist that you do not share your solutions with another student unless that student has asked you to do so. In addition, you are not to post solutions to the course newsgroups or any other public forum for any reason.

If you have any questions about this new collaboration policy, please do not hesitate to ask your instructor, either in person or via email.

While this means that you may collaborate in any manner that you wish with your fellow students, please remember that it is important to understand the material for the tests.

Also, please be aware of the following important facts:

o This collaboration policy applies ONLY to your programming homeworks. Tests and the final exam MUST be an individual effort- any cheating during these exams will result in Academic Misconduct charges, for which you can fail the class and/or be suspended, if found responsible.

o You MUST put a collaboration statement in all homework submissions. As the policy states, "From now on, no set of homework solutions will be graded if it does not include a collaboration statement." It is important that you understand that "not graded" means "You will receive an AUTOMATIC ZERO on the ENTIRE assignment."