CSCI 3308

Software Methods and Tools

Course Location
   Dr. Anderson: MUEN E0046

Course Time
   Monday, Friday
   10:00 AM - 10:50 AM

Topics
   What's New (Home)
   Class Schedule
   Course Bibliography
   Lectures
   Homeworks
   Labs
   Programs
   Testing Notebook
   Class Averages
   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 17, 2001

11:37:21 AM

Hi. I had to send out two grade reports this morning, because I accidentally forgot to record homework 10 scores for Jason Stetton's lab sections. Sorry! And sorry for the duplicate e-mail if your grade report didn't change because of this mistake!

Sunday, December 16, 2001

9:00:52 PM

I have updated the class averages section of the website with the latest info, including the average total score for a student in the class (712 points).

8:49:32 PM

After two four-hour sessions, the TAs and I have finished grading the final! Here are the relevant stats: 74 people took the test. The average score was 161 points out of 200. The highest score was 194 points. The lowest score was 113. The average score was 161, which was also the median score. The standard deviation was 18. Finally, the most common score was 173. The finals will be available for picking up on Monday from my office. Stay tuned to this page for further announcements (I may put the tests down in ECOT 717 for pick-up, but I need to make sure that there is an admin available to hand them out.)

Wednesday, December 12, 2001

1:31:53 PM

FYI: I will be sending out more frequent grade reports as the TAs finish grading the late assignments, programs, etc. Information in your grade report may not change from update to update but I want to make sure that people are receiving the latest grades. So, sorry for the extra e-mail!

Saturday, December 8, 2001

11:10:11 PM

I have updated the course averages section of the class website. Note: lab 9 and homework 9 have not yet been graded by the TAs...the one or two scores reported are special cases graded by me directly (the TAs have the rest of them). Note: I added a section to the end of the page which lists the current "average total score" for the class. FYI.

Thursday, December 6, 2001

8:05:39 PM

Someone left their access card in the lab during the 12 PM to 2 PM session. The TA took the card to CSOps and it can be picked up from them during normal business hours. FYI.

8:03:36 PM

Note: for turning in late assignments. Any assignment which requires "hardcopy" to be turned in, such as homeworks, labs, and the testing notebook, need to be either in my office or in my mailbox (located in ECOT 717) by 4 PM on Friday. Programs can be submitted via the handin program up to 11:59 PM Friday night. FYI.

Tuesday, December 4, 2001

2:37:51 PM

Lab 10 is now available.

1:56:43 PM

Homework 10 is now available.

1:41:28 PM

Lecture 27 is now available. There will be no slides produced for Lecture 28...that lecture is devoted to reviewing for the final exam. Come with questions prepared!

Monday, December 3, 2001

11:57:23 AM

I discovered today that there has been a case where a TA sent me a grade that failed to get recorded. I caught it because the student in question came to my office hours today and we noticed that his grade for the executive summary was missing. This underscores the importance of the grade reports that I send via e-mail...if you haven't signed up for these, now is a good time, just so you can verify that I have correctly recorded the grades you received. FYI.

11:50:20 AM

Clarification on Program 4: Program 4 is not a "one-shot" program. If you don't get the program right, you will still be able to turn in new attempts next week. The December 7th cut-off date is for all old program (programs 1 to 3), all late labs and homeworks, and the testing notebook ONLY.

Sunday, December 2, 2001

4:14:13 PM

Lecture 26 is now available.

Thursday, November 29, 2001

12:56:39 PM

PLEASE READ! IMPORTANT! CUT-OFF DATE: In order to give the TAs and I a chance to finish the grading of this class in a timely manner, we need all late assignments (especially programs!) turned in by December 7th. In order to pass this class, you must have all four programs turned in by next Friday. I will make this announcement in class tomorrow.

12:52:38 PM

I recently generated a set of grade reports and mailed them to the students who have signed up to receive them. Please bear in mind that not all testing notebooks or program 3s have been graded. Take a look at the Class Averages page to see how many grades have been reported for a particular assignment. Low numbers typically mean that the TAs are not yet finished grading everything that has been submitted. FYI! If you want to receive a grade report, but haven't signed up, please do so soon.

Tuesday, November 27, 2001

10:13:00 PM

Lab 9 is now available.

6:29:08 PM

Homework 9 is now available.

6:17:59 PM

Lecture 25 is now available.

Monday, November 26, 2001

5:13:17 PM

I have added a "class averages" page to the website that lists the average scores for each assignment in the class. You can use this page to compare your score for an assignment with the class average. Each time I update the averages, I will announce it here.

3:26:31 PM

Programs 1 and 2: Reminder, you need to complete all four programs in order to pass the class. As a reminder, here are a list of students who have not yet completed program 1 and program 2. Please finish these assignments soon! Do not get caught in the "end-of-semester-rush"!!

Program 1

DALE BETTERTON, MARK CONKLE, MATTHEW GADDA,
BRANDON GAY, BRANDAN GREENWOOD, MARK GUREVICH,
MARK HADLEY, MUMIN ISMAILOV, PHILIP JONES,
CHRISTOPHER KAMINSKY, KRISTEN LEFFLER, DAVID OLDENHOUSE,
KOSTAS PAGRATIS, EDWARD PELL, JASON PELTON,
MICHAEL PRATT, STEVE RAMSEY, KYLE STEELE,
BENJAMIN STOOKEY, GEOFFREY WHITE, DAVID ZAU

Program 2

TY ALEXANDER, EUGENE BAZYL, JASON BUCKINGHAM
ERIN CARROLL, JASON CRAIG, JING FANG,
MATTHEW GADDA, BRANDAN GREENWOOD, MARK GUREVICH,
MARK HADLEY, BARNABAS HAMER, JUSTIN HART,
CHRISTOPHER KAMINSKY, KRISTEN LEFFLER, DUSTIN MALLORY,
KOSTAS PAGRATIS, EDWARD PELL, JASON PELTON,
MICHAEL PRATT, STEVE RAMSEY, JOHN ROSE,
MAI SASAKI, STEVEN SMITH, JONATHAN SPITZE,
IVAN STASHAK, KYLE STEELE, BENJAMIN STOOKEY,
KATHERINE TOWNES, GEOFFREY WHITE, SHEA WILLIAMS,
DAVID ZAU

11:43:43 AM

The slides for the guest lecture on Extreme Programming are now available. Click on the lectures link and then click on the guest lecture link. Enjoy!

Sunday, November 25, 2001

12:00:34 AM

Program 4 is now available. Lab 8 is very easy...finish it quickly and start working on program 4!

11:45:23 AM

Lab 8 is now available.

10:33:56 AM

Lecture 24 is now available.

Tuesday, November 20, 2001

6:38:38 PM

Homework 8 is now available.

6:33:20 PM

Lecture 23 is now available.

Monday, November 19, 2001

12:07:18 AM

Lecture 22 is now available.

Thursday, November 15, 2001

1:59:07 PM

Final Patch for mecs program (We promise!!): Okay, first, I want to make an apology for all the problems associated with the testing notebook this year. The road to hell is paved with good intentions is certainly a true phrase, since it had been my intention from the start to make this assignment easier than it was last year. I have pretty much failed in that regard, but hopefully the extension of the due date to next wednesday will help most students get worksheet done completed in a satisfactory way.

We now have a final patchall, that has been extensively tested by myself and all three TAs. We are 99.999999999999% sure that the only bugs contained in this program are the 5 we want you to find, plus the two extra credit bugs mentioned earlier on this page. Please follow these instructions to get back on track.

  1. cd ~/csci3308/src
  2. mv MECS MECS.old
  3. cp ~csci3308/src/MECS.tar.gz .
  4. cp ~csci3308/src/patchall .
  5. gzip -d MECS.tar.gz
  6. tar xvf MECS.tar
  7. mv patchall MECS
  8. cd MECS
  9. Make sure that patchall does not have ^M characters. If so, switch to a different platform...as discussed below.
  10. patch -p0 < patchall
  11. diff mecs.c ../MECS.old/mecs.c

The output of the diff command will allow you to integrate your changes back into this new version of mecs.c, as discussed below. Once you are certain that the new version of mecs is okay, then move your test cases from MECS.old into MECS and you can delete the MECS.old directory.

Again, any existing bugs in the program are releated to the 7 bugs that we intentionally put into mecs.c. Any questions, feel free to send them to me.

Wednesday, November 14, 2001

8:30:21 PM

The due date for worksheet 3 has been officially pushed back to Wednesday of next week. The due date for the executive summary has also been pushed back to Wednesday of next week. (Remember, we are holding class on Wednesday next week, not Friday, because of the Thanksgiving holiday. Patch 4 and Patch 5 has introduced yet another unintended bug with respect to the generation of the output file format. DO NOT CHANGE YOUR EXPECTED OUTPUT FILES (they should still match the spec). We will fix this bug and issue another patch as soon as possible. Note: if you are not going to be here next Wednesday, then you need to turn in both the worksheet and the executive summary before you leave. You can either do that Monday at class, or by placing the assignment in my mailbox located in ECOT 717.

6:18:47 PM

Quick note about ^M characters in the patch files. Some students have found that if you view or edit the patch files on sun4 or i86pc architectures, then the ^M characters appear and cause problems. If you view or edit the files on other architectures, they don't appear. YMMV. (Your mileage may vary.) So, if you have problems applying the patches, try logging into a linux box, such as nigel.cs.colorado.edu, and apply the patches there. Hope this helps!

4:37:23 PM

Note: if you have already been making changes to mecs, after applying patches 1, 2, and 3, then patch 4 and patch 5 will fail. If you are indeed in this situation, then here's what you do.

  1. cp mecs.c modified-mecs.c
  2. Obtain a fresh copy of mecs.c from MECS.tar.gz
  3. Apply patches 1, 2, 3, 4 and 5 (see below).
  4. diff mecs.c modified-mecs.c
  5. Use the output of diff to reintegrate your changes into the new version of mecs.c.

Sorry for the inconvenience.

4:16:42 PM

Note: There are quite a few updates today. Make sure you read all of them!!!

New Patches: Hi, we are releasing two patches today to change the way mecs generates its output files. The output file should now match the spec. Again, your test cases should NOT change (unless you had changed them to match the incorrect behavior of the mecs program...then you need to change your test cases back to match the spec.)

Note: these patches can only be applied to the program produced by running the first three patches released on Nov. 12th. If you need to start from a fresh copy of mecs, be sure to apply patches 1, 2, and 3, before applying patch 4 and patch 5.

  1. Copy the file patches2.tar from <~csci3308/src/> into your source directory for MECS.
  2. tar xvf patches2.tar
  3. mv mecs.c mecs.h patches2
  4. cd patches2
  5. patch -p0 < patch4
  6. patch -p0 < patch5
  7. mv mecs.c mecs.h ..
  8. cd ..
  9. rm -r patches2
  10. make

4:00:50 PM

I have been told that some students have changed their expected output files because the behavior of mecs changed after the three patches were applied to it. Take a look at the entry for Nov. 12th below. I said quite clearly that even if the behavior of the program changes, you are NOT supposed to modify your test cases. A program either matches its spec or it does not. You do not change your expected output to match the behavior of the program!!!! This is the whole point of testing, you write test cases according to the spec, and then see if the program matches. Case closed. Furthermore, I also said quite clearly in class that worksheet 3 has nothing to do with writing test cases, so I said "do not change your test cases!!!" So, if you changed your expected output files, then shame on you, please change them back. And I will be releasing patches shortly to fix this bug in the program. Again, your test cases should NOT change: they should match the spec and that's final!

3:08:30 PM

Note: you do not need to write code to add a file prompt to mecs. Remember, this part of the spec is "untestable" since the spec does not say what the prompt should be.

3:00:12 PM

Note on floating point arithmetic: tcsh cannot do floating point arithmetic, only integer arithmetic as some of you have found. To do floating point arithmetic, you need to make use of a tool called bc. To find, for instance, what 4 divided by 8 is, you can add the following line to your script.

set result=`echo "scale=2; 4 / 8" | bc`

This line will pass the expression "4/8" to bc, and ask for a number with two digits of precision. It will then set the local variable result to contain the answer. Remember that you can place variables in quoted expressions, so you can write:

set result=`echo "scale=2; $passed / $totaltests" | bc`

to find the percentage of passing test cases. Hope this helps!

2:36:17 PM

Some students have been having with the patch files (despite me testing the patches before I released them). One student said that when he opened the patch files in an editor, they had a ^M character at the end of each line. I took a look at the patch files on one of the whitewater linux machines and did not see the ^M character. But, if, for some reason, you do see a ^M character, this will definitely prevent the patch file from working. You can remove this character in the following way:

  1. Create a file called removecr in your bin directory.
  2. For the first line, type: #!/usr/bin/perl -pi
  3. For the second line, type: s/\r//g; (I'm having problems with my web management software, the second line should be the letter s followed by a forward slash, followed by a backslash, followed by the letter r, followed by two forward slashes, followed by a g, followed by a semicolon.)
  4. Save the file.
  5. chmod u+x removecr
  6. refresh
  7. cd <to the directory containing the patch files>
  8. removecr patch1 patch2 patch3
  9. Try applying the patches again.

Remember that both mecs.c and mecs.h need to be in the same directory as the patch files.

Monday, November 12, 2001

7:37:55 PM

Instructions for modifying the MECS program for Worksheet 3:

As promised, here are the instructions for modifying the mecs.c program to fix all of the known bugs that cause segmentation violations.

  1. If you have modified mecs.c, copy MECS.tar.gz from <~csci3308/src/> again and get a copy of the original file.
  2. Copy the file patches.tar from <~csci3308/src/> into your source directory for MECS.
  3. tar xvf patches.tar
  4. mv mecs.c mecs.h patches
  5. cd patches
  6. patch -p0 < patch1
  7. patch -p0 < patch2
  8. patch -p0 < patch3
  9. mv mecs.c mecs.h ..
  10. cd ..
  11. rm -r patches
  12. make

Note: there are seven bugs remaining in the program. Two of the bugs are quite difficult and you will be awarded 5 points of extra credit for each one of the two you can find (10 points of extra credit total). The remaining 5 bugs range from single line faults to faults that span multiple lines of the program...

Note also that in fixing the bugs that caused segmentation violations, the behavior of the program has changed slightly. This should not impact your test cases, either the program performs to spec, or it doesn't.

Saturday, November 10, 2001

11:47:00 AM

Lecture 21 is now available. Note: we are skipping lecture 20 entirely, it will not be required material on the final exam. I will leave it up on the web server, however, so take a look at it when you get the chance.

Thursday, November 8, 2001

12:26:12 PM

For those students who have not yet turned in Worksheet 1, you have until class on Monday to do so. After class on Monday, the penalty changes from 20% to 40%, meaning that your maximum score possible after class on Monday is 60 points as opposed to 80 points. FYI.

Wednesday, November 7, 2001

5:19:35 PM

Worksheet 3 is now available.

4:22:58 PM

FYI: I will most likely not be on campus tomorrow due to a lack of babysitting coverage for my 17 month old son...I should however be available via e-mail. So, if you were planning to come to my office on Thursday to ask questions about the notebook, send them via e-mail instead and I'll do my best to answer them.

1:10:56 PM

Note: there is a bug in the MECS program which causes the program to crash if the first character of an input file is a "minus" symbol. e.g. "-5+4=". Because this input can cause the program to crash, it is essentially untestable, and you will have to suppress the lines that cause this bug. FYI.

12:16:03 PM

Finally, when reporting that a structural test case passes or fails, be sure to make that answer with respect to the spec, like you did last week. That is, if you write a test case, like "2+3=" to hit a particular line number in the program, you do not report "pass" or "fail" based on whether or not you actually hit the line (gct keeps track of that information for you), instead you report pass if MECS computes the correct answer: "2+3=5". This is what I was talking about in lecture on Monday, a test always passes or fails according to the behavior specified in the spec, regardless if its a black box test or a white box test.

12:08:58 PM

In documenting your test cases, you do not have to list all of the line numbers that the test cases "hits". This would be too difficult to do since, for instance, your first test case will hit a large number of lines and then subsequent test cases will significantly overlap with the lines hit by that first test case. If however, you are writing a test case to specifically hit a particular line, you can document that information. e.g. "this test case is written in such a way that it is guaranteed to cause line 1045 to execute." or similar.

Note: if you discover that a bug in the program makes it impossible to hit a particular line, then you will need to suppress this line from testing. The gct tutorial covers how to suppress a line from testing on page 12 of the tutorial, in the section called "3. Suppressing infeasible coverage." If you suppress a line, be sure to document why in the report you hand in on Friday.

12:05:28 PM

Here is a list of i86pc machines. Please login to one of these machines to do worksheet 2...if you all login to cardinal you will significantly slow that machine down:

pheasant, bluejay, cardinal, woodpecker, parakeet, toucan, swallow, chickaddee, cockatiel, bunting, switft, stellar, egret, kingfisher, starling, grouse, ptarmigan

Tuesday, November 6, 2001

11:45:35 AM

Please Read Worksheet 2: Too many students "skim" the information contained in worksheets, labs, exams, homeworks, etc. The information in those documents are important!! Case in point: I'm getting inundated with questions about the gct tool where, in almost every case, the answer to the question can be found by reading worksheet 2!!!

To be clear: You need to download the tutorial document from the reference materials section of the class website, and you need to copy the demo directory specified in the second paragraph of worksheet 2 to your tmp directory. You need to be on a machine whose architecture is i86pc and the gct tools are located in <~csci3308/arch/i86pc/bin/>.

9:47:52 AM

Internship Information: A local company, Noonetime <http://www.noonetime.com/>, has several internship positions available that will start on January 2, 2002. Noonetime develops tools to convert legacy business data into extensible markup language (XML) as well as tools to process that information once the conversion is complete. Positions available include junior software developer, junior quality assurance associate, junior professional services developer, and co-op/Intern for Marketing/Sales/Business Development. If you are interested, send me e-mail.

Monday, November 5, 2001

9:00:27 PM

With respect to the gct tutorial and worksheet 2, make sure you have the following directory in your path:

<~csci3308/arch/$ARCH/bin/>

Finally, you need to be logged into a machine with the i86pc architecture to access the gct tool.

Saturday, November 3, 2001

5:00:12 PM

Lecture 20 is now available.

4:41:28 PM

Lecture 19 is now available.

Friday, November 2, 2001

8:31:34 AM

Worksheet 2 for the testing notebook is now available.

Wednesday, October 31, 2001

4:50:05 PM

More answers to testing notebook questions:

What is reverse polish notation and do I have to test the tracing function of mecs?

I'll answer the second question, first: YES! As to the first question, reverse polish notation is a way of writing mathematical expressions. Rather than writing expressions like 2 + 2 * 5, you write "5 2 * 2 +". In particular, you supply the operands first (like 2 and 5) and then an operator (like * and +). When processing the expression, you take two operands, apply the following operator, and then place the result back in the expression. Thus, "5 2 * 2 +" is transformed to "10 2 +" which is then transformed to "12". The mecs program delimits characters in reverse polish notation using a comma, so for the expression "2+2=" it prints "2, 2, =,". Even though the spec does not mention the ",", you should still test mecs ability to create expressions in reverse polish notation. (In the real world, you would go ahead and create the test case, and then send a message to the developers asking them to update the spec to specify the use of a comma as a delimiter.)

What do I hand in on Friday?

The functional test plan, your test cases developed as a result of that plan, and the results of your test run. The test plan is discussed in items 1-5 on worksheet 1 in the section "The Test Plan". Once you have determined the number of test cases, you need to create a directory for each test case and place in it the input file, the expected output file (or the script that represents the expected output, see below) and the documentation (e.g. README file) for each test case. You will need to print out the input, expected output, and README file for each test case and these test cases should match your test plan. Item 10 of worksheet 1 in the section "The Test Cases" says to condense the printout of your test cases as much as possible to save paper. Finally, you need to run each test case and create a summary of the test run, something like: Test Case 1: Passed, Test Case 2: Failed, Total Number of Tests: 2, 50% Passed, 50% Failed.

4:49:54 PM

11:43:44 AM

A couple of answers to common questions about the testing notebook:

Do we have to use the "diff output expectedoutput" paradigm for all test cases?

No. If a test case cannot be tested using the diff approach, but can be tested using a shell script then write a short shell script to do the test. For example, one specification item states that mecs should create a file called MECS.out if an output filename is not supplied. To test this, you can invoke mecs on some input and then invoke a script that tests for the existence of the file "MECS.out". In this case, you can think of the shell script as taking the place of the expected output file.

Are there any example testing notebooks to use as a guide?

No, not for this year's assignment. I have an example for last year's notebook but this year's notebook is slightly different and I think that example would cause more confusion than it would help.

Fortunately, the instructions for this week's worksheet follow the format I covered in Monday's lecture. Look at the spec and find functional requirements. Remember these requirements need to be testable, that is we should be able to predict what the expected output should be. If you can't predict the expected output, then the requirement is not testable and you shouldn't worry about it. Focus only on testable requirements. Then develop categories for each requirement. For instance, in the lecture, when talking about the car database, one category was "number of cars in the database" and it had a variety of subcategores, e.g. "zero cars", "one car", "many cars", etc. For each category, develop a set of test cases and write down the input and expected output for each test case. Finally, you need to decide if you are going to add all test cases together to get your final set of test cases, or if you have identified some orthogonal categories that can be multiplied together. Once you have your final test set, eliminate duplicates, and prioritize.

Tuesday, October 30, 2001

11:28:42 AM

Testing Notebook Update: There is a new version of MECS located at <~csci3308/src/MECS.tar.gz> that should be used in place of the original tar file. The only change to the program was to convert it from C++ to C (the original program used only minor C++ features) so that it can be used with the structural testing tool that we will be using next week. Its functionality (and bugs!) were left unchanged. So, if you already obtained the MECS program from the csci3308 account, please get it again. Sorry for the inconvenience.

Sunday, October 28, 2001

3:03:52 PM

Lecture 18 is now available.

2:39:15 PM

Lecture 17 is now available.

Wednesday, October 24, 2001

5:26:45 PM

The class schedule has been updated to reflect the deadlines associated with the testing notebook.

5:22:00 PM

The testing notebook section of the website has been updated. The handout which describes the testing notebook handout is now available, along with the worksheet that describes what you need to do next week.

Sunday, October 21, 2001

7:29:11 PM

Lab 7 is now available.

6:07:41 PM

Program 3 is now available. It requires a fair bit of work, so start early!

4:47:38 PM

The class schedule has been updated for the rest of the semester. Three lectures are currently marked "TBA (To Be Announced)". I will update these entries with actual topics soon. In addition, I have renumbered the lectures in response to the fact that last Friday's lecture was used to discuss the midterm. What previously was called lecture 13 is now lecture 15 and what was previously called lecture 14 is now lecture 16. If you have already downloaded the slides for lecture 13 and 14, you do not need to re-download the slides for lectures 15 and 16. They are essentially the same except for updating their numbers and dates.

Saturday, October 20, 2001

10:39:51 PM

Homework 7 is now available...sorry for the delay!

Friday, October 19, 2001

11:36:59 AM

Note also: I have exams for the following students: Emory Smith, Meredith White, Jing Fang, Brandan Greenwood, and Kostas Pagratis. I will bring these exams to class on Monday, or you can try to catch me in my office to pick them up today.

11:32:33 AM

Note: A few students found "tallying" errors with their midterms, where the TAs and I didn't do our addition right! So, please double check your tests for any grading mistakes, and if you find something, come see me during office hours and we will get it corrected.

2:01:18 AM

The in-class midterms have been graded. Out of 81 students taking the test, 8 scored 90 points and above, 20 students scored between 80 and 89 points, 33 students scored between 70 and 79 points, 15 students scored between 60 and 69 points, and 5 students scored between 0 and 59 points.

The average score was 76, the median was 76, the mode was 75, the standard deviation was 11. Finally, the maximum score was 99, while the minimum score was a 43.

I will be handing the midterms back in-class tomorrow and I will be discussing the answers to each question. See you in class.

Thursday, October 18, 2001

3:06:05 PM

I made a mistake earlier today when posting answers to the frequently asked questions. In particular, one answer I gave is for program 2 not for the take-home midterm! I have corrected that mistake by removing the information that pertained to program 2. Now all answers below apply only to the take-home midterm. Sorry for the confusion!

9:41:30 AM

Here are more answers to frequently asked questions about the take-home midterm:

Does the hello program have a man page?

No, it does not. Most GNU programs come with .info files for use with their own documentation system called info. Since we did not cover this system in lab, we do not expect you to do anything with the hello.info file. And, no, you do not have to write your own man page!

Is the user of the instructions for the "installing a system" question a member of CSCI 3308?

No, the user is not affiliated with 3308, so you should not assume that they have a csci3308 subdirectory in their home directory. Instead, you should come up with a name for this top-level directory and then make sure this directory follows the pattern we established in class, e.g. it should have a src directory and a tmp directory and an arch directory, etc.

9:30:20 AM

Here are answers to couple of frequently asked questions about the take-home midterm:

With respect to the question on writing a grep command, may I use the find command in my answer? Also, do I have to find just the string "main" or can I also find strings like "remaining"?

You may not use the find command in your answer to the question on writing a grep command. You must find only the word "main", not strings which contain "main".

With respect to the "installing a system" question, do we have to handle creating architecture-specific directories?

Yes, you have to handle creating architecture-specific directories on the user machine.

Monday, October 15, 2001

10:34:51 AM

The take-home midterm is now available. It is due this Friday in lecture.

Wednesday, October 10, 2001

12:10:37 PM

Note: The automatic grader for program 1 has been turned off. If you still haven't finished program 1, be sure to submit the program as before (e.g., using the handin program) but send e-mail to your TA to notify him that your submission needs to be checked. FYI!

Thursday, October 4, 2001

4:37:13 PM

The class schedule has been updated with the reading assignments for the next three weeks.

4:35:02 PM

Lectures 11, 12, 13, and 14 are now available.

Tuesday, October 2, 2001

9:34:39 AM

Lab 6 is now available.

8:59:37 AM

Homework 6 is now available.

Wednesday, September 26, 2001

1:57:02 PM

If you want to follow up with Susan Nichols about joining her running group, or making a pledge, you can send her e-mail at: <nichols@colorado.edu>

7:10:35 AM

There was a problem with the homeworks page in which the link for homework 5 pointed to homework 4. This problem has been fixed.

Tuesday, September 25, 2001

7:40:40 PM

Lecture 10 is now available. In addition, the schedule has been updated with next week's reading assignment: Chapter 7 (We are skipping chapter 6 for now...)

5:50:12 PM

Program 2 is now available. Those of you who want to get ahead by working on this program during the Fall break next week, feel free!

4:02:02 PM

Lab 5 is now available.

12:01:55 PM

Homework 5 is now available.

Friday, September 21, 2001

2:15:44 PM

Reminder: If you would like me to send you a weekly grade report that shows what grades I have recorded for you, send me an e-mail message giving me permission to send your grades via e-mail. Note: this e-mail grade report does not contain your SSN and is only sent to your e-mail address. Currently about 20 students have signed up, which is less than 1/3 of the class. Remember this is the only way for you to ensure that I am recording the correct grades for you...

8:28:30 AM

The schedule has been updated with the reading for next week: Chapters 4 and 5 of The Mythical Man-Month.

Thursday, September 20, 2001

6:20:47 PM

If you have problems with the handin program for program 1, check to see that the following things are true:

  1. You are invoking the handin script from a linux machine in the Whitewater lab. (The handin program is only compiled for the x86 architecture.)

  2. The permissions for your script are set briefly to be world-readable. The command for doing this is: chmod a+r program01

    After executing this command the permissions for the file should be -rwxr--r-- which you can check by running the command: ls -l program01

    After you have successfully used the handin program, you can change the permissions back to what they should be using the following command: chmod og-r program01.

  3. The program is located in your home directory: mv program01 ~

  4. The permissions for your home directory are briefly set to be world-readable. The command for doing this is: cd; cd ..; chmod a+rx <type your account name here>

    After executing this command the permissions for your home directory should be drwxr-xr-x which you can check by running the command: ls -l -d <type your account name here>

    After you have successfully used the handin program, you can change the permissions back to what they should be using the following command: cd; cd ..; chmod og-rx <type your account name here>

1:21:48 PM

Lectures 8 and 9 are now available.

Wednesday, September 19, 2001

6:49:11 PM

Lab 4 is now available.

1:39:51 PM

Homework 4 is now available.

Tuesday, September 18, 2001

12:01:42 PM

This week's CATS lecture: Tomorrow at 4 PM in ECCR 1B51 a talk will be given on the Jabber system entitled "XML-Based Messaging with Jabber" given by the developer of the Jabber system, Peter Saint-Andre.

Saturday, September 15, 2001

2:28:26 PM

Note: A new version of program 1 has been posted to the website. If you downloaded program 1 before 2:30 PM on Saturday the 15th, then be sure to download it again. The assignment remains the same, but the details on handing your program in have changed. FYI.

Friday, September 14, 2001

11:50:02 AM

Program 1 is now available. It is due two weeks from today...enjoy!

Thursday, September 13, 2001

5:42:31 PM

Lab 3 is now available.

Tuesday, September 11, 2001

12:11:34 PM

This week's CATS lecture: Tomorrow's Colorado Advanced Technology Series lecture is called "How XML is being used to solve real-world problems" and will be presented by Chris Zeiner, president of Noonetime. We will be covering XML later this semester, so if you would like a preview, come to the lecture tomorrow. CATS talks are held every Wednesday afternoon, from 4 PM to 5 PM in ECCR 1B51. Refreshments are served after the talk.

12:08:49 PM

Lectures 6 and 7 are now available.

Monday, September 10, 2001

3:23:05 PM

Remember, if you would like to receive a weekly e-mail showing the grades that I have recorded for you, then send me an e-mail message containing your e-mail address and a statement that says, "I give Dr. Anderson permission to send me a grade report via e-mail." and don't forget to sign the message. I promise not to send your student id via e-mail at anytime and I will test my scripts to make sure that I do not e-mail a grade report to the wrong student.

3:22:38 PM

Homework 3 is now available.

11:12:34 AM

Two items were left at lecture today. A watch and a copy of the Mythical Man-Month. Both items are in ECOT 717. To get the watch, you need to describe it in detail. To get the book, you need to describe the piece of paper that was stuck inside. FYI!

Thursday, September 6, 2001

8:19:35 AM

The TAs for 3308 each hold office hours where you can come and ask additional questions outside of lab sections. Each of them will hold office hours in the TA meeting room, 1B23. The specific times for each TA are listed on the contact information page.

Wednesday, September 5, 2001

3:31:22 PM

An interesting article on slashdot, echoing some of the concerns we have been discussing about software.

3:29:46 PM

Tomorrow at 3:30 PM in ECCR 265, Tor Mohling from CSOps is giving a Unix Tutorial. This presentation should increase your understanding of Unix and the CU Unix environment.

Sunday, September 2, 2001

4:43:40 PM

I have been contacted by a local usability manager looking for test subjects. Usability testing is a recent addition to the software engineering toolchest (by recent, I mean that it has been added in the last 10 years) that helps to determine if a software system is usable, both in terms of its user interface and in terms of the functionality it provides. If you are interested in participating in a usablity study for a local Boulder software company contact Julie Mallon at <community@netlibrary.com>. Sessions last anywhere from one to two and a half hours, and students are paid from $25 to $50 depending on the length of testing and the nature of the test.

4:32:56 PM

I have modified lecture 3 and uploaded a new version to the website. If you downloaded lecture 3 before 4:30 PM on Sunday, September 2nd, be sure to download an updated copy.

Saturday, September 1, 2001

6:18:30 PM

Lectures 3, 4, and 5 are available. Homework 2 is available. Lab 2 is available. Again, feel free to work ahead, however, do not turn in assignments early. Turn them in as indicated on the class schedule.

Note, even though quiz 0 covered No Silver Bullet, be prepared to answer another No Silver Bullet question on quiz 1. FYI.

Thursday, August 30, 2001

1:56:19 PM

Lab 1 is now available.

Monday, August 27, 2001

11:47:59 AM

Homework 1 has been updated with new information about obtaining a lab access card. It originally said that you should purchase the card from the bookstore. As I learned in class today, the bookstore no longer sells these cards. Instead, you can purchase them from the CSOps office, which is located on the basement level of the engineering center next to the undergraduate computer labs.

11:46:18 AM

Reminder: Labs are held in ECCH 105, not ECCR 1B54. The lab room was changed at the last minute. ECCH 105 is located in the chemical engineering wing of the engineering center.

11:45:10 AM

Important: If you left your purse in today's class, you can find it at the computer science department main office, ECOT 717. You will need to identify the owner of the purse by name and describe the contents of the bag. FYI.

Friday, August 24, 2001

3:06:06 PM

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

2:47:35 PM

Lab 0 is now available. Note: I have been experiencing a printing problem with this lab in which the figures on pages 9 and 10 do not print properly. However, no such problems occur when the lab is viewed on-line. So, when you get to page 9 and 10, make sure to look at these pages on-line to see the figures properly. FYI.

Thursday, August 23, 2001

10:50:49 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.

10:49:04 PM

The website is slowly being updated with content. The first two lectures are now available. All of the links on the left are live except for homeworks, programs, labs, and the testing simulation. More information as I have it! Stay Tuned!

Thursday, June 28, 2001

10:57:50 AM

This website comes on-line. (I'm preparing for this class early!) All information on this website should be considered preliminary. I'll post an announcement when the information becomes official!


© Ken Anderson, 2001.
Last Updated: 12/17/01; 11:38:13 AM