CSCI 3308: Software Methods and Tools
Fall 2007

This web page is for the course in 2007.

This page describes the high level goals and format of the course.  Click here for a lecture by lecture syllabus


Administrivia

Instructor: Amer Diwan (diwan atsign cs dot colorado dot edu)
Office: ECOT 520
Office hours:   M 1-2:30, F 4-5:30, and by appointment
Class times and location:  MF 10:00 to 10:50 a.m. in ECCR 1B51
Lab times and location: 9:00 to 10:50 or 11:00 to 12:50 or 1:00 to 2:50 in ECCS 112C
Class web page:  www.cs.colorado.edu/~diwan/3308-07
TA: Christoph Reichenbach (reichenb atsign cs dot colorado dot edu)
TA office hours
:  Tu 4:00-5:30, Th 2:00-3:30 in ECCR 1B06


Goals

This course will cover many of the most useful methods and tools currently used in software development.  The tools and methods covered in this course are widely used for developing software in industry.

The classroom period will focus on the concepts; the labs will give you hands on experience with the concepts and tools that support or implement the concepts.


The Conversational Classroom

Sitting in a room listening to somebody talk is not the best way to learn (and much research backs this up). This course will de-emphasize listening to me talk and emphasize your learning ideas from resources out of class, and discussing problems and questions in class. We’ll try to make our classroom a place of active conversation, rather than passive listening.  You can find out more about the conversational classroom by reading this article.


Texts

There are two texts for this course:

These texts are considered classics and one that no software engineer should be without!  The Design Patterns book is also available in a CD-ROM version, which is about half the price of the paper version (about $25 instead of $50).  I've asked the CU bookstore to stock both paper and CD copies of the book. 

In addition to the above texts, we will also refer to online resources to help with Java programming. Thinking in Java is a great free text for learning Java.


Course requirements

Assignments 30%
Labs 20%
Midterm exam 20%
Final exam 30%

There will be weekly assignments and several of the assignments will involve programming.  All assignments will be due at 9:00 a.m. on Wednesday unless the assignment specifies otherwise.  No late assignments (even by a few minutes) will be accepted unless in the case of emergency, in which case the student must provide appropriate documentation

We will have one midterm and one final exam. 

Students are responsible for the material covered in the readings, the material covered in the assignments, the material covered in the labs, and  the material covered in the classes.  I will expect you to have read the assigned pages before coming to class or lab.

The lab sessions on Wednesday will cover the more hands-on aspects of the course.  In these sessions the TA will guide you in learning Java and software development tools, notably Eclipse.


Skill Sets

Software Techniques and Tools is a very useful course: in this course you will learn many skills that are invaluable for developing software.  For each topic (whether covered in lecture or lab) I've identified certain skills that you should get from that topic.  Approximately 80% of the points on the exams and assignments will be given on these skills.  In other words, if you master all these skills you will get 80% of the points (which will roughly translate into a B+).  The remaining points will be based on synthesis questions:  i.e., questions that combine multiple topics and are not tied to a single skill.  The lecture syllabus identifies the skill set for each lecture, or alternately, you can browse the full skill sets by clicking here for lectures. 


Grading

We will consider the following criteria in our grading:


Collaboration policy

We strongly encourage you to work together in learning the material.  Most of the assignments will involve group work.  If a student outside your group helps you in your assignment, you should note it in your submission.  We encourage you to talk both to your group members and other students when learning the material or doing the assignments.  If your submission includes quotes from a book, paper, or web site, you should clearly cite the original source at the point of the quotation.  Bottom line: feel free to use whatever resources that are available to you as long as you cite them in your submission.


Moodle

You will use Moodle to submit assignments.  I will also use Moodle's forum to make time-sensitive announcements so please be sure to check it regularly.  You can access moodle at http://moodle.cs.colorado.edu; if you do not already have an account then please create one.


Interesting links

Course pages for Fall 2004, Fall 2005.  You may find the exams for the previous years particularly useful in preparing for exams.