CSCI 3308

Software Methods and Tools

Course Location
   Dr. Anderson: MUEN E432
   Bob Steinke: RAMY C250

Course Time
   Monday, Friday
   Dr. Anderson: 2:00 PM - 2:50 PM
   Bob Steinke: 10:00 AM - 10:50 AM

Topics
   What's New (Home)
   Class Schedule
   Course Bibliography
   Lectures
   Homeworks
   Labs
   Programs
   Testing Notebook
   Reference Materials
   Contact Information
   Evaluation Criteria

What's New

Friday, January 16, 2004

8:30 AM

Note: The content of this website has been made inaccessible due to the fact that another CSCI 3308 class is in session.

Monday, December 18, 2000

6:03:37 PM

Hi. I enjoyed teaching this class this semester. I hope you enjoyed it too! A couple of "end of the semester" details:

Average Score on Testing Notebook: 174 (out of 200)

Average Score on Final: 160 (out of 200)

Finals will be available in ECOT 717 starting Wednesday, Dec. 20th. If you do not pick up your final by Friday, then you can swing by my office next semester to pick it up. I will hold the finals for about two weeks. Oh, and my office is going to move. Starting next semester, my office will be in ECOT 822. Have a happy and safe holiday season!

Wednesday, December 13, 2000

1:39:35 PM

Note: the last day to turn in late assignments (including late programs) is before your final (this Friday for the 2 PM class section, and next Tuesday for the 10 AM class section). At this late date, it is probably best to e-mail any late programs directly to your TA (and cc your professor) so we can verify that you turned the assignment in before the deadline. For late labs and homeworks, contact your TA on how to turn them in before the deadline. Lab 10 is due at your final.

Monday, December 11, 2000

9:16:42 PM

Program 4 Hints: For those of you trying to finish program 4, we offer the following hints:

One bug is located on lines 50 and 51 of List.C and another is located on line 89 of List.C.

Lines 50 and 51:

        TheCurrent→Previous       = NewElement;
        TheCurrent→Previous→Next = NewElement;}

Line 89:

else if (TheCurrent  = TheLast) {

9:14:50 PM

The in-class midterm from this semester is now available. This is in response to a request in Prof. Anderson's class section today.

Friday, December 8, 2000

11:02:39 AM

An updated version of Lab 10 is now available on the website. This update fixes the typo discussed below. Have fun! I think you are going to enjoy working with XML and XSLT!

Thursday, December 7, 2000

9:46:28 PM

Homework 10 and Lab 10 are now available. Note: this initial version of lab 10 has a typo in it, that will soon be fixed. The typo concerns the number of elements that need to be in your XML file. The paragraph that talks about this says that the file should contain 82 elements in one place and 83 elements in another place. The correct number is 82.

Tuesday, December 5, 2000

12:12:09 AM

Lecture 26 is now available.

Wednesday, November 29, 2000

9:50:28 AM

Quick comments on the testing notebook.

It appears that several students have waited until this week to work on the testing notebook. We cannot be held responsible if you decided to wait until the last week of a 5 week project to work on the project! Yes, you are trying to do 5 weeks worth of work in one week, but that was your choice!

With respect to the structural testing numbers listed below. You will not be able to achieve these numbers without suppressing statements. However for each statement that you suppress, be sure to document why you supressed the statement. For instance, some statements can't be legitimately tested because they cause the program to crash. Suppress the statement, document the reason, and move on.

You need to include all of your test cases in the final report. Yes, this means that the report will be long, but you knew this five weeks ago when we first assigned the notebook. One approach, recommended by the TAs, is to use a word processor and place your test cases in a table structure and print it double sided to save space. Another approoach is to combine all of your test cases into a single file and then print them double sided.

Note: when recording the results of a test case, you can also save space by only showing the file that is significant to the test case. e.g. if your test case passes or fails based on the output that is contained in unacceptable.dat, then for the results of the test run, you only need to show what was contained in unacceptable.dat.

Also Note: you need to make sure that the rationale for a test case is recorded. Don't just give us the input files for a test case and have us guess what the test case is testing. This documentation should be contained (at the very least) in your functional test plan but you may also want to place a brief reminder in the test case itself.

Patrick Kellog (one of our TAs) has a tip for saving time on the structural testing part of the notebook.

I've been telling students that it's ok if they run GCTLOG on their functional test cases, and then copy over the GCTLOG file to their ts2 directory. That way, they start at 70% or so, and then only need to add four or five more test cases to their structural testing ts2.

Pro: this allows students to not start from scratch. Some people were getting intimidated by a greport that had 60 lines, and were starting at the top (line 18 of the diag.c, which I've never been able to test without dumping core). With a greport of only 25 lines or so, they seemed to do the structural testing better.

Patrick Kellog also had this to say about the grading of the notebook:

I've been saying that my 3 criteria for grading are:

Thinking - prove to me you thought about testing. Is apds a good program? Why or why not? What did the programmer do wrong? Do you think we tested it exhaustively? What was easy/hard to test? etc.

Clarity - Good presentation. Maybe a report cover.

Completeness - Have enough test cases (or explain why you thought 20 test cases would be "enough"). Only suppress about 10-15 lines, or explain what couldn't be covered.

Note: These criteria supplement the instructions contained in the testing notebook handout. The instructions in the handout take precedence but Patrick's criteria give you a good idea as to what we are looking for, with respect to the spirit of the assignment.

Tuesday, November 28, 2000

1:15:20 PM

With respect to the structural testing part of the testing notebook, you should attempt to reach the following figures:

100% branch and loop coverage

80% multi-condition and relational coverage

You will receive partial credit, of course, if you do not meet these numbers.

Monday, November 27, 2000

10:56:26 PM

Homework 9, Lab 9, and Program 4 are now available. Note: The reference section of the website has been updated to link to a text file that contains sample gprof output. You will need this output to answer the questions of Homework 9.

Sunday, November 26, 2000

4:10:22 PM

Lecture 25 is now available.

Wednesday, November 22, 2000

9:25:08 AM

Lecture 24 is now available.

7:45:10 AM

Lecture 23 is now available.

Tuesday, November 21, 2000

3:07:47 PM

Lecture 22, Homework 8, and Lab 8 are all available. Also, the reference materials section of the website has been updated with information on the GNU Debugger which you will need to complete Lab 8.

Sunday, November 19, 2000

12:55:38 PM

Lecture 21 is now available.

Sunday, November 12, 2000

5:30:30 PM

Worksheet 3 for the testing notebook is now available.

Saturday, November 11, 2000

10:16:54 AM

Lecture 19 and 20 are now available.

Thursday, November 9, 2000

3:19:04 PM

I have updated the class schedule with information on the rest of the lectures for the Semester.

Wednesday, November 8, 2000

4:25:59 PM

Lecture 18 is now available. At the request of a student, I have created the slides using a blank template to improve performance in viewing the slides on-line.

Tuesday, November 7, 2000

3:50:35 PM

Worksheet 2 for the testing notebook has been updated. If you downloaded a copy before 3:50 PM, be sure to download the updated version!

Monday, November 6, 2000

11:38:29 PM

Testing Notebook Worksheet 2 is now available.

Tuesday, October 31, 2000

3:44:19 PM

Lecture 17 is now available.

Monday, October 30, 2000

4:56:03 PM

The handout that describes the testing notebook is now available on-line in the testing notebook section of the website.

1:12:35 PM

I have added an example software testing notebook to the testing notebook section of the website. This example shows a notebook turned in by a student in last year's class. You can use it as a guideline for creating your own notebook. Warning: Do not copy or paraphrase the text found in this example notebook. When creating your own notebook, use your own words! A student who commits plagiarism will receive an F in the class.

12:21:40 PM

The first worksheet of the testing notebook is now available. In the navigation bar to the left, there is a new section of the website called Testing Notebook. Click on that link to access the worksheets.

Saturday, October 28, 2000

2:35:46 PM

Lecture 16 is now available.

DON'T FORGET! Re-submit your program 2 to Dora. See message below on October 25th.

Thursday, October 26, 2000

2:25:50 AM

Lecture 15 is now available.

Wednesday, October 25, 2000

10:27:58 PM

Due to a configuration error with Dora, we are extending the deadline for Program 2. Please re-submit your program 2 tar file to Dora by Monday, October 30th by 5 PM. Thanks, and sorry for the inconvenience!

Tuesday, October 24, 2000

1:26:36 PM

Program 3 has been updated. If you downloaded a copy of program 3 before 1:30 PM on Tuesday, then please download it again. The major change is that you will not be using Dora to submit program 3. Instead, you will send your tar file directly to the TA responsible for grading your lab session.

11:10:37 AM

Program 3 is now available.

Sunday, October 22, 2000

3:26:47 PM

Lecture 14 is now available. Over the next week, you should read the following chapters from Fred Brooks: 2, 11, 13, and 14. These chapters will provide background information on the testing notebook.

Friday, October 20, 2000

1:20:37 PM

Homework 7 and Lab 7 are now available.

Wednesday, October 18, 2000

5:27:23 PM

Lecture 13 is now available.

Monday, October 16, 2000

8:19:43 PM

Note: There are no lab sessions this week, because of the take-home midterm.

12:02:18 AM

The take-home midterm is now available. It is due in class on Friday.

Wednesday, October 11, 2000

12:31:04 PM

Don't Forget: Come to Friday's lecture with questions for the midterm review!

12:26:36 PM

Lecture 12 is now available.

Monday, October 9, 2000

4:34:29 PM

One person, in Dr. Anderson's class section, turned in a Quiz 5 with no name or lab time filled out. As such, we have no way of knowing the owner of this quiz! The student wrote the following note next to their answer for question 4: "All this to be treated as 1 line." If you think this is your quiz, please come by Dr. Anderson's office tomorrow during office hours (1:30 PM - 3:30 PM) to claim ownership... Thanks!

Sunday, October 8, 2000

3:44:52 PM

Homework 6 and Lab 6 are now available, as well.

2:19:26 PM

Lecture 11 is now available.

Tuesday, October 3, 2000

5:25:25 PM

Program 2 is now available.

Sunday, October 1, 2000

11:38:29 AM

Lecture 10 is now available.

Saturday, September 30, 2000

3:13:42 PM

Homework 5 and Lab 5 are now available. Thanks for your patience!

2:35:30 PM

Lab 4 Update

A question was asked in Dr. Anderson's class section about the make rule that had to be modified before Lab 4 would work correctly. The problem was associated with the following rule:

$(BUILDDIR)/answer: $(BUILDDIR)/answer.o
g++ $(BUILDDIR)/answer.o -o $(BUILDDIR)/answer

The rule above does not work with the .cc.o implicit rule because since the dependency is specified with the full pathname of the build directory, it is looking for a rule that specifies how to find the associated .cc file with the full path of the build directory. In other words, the following rule header does not apply to the dependency above…

%.o: %.c

…but the following rule header would:

%.o: $(BUILDDIR)/%.c

Since this is clearly a non-general implicit rule, we need to fix the original rule to look like this:

$(BUILDDIR)/answer: answer.o
g++ $(BUILDDIR)/answer.o -o $(BUILDDIR)/answer

Let me know if you have any questions!

2:26:47 PM

Program 1 Update

You have until next Friday to submit (via Dora) your source code for program 1 for a full 10 points. If you turn in your code after next Friday, then your maximum score becomes 8 points. Note, as discussed in the syllabus, you have to get a program completely correct, or you cannot pass the class. There is no partial credit for programs...

Tuesday, September 26, 2000

5:29:23 PM

Come one, Come all to the Department of Computer Science's Town Hall Meeting!

When : September 28th (this thursday) at 3:30 PM

Where : Engineering Center Classroom 265

Why : To give people a chance to talk about the state of the department

Why Else: Refreshments will be served!

Monday, September 25, 2000

8:52:02 PM

Lecture 9 is now available.

Thursday, September 21, 2000

12:43:50 PM

Lab 4 and Homework 4 are now available. In addition, a new file documenting the implicit rules of make has been added to the Reference Materials section.

Tuesday, September 19, 2000

3:10:11 PM

Program 1 is now available.

Monday, September 18, 2000

11:31:42 AM

Lecture 8 is now available.

Friday, September 15, 2000

9:51:38 AM

Matt Anderson has sent in a recommendation on a Unix Book: Unix Shell Programming. He says that it is a good reference for learning the basics of programming the shell. Thanks Matt!

Thursday, September 7, 2000

1:55:46 PM

A student sent in the following useful URL:

<http://www.oreilly.com/catalog/unixcdbs2/>

This link points to information on O'Reilly's "Unix CD Bookshelf." Its a bit pricey at 70 dollars, but it contains the complete text of six O'Reilly Unix books including Unix in a Nutshell and Unix Power Tools. You may want to shop around for best pricing, for instance SoftPro Books in the shopping mall on Baseline and Foothills (near the Healthy Habits restaurant), I believe offers discounts to CU students. Hope this helps!

Wednesday, September 6, 2000

4:22:38 PM

Lab 3 is now available.

4:12:23 PM

Changes in Office Hours: Both Dr. Anderson and Bob Steinke have changed their office hours. Dr. Anderson's office hours are now on Tuesdays from 1:30 PM - 3:30 PM in ECOT 523. Bob Steinke's office hours are on Wednesdays from 12 PM - 2 PM in Lab.

2:50:22 PM

There has been a small change to the syllabus. There is no need to download a new copy. The change is that there will only be nine quizzes this semester, not ten. As a result, total points in the class is 940, not 950.

1:43:18 PM

Disregard the previous notice to the people on the waiting list. Today, I have added the five people who were on the waiting list to my class section. This raises the enrollment to 50 students. I will not go beyond 50 students, so no other student will be added until some other student has dropped the class. FYI. (Again, this information only applies to Dr. Anderson's class section.)

12:32:17 PM

The class schedule has been completely filled out. Take a look to see what the rest of the semester holds. Some weeks are busier than others, in terms of the amount of stuff that is due. Take note, and be prepared!

Tuesday, September 5, 2000

5:09:39 PM

Waiting List: This information is for people on the waiting list for Dr. Anderson's class section. (If you are on the waiting list for Bob Steinke's class, contact him for information on being added to his class section.) If you are still on the waiting list for Dr. Anderson's class on Thursday, send Dr. Anderson an e-mail message with your name and your position on the waiting list. Thanks.

5:08:54 PM

Homework 3 is now available.

Monday, September 4, 2000

7:31:18 PM

Lectures 6 and 7 are now available. I have also updated the class schedule slightly. I hope to completely flesh out the schedule soon...thanks for your patience.

Saturday, September 2, 2000

5:39:16 PM

Lecture 5 is now available.

Wednesday, August 30, 2000

1:44:37 PM

There have been small edits to four documents on the website. Homework 1 had a cosmetic change made to it (no need to re-download). Lab 0 fixed a few typos (no need to re-download). Lab 1 has been changed to fix a problem with the latest version of gnu chess. If you have previously downloaded lab 1, you will need to download it again. (The original lab 1 had too many problems with it...) Finally, the syllabus has been updated one more time. In particular, the total points in the class is 950, not 920, as previously stated. I have also updated the Evaluation Criteria section of the website, in response to this latest change in the syllabus.

Tuesday, August 29, 2000

4:46:59 PM

Lab 0 has been updated to reflect the current architectures supported in our lab. If you have already downloaded Lab 0, be sure to go back to your directory and create the directory structure that is shown in the updated lab. Sorry for the inconvenience, we are experiencing beginning-of-semester difficulties...please be patient as we sort these bugs out.

1:26:54 PM

I have added a supplemental slide to Lecture 2 as a separate download. This slide contains information on a deployment life cycle that will be discussed in class. You can download it from the lectures section of the website.

12:25:22 PM

There is an updated syllabus in the reference materials section. We were getting a lot of questions about turning in homeworks and/or labs late. As such, we updated the syllabus to make our procedures explicit...take a look at the last three pages for the updated information.

12:16:16 PM

Homework 2 and Lab 2 are now available, for those who want to work ahead.

11:33:08 AM

I have made a slight modification to Lecture 2. If you downloaded the PDF file for Lecture 2 before 11:30 AM on Tuesday, be sure to download the new PDF file. Fortunately, the only change was that I added new slides to the end of the lecture. So, if you had already printed out lecture 2, you only need to print out the pages containing the new slides.

Monday, August 28, 2000

12:01:49 PM

I stopped by Muenziger today to find our classroom. Its on the 4th floor in the E-wing of the building. If you enter the building via the south-facing doors, walk through the lobby and turn left, walk a bit and turn right into the E-wing. There will be stairs on your left, head up to the 4th floor and turn left. Our classroom is on the right hand side, E-432.

Friday, August 25, 2000

5:45:07 PM

The course syllabus is available in the reference materials section.

Thursday, August 24, 2000

5:05:01 PM

The emacs reference card is available in the reference materials section of the website. Be sure to download a copy before you start Lab 0.

Tuesday, August 15, 2000

3:20:00 PM

The class site for CSCI 3308 is now taking shape. This page will be used for news and updates concerning the class.


© Ken Anderson, 2000.
Last Updated: 12/18/00; 6:07:07 PM