CSCI 3308

Software Methods and Tools

Course Location
   MUEN E0046

Course Time
   MF 10:00 AM - 10:50 AM

    What's New
    Testing Notebook
    Reference Materials
    Contact Information
    Evaluation Criteria
    Class Averages
    Class Grades

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.

Thursday, December 19, 2002

12:49 PM

Your finals and any remaining homeworks, labs, quizzes, etc. are located in the main office of the computer science department, ECOT 717. This office is open for the rest of Thursday and for most of Friday. It will be closed from Monday to Wednesday of next week, reopening on Thursday, December 26th.

12:46 PM

I have finished assigning grades for the class, there were 18 As, 35 Bs, 13 Cs, 4 Ds, and 4 Fs. These totals are not broken down into "plusses" and "minuses".

10:48 AM

We have finished grading the final. 73 people took the test. The average score was 153 points out of 200 possible. The minimum score was 94 points. The maximum score was 192 points. The most common score (the mode) was 157 points. The median was 156 points. The standard deviation was 22 points. I will be submitting grades today and your final grade should be available via the PLUS system next week.

Monday, December 16, 2002

2:07 AM

The class status page has been updated with the final set of scores excluding the final, which will be held tomorrow morning. 74 students are expected to take the final.

Wednesday, December 11, 2002

6:48 PM

Studying for Final: I forgot to mention in lecture that you should study the lectures on functional and structural testing and that you should understand the material on control flow graphs. These graphs were used to introduce the notion of structural testing and you should feel comfortable looking at a code fragment and constructing a control flow graph for it. Also, don't forget: Brett is holding two lab sections tomorrow from 9 AM to 11 AM and 11 AM to 1 PM, so stop by if you have questions!

Tuesday, December 10, 2002

9:05 PM

Lab Sections: Brett will be covering Jun's 9 AM to 11 AM lab section tomorrow and will be in the lab for his two sections on Thursday. If you need help studying for the final, swing on by the lab and ask Brett questions!

Friday, December 6, 2002

12:22 PM

Heads Up on Program 4: Program 4's cut-off date is next Wednesday, December 11, 2002. Please have program 4 submitted and/or corrected to your TA by that date. Do not let this slip through the cracks!

Thursday, December 5, 2002

8:21 PM

Lecture 29 is now available. Note: Lecture 30 next week is set aside to review for the final, we will also do course evaluations at that time.

Saturday, November 30, 2002

7:53 PM

Lab 10 is now available.

Tuesday, November 26, 2002

11:56 AM

Homework 10 is now available.

11:50 AM

Lectures 27 and 28 are now available.

Saturday, November 23, 2002

10:33 AM

Lecture 26 is now available.

Friday, November 22, 2002

12:07 PM

Homework 9 is now available and is due on Monday, in lecture.

Saturday, November 16, 2002

6:27:06 PM

Program 4, Lab 8, and Lectures 24 and 25 are now available!

Friday, November 15, 2002

1:10:59 PM

Homework 8 is now available. (Although, the debugging lecture that it depends on, is not! I'll have that lecture up sometime this weekend. FYI.)

Sunday, November 10, 2002

4:49:55 PM

Grade Reports: I have just sent out the first grade report to the 36 students that signed up to receive them. If you sent me a message asking for a grade report, but did not receive one, please let me know!

Saturday, November 9, 2002

4:16:25 PM

Lectures 22 and 23 are now available.

Friday, November 8, 2002

5:20:53 PM

Note: I haven't yet mailed grade reports to students. I will do so this weekend. FYI.

5:20:41 PM

Worksheet 3 is now available.

Tuesday, November 5, 2002

10:08:03 AM

Student Reports: If you would like to receive a grade report (that shows the grades I have recorded for you in this class) then send me an e-mail that says "I give Dr. Anderson permission to send me a grade report for CSCI 3308 via e-mail." and then give me an e-mail address where you would like the report sent. This service is a great way to make sure that no errors have slipped into the grade reporting process. Thanks!

Sunday, November 3, 2002

4:07:39 PM

I have updated the class status report to include information on homework 7, lab 7, and quiz 7. Partial information on program 2 is also available. (I'm still waiting the grade report of one TA.)

Friday, November 1, 2002

5:25:25 PM

Lectures 20 and 21 are now available.

4:30:44 PM

Hi. The following people have not picked up their graded take-home midterms (or in some cases re-graded take-home midterms). Please come to class on Monday to pick them up!

Derek Beauregard. Eric Chang. Peter Chang. Julie Harmon. Jay Jones. Igor Kuznetsov. Justin Legary. Sarah Macumber. Shawn P. O'Neal. Isaac Squires. Edward Svirsky. Brenda Vail. SuckHyun Yoon.

12:00:29 PM

Worksheet 2 is now available. As mentioned in class, the gct tutorial is avaiable in the reference materials section of this website.

Wednesday, October 30, 2002

5:38:13 PM

Daniel Lueth pointed out a potential pitfall with the naming of test cases: if you have more than ten test cases then tc10 is sorted "in between" tc1 and tc2...and if you have a script that executes all of the test cases this means that tc10 will be executed before tc2 and thus you need to keep careful track of the output of your testing script. There are two solutions to this problem: one is to output the name of the test case when you generate the pass/fail result, e.g. "tc10: pass" or you can rename your first nine test cases to tc01, tc02, tc03, ... Take your pick! Many thanks to Daniel for pointing this out!

3:24:17 PM

Further clarification of terms: I am still receiving e-mail from students confused by the four terms used in worksheet 1, so I'm going to try to explain them again! The four terms are:

  • Key Specification Item
  • Functional Equivalence Class
  • Test Input
  • Functional Category

To explain the first three terms, let me go back to the greatest common divisor example covered in class:

The key specification item is "given two integers this function must compute their greatest common divisor", e.g. it is a function that a system must perform.

The functional equivalence classes are the five categories we discussed in lecture for the greatest common divisor function. Each equivalence class defines a type of input that the function should treat as equivalent, e.g. any test input for that class tests the same thing.

A test input is a particular pair of integers that we picked for each of the five categories. Thus, (2, -5) is a test input for the equivalence class that tests how the function handles negative numbers. This test input is equivalent to the (-345, 5) or (-4, -6) since they each belong to the same equivalence class. So, picking one of these test inputs is creating a test case for that equivalence class.

To explain the last term above, imagine the following scenario: Suppose that a program can produce ten different reports given a particular input file...say the input file contains financial data for a particular company. You might have key specification itmes like:

produce quarterly report
produce annual report
produce monthly report
produce weekly report

Since each of these functions deal with creating reports, we can assign them all to a functional category called "Reporting" or "Reports". So a functional category is simply a way of classifying what a key specification item does (broadly speaking) for a particular program.

Hope this helps!

3:11:29 PM

UPDATE: There is a new version of EZPay1.tar.gz available in the <~csci3308/src directory>. This update fixes a few crashing bugs that were discovered by Eric Faller (thanks Eric!) including:

  • Won't crash when a directory is given in place of an input or output file
  • Won't crash when given an existing, non-writable file as an output file
  • Better handling of long input lines

Fortunately, none of these items deal with "testable conditions" since the spec does not mention what the program is supposed to do for these cases. So, this update is not required, but if you would like a more stable version of the program, feel free to grab the update.

Tuesday, October 29, 2002

8:32:32 PM

Lecture 19 is now available.

3:59:48 PM

There has been considerable confusion about the first step of worksheet 1, which asks you to develop a set of functional categories. This confusion is my fault since I failed to cover it in Monday's lecture. So, here's my attempt at addressing the confusion. Imagine if I asked you to skip step 1, and go straight to step 2 of the worksheet (not the lecture) which says to find key specification items. Say your first specification item was "ezpay needs to sort the information in its output file by first sorting on a person's last name and then sorting on a person's first name". Now, imagine I asked you to "classify" this function. One way to classify this function is with the functional category of "Sorting". You may then find other categories such as "Handling Command Line Options" or "Computing Pay". So, your focus should still be on the key specification items (the system's functions) and the functional categories are then just a way to group related items together.

Monday, October 28, 2002

1:07:06 PM

Update to EZPay: Brett found a potential error with the version of EZPay that was distributed on Sunday. In particular, that version could crash if a really long input line was given to it. The new version fixes this bug. Fortunately, you do not need to update to the new version (since the functionality of the program has not changed) as long as you avoid sending it really long input lines! But, a new version is available if you want it.

12:56:35 AM

We have finished grading the lab-midterm. 74 people took the test. The average score was 87 points out of 100 possible. The minimum score was 62 points. The maximum score was 100 points. The most common score (the mode) was 95 points. The median was 89 points. The standard deviation was 9 points. I will be discussing this midterm in detail tomorrow (well, actually later today) at lecture.

Sunday, October 27, 2002

1:24:47 PM

Worksheet 1 of the testing notebook is now available. Remember: start early!

1:05:46 PM

I have updated the class status report to include information on homework 6, lab 6, and quiz 6.

Friday, October 25, 2002

4:38:09 PM

Lecture 18 is now available.

2:08:36 PM

The testing notebook section has been updated with a handout that describes the testing notebook assignment. Worksheet 1 will become available sometime this weekend, or Monday morning at the latest.

1:33:47 PM

The class schedule has been updated for the rest of the semester, including identifying all remaining lectures, assignments, etc. As a result of where Thanksgiving falls, Lab 9 has been cancelled, but the total points for the class remains the same because I have added a Quiz 10 into the schedule. :-)

Thursday, October 24, 2002

12:18:23 PM

Lecture 17 is now available.

Monday, October 21, 2002

4:08:25 PM

I have decided to remove program 3 from this semester's list of assignments. Program 3 was going to be due at the same time as the first assignment of the testing notebook...and I didn't want program 3 to distract you from doing a good job on the testing notebook. So program 3 is cancelled! The total number of points in the class is now 940, down from 950.

3:03:22 PM

I have updated the class status report to include information on homework 5, lab 5, quiz 5, program 1, and the midterm. Information on homework 6, lab 6, and quiz 6 will be added soon!

Sunday, October 20, 2002

11:52:46 AM

Lecture 16 is now available.

11:18:37 AM

Lab 7 is now available.

10:47:31 AM

Homework 7 is now available. Sorry for the delay!

Friday, October 18, 2002

12:46:33 AM

We have finished grading the midterm. 75 people took the test. The average score was 76 points out of 100 possible. The minimum score was 37 points. The maximum score was 96 points. The most common score (the mode) was 73 points. The median was 78 points. The standard deviation was 13 points. I will be discussing the midterm in detail tomorrow (well, actually later today) at lecture.

Thursday, October 17, 2002

5:25:52 PM

With respect to the shell program that you are writing for question 2, your shell program does not have to handle the $ metacharacter, nor does it have to handle two exclamation points in a row. So, you should be able to handle the command:

welcome 4 "Hello!"

but you don't have to worry about:

welcome 4 "Hello!!"


welcome 4 "Here's your $2.00"

Hope this helps!

12:34:34 AM

Note: the second question in the "Find & Grep section of the take-home midterm is meant to imply that words appear after the word public and before the left bracket. In other words, your expression should look for lines like:

public static void main(String[] args) {

and not lines like the following:

public {

(which is not even a legal Java statement!).

Monday, October 14, 2002

12:06:57 PM

The take-home midterm is now available.

Tuesday, October 8, 2002

2:06:49 PM

Adam Vinueza wrote in with instructions for using Pine to send the tar file of program 2 as an attachment (see below). Thanks Adam!

It's very easy to send attachments via pine. There's a field on the "quot;compose message"quot; screen for attachments; tab to this screen, then type the name of the file, INCLUDING ITS PATH. Tab to the next field, and if pine finds the file, it will give the full pathname and the size of the file; otherwise, it will give an error message. Then type your message and send it in the normal way.

There are two possible ways for there to be an error in this process:

  1. the user didn't enter the correct path to the file.
  2. the user told pine to attach one file, then changed his or her mind and tried to tell it to attach a different file, without canceling the message.

Pine is not as flexible a program as the usual web-based mail programs, so once you tell it to attach a file, your message will be attached to that file unless you cancel it and begin a fresh message.

Monday, October 7, 2002

2:29:52 PM

Program 2: Sending Tar Files: If you encounter a problem sending your tar file for program 2 to your TA using Web mail, you have a couple of options:

  • Use pine, or some other mail program. (Unfortunately, I don't know anything about pine, so if a pine user can send me instructions for creating a message in pine and attaching a file to the message, I'll be happy to post them on this website.)
  • Try the following command (while logged into a machine in the whitewater lab):

    mail -s Program2 <email address> < program2.tar

In the above command, substitute the e-mail address of your TA in the appropriate spot. You can also run the command a second time and send it to me as well.

Just be sure to notify us if you have problems, and we'll help you out!

Sunday, October 6, 2002

8:26:54 PM

I have moved the class status report to a separate page. I have also updated it with information on homework 4, lab 4, and quiz 4.

Friday, October 4, 2002

11:48:55 AM

Program 1: Remember that a correct version of program 1 must be submitted to your TA by 10 AM, October 14th. Because some TAs may leave town early next week due to Fall break, try to send your corrected programs to them early. And, send a copy to me as well, so your program does not "slip through the cracks". As stated in the syllabus, if you do not turn in a correct version of program 1 by October 14th, you will fail the this is very important!

11:10:26 AM

Due to Fall Break being held next week, some TAs are holding lab sections early. In particular, Jun Chen is holding a lab section this Saturday (e.g. tomorrow) from 9 AM to (at least) 10 AM (depending on demand). Brett Bader will hold a section on Tuesday from 12:30 PM to 1:30 PM and he will then cover Jun's sections (9 AM to 1 PM) on Wednesday. Karthik will hold his section at 1 PM on Wednesday as normal. Students that normally attend a lab section on Thursday should feel free to attend any of these listed sections. The lab will be closed on Thursday and Friday of next week.

Thursday, October 3, 2002

2:39:21 PM

Lecture 12 is now available. Also, be aware that next week, there will be no lecture on Friday due to Fall Break. The following Monday, October 14th, is the midterm, so don't forget to study!

Monday, September 30, 2002

12:45:47 PM

Here is a quick status report on how the class has been doing on assignments. The list below includes only those assignments where all three TAs have finished grading the assignment. I'll post updates to this list throughout the semester.

There are 78 students enrolled in 3308_F02.

73 students have submitted hw01 for an average score of 9.23
73 students have submitted hw02 for an average score of 8.51
70 students have submitted hw03 for an average score of 9.27

72 students have submitted lab00 for an average score of 9.47
76 students have submitted lab01 for an average score of 9.58
74 students have submitted lab02 for an average score of 9.53
71 students have submitted lab03 for an average score of 9.73

70 students have submitted qz00 for an average score of 8.83
72 students have submitted qz01 for an average score of 9.26
72 students have submitted qz02 for an average score of 8.54
69 students have submitted qz03 for an average score of 8.75

Saturday, September 28, 2002

11:39:31 PM

Lecture 11 is now available.

11:11:42 PM

Homework 6 and Lab 6 are now available. I'm releasing them early since they are due before and after Fall Break respectively. Since some students leave early for Fall Break, this gives you a chance to take a look at these assignments and ask questions before you leave.

Friday, September 27, 2002

11:32:14 AM

Announcement: If you need help with program 1 this weekend, Jun Chen is planning on being in lab this Saturday from 10 AM to 11 AM to provide help. Thanks Jun! Otherwise, send me e-mail if you have problems and can't make this extra lab section.

Thursday, September 26, 2002

3:27:00 PM

Lecture 10 is now available.

2:24:57 PM

Lab 5 is now available.

12:19:30 PM

Program 2 is now available. As mentioned below, I've simply put it up early for those students who want to start on it early. You should not work on program 2 until you have finished program 1!

11:16:06 AM

Note: Program 2 was going to be assigned tomorrow. I have pushed that back to next Monday. Its due date has been pushed back to October 14th (which is the day of the midterm). However, I intend to post program 2 to the website feel free to start on it early!

Tuesday, September 24, 2002

2:05:26 PM

Hi. A hint for people working on programm 1. If you need to invoke a shell command from within your shell script and then store the results of that command in a variable, then you may want to look at pages 580-581 and 619-620 of the Linux Shells by Example book. Hope this helps!

Monday, September 23, 2002

5:26:05 PM

Lecture 9 is now available.

Sunday, September 22, 2002

10:15:03 PM

Lecture 8 is now available.

Friday, September 20, 2002

10:58:44 PM

Lab 4 and Homework 5 are now available.

Thursday, September 19, 2002

10:46:53 PM

Program 1 is now available. Since I'm essentially two days late posting information about this assignment, I'm pushing back the due date of the assignment to Monday, September 30th rather than Friday, September 28th. (This means you get two weekends to work on this program, instead of one...start early!!!) We will cover program 1 tomorrow in class.

Friday, September 13, 2002

3:52:41 PM

Lecture 7 is now available.

3:23:27 PM

Homework 4 is now available.

3:14:08 PM

Lab 3 is now available.

12:01:54 PM

In lecture today, it was revealed that the PDF file on the class website for lecture 4 was missing six slides! Lecture 4 has now been updated to contain all 24 slides. Sorry about that! I will now double check lecture 5 and 6 to make sure that they contain the correct number of slides!

Monday, September 9, 2002

4:02:12 PM

Lecture 6 is now available.

11:30:25 AM

Second, with respect to question 4 on homework 2, do not use grep to "find" the answer, because in this particular instance, grep will lead you astray. As grep (or egrep) is processing this regular expression [qrs]*q?s looking for a match, it will try to find matches for the patterns [qrs]+s and [qrs]+qs first, and when it fails, it will search for the pattern s which then matches every line. But, this is just because grep is looking for substrings, and not whole strings. I want you to manually apply the regular expression to the input strings and list only those that match the expression. So, if you provide grep's answer to question 4 as your answer, you will lose points.

11:28:12 AM

First, my apologies for today's lecture...I spent way too much time on my roster example and, as a result, did not finish the lecture. Since this week's lab is on find and grep, and I wasn't able to cover find and grep today in lecture, please send me any questions that you may have on these tools via e-mail.

Friday, September 6, 2002

1:36:32 PM

Lab 2 is now available.

1:01:50 PM

Homework 3 is now available.

Tuesday, September 3, 2002

10:18:45 PM

Lecture 5 is now available.

Monday, September 2, 2002

12:38:15 PM

Lecture 4 is now available.

11:11:51 AM

Lecture 3 is now available.

Friday, August 30, 2002

1:27:17 PM

When indicating Lab Time on assignments, please use one of the following five possible answers: W 9 AM, W 11 AM, W 1 PM, R 9 AM, or R 11 AM. Thanks!

1:25:55 PM

Will Mark Lohaus and Constance Sawyer please contact me via e-mail? Thanks! I have received work from you, but I don't have you on my roster.

12:20:38 PM

Unix Talk, Next Thursday: Next Thursday, September 5th, Tor Mohling is giving a talk entitled "An Introduction to UNIX in the CSEL." I encourage you to attend...Tor works for CSOps, so here's your chance to talk to a person who manages the undergraduate computing labs here at CU! The talk will be held in ECCR 265 from 3:30 PM to 4:30 PM. Note, this slot is the normal time for a computer science-related talk, so consider stopping by each Thursday to learn more about your discipline!

12:10:48 PM

Course Forgiveness Deadline: Just a reminder, if you are taking a class over as part of CU's Course forgiveness program, you have to submit an application by October 9th. More information on this program is available at the Registrar's website.

Tuesday, August 27, 2002

1:17:49 PM

Lab 1 and Homework 2 are now available. (One student is going to be gone next week, so I needed to release these assignments early.)

Saturday, August 24, 2002

5:34:25 PM

Lectures 1 and 2 are now available. See you on Monday!

4:42:37 PM

Lab 0 and Homework 1 are now available. The syllabus has been slightly updated from yesterday: it now lists the lab sections covered by the two TAs. I do not have a grader for the remaining lab section yet, but I hope to have one by Wednesday! Oh, I'm working on lectures 1 and 2 now...they will be posted soon.

Friday, August 23, 2002

2:38:17 PM

The syllabus is now available. You can find it in the Reference Materials section of the website.

2:36:41 PM

How to find the classroom: Our classroom is located in just about the worst location on campus. Go into the Muenziger builder and head for the "E-Wing Classrooms". Go down two levels to Muenziger's ugly basement level, head left down a long hallway and room E0046 will be on your right-hand side.

2:28:52 PM

The class website has now come on-line. (Finally!) Stay tuned for access to the syllabus, the first homework, and the first lab.

© Ken Anderson, 1998-2004.
Last Updated: 1/16/04; 8:37 AM