CS 351 Design of Large Programs

Spring 2008

TTh 2:00-3:15

ME 214


Instructor:

    Joe Michael Kniss
    Ferris 301G
    277-2967
    jmk (at) cs.unm.edu
    Office Hours: TTh 10:00am - 12:00pm

TA:

    David Godinez
    Ferris 301A
    dgodinez (at) cs.unm.edu
    Office Hours: M 11:00am - 1:00pm

Info:

    Official class web page:
    www.cs.unm.edu/~jmk/cs351
    Class Mail List: cs351@cs.unm.edu Signup
    Lab Hours
    M 1:00-1:50 Pod 110
    T 12:30-1:45 Pod 110

Recommended Text

    The Java Programming Lanquage 4th ed Ken Arnold and David Holmes, ISBN 978-0321349804
    This book is available at the bookstore.
    Note: text is not required, but recommended for the class.
    Design Patterns Gamma, Helm, Johnson, Vlissides, ISBN 978-0201633610
    Debugging David Agans, ISBN 978-0814474570
    Refactoring Fowler, Beck, Briant, Opdyke, ISBN 978-0201485677
    Effective Java Joshua Bloch, ISBN 978-0321356680
    The Mythical Man-Month Frederick Brooks, ISBN 978-0201835953

Description

    This class is about designing big software, where big refers to projects with a scope too larde to be handled by any one person at any one time. This course primarily deals with software design, time management, and strategies for completing complex coding tasks.

Content

Grading

    Late projects/assignments will recieve a 20% per day penelty. There are 3 "slack" days, which are free late days. Please use these wisely. Participation grades will be primarily based on inclass critiques. Students will be asked to present code solutions and provide feedback for the presenter. This class has 2 lab sections. Students are required to attend one lab each week and complete the lab assignments for a grade.
    Cheating will not be tolerated. This includes coping code or sharing work on the design and implementation of individual projects. Students may discuss details of the project specification, but this should be limited to clarification of details. If you are in doubt, ask the instructor or TA. All student code and design on individual projects must the their own. Cheating will result in a negative score for the project and the penalty will be applied to any parties involved.
Cheating includes any of the following:

Assignment Handin

    Homework, unless otherwise specified, should be submitted via email to the TA (dgodinez (at) cs.unm.edu). The subject line must include "cs351" and the assignment number (eg. Assignment 1 or Project 1 etc..). You should attach the files in the most compact form you can, for example project code should be in a .jar file and must include both .class and .java files. If your project includes many documentation files you should submit a .tar.gz (.tgz if you like) archive of the directory. Besure to include any information about running the assignment in a .txt file. Do not handin intermediate files, i.e. temporary files, unnecessary program outputs, .svn directories and administrative files, and other irrelevant material. We also advise that you test your handin by unwraping it in a fresh directory, making sure it runs, and includes all the necessary materials.

Course Syllabus **

** Subject to change.

Resources