This page describes the high level goals and format of the course. Click here for a lecture by lecture syllabus
Instructor:
Amer Diwan (diwan at cs dot colorado dot edu)
Office: ECOT 743
Office hours: Wednesday from 2:00 to 3:00, Friday from 4:00
to 5:00, 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 in ECCH
107 (NOTE: Room Change)
Class web page: www.cs.colorado.edu/~diwan/3308-05
TA: Christian Doerr
TA office hours: Tuesday 2:30 to 3:30 pm, Thursday 10.30-11.30 am. in ECCR
1B09
You will learn to use many of the most useful and important methods and tools currently used in software development.
The tools and methods covered in this course are widely used for developing software in industry.
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.
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, you will need to refer to some book or web site that helps you with Java programming. Two nice book that are available online include: Thinking in Java and Introduction to programming using Java.
| 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.
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.
We will consider the following criteria in our grading:
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.
Please sign up and post here.
All assignments should be submitted electronically via the KDF (which you also use for the mailing list).
Course page for last year taught by Ken Anderson: Fall 2004