Question 1: We are planning to add a certain additional functionality X to our program for the Assignment. Is adding the additional functionality X allowed?
Answer to Question 1:
Please note that the requirements specified in section A. Description of the Problem, are the minimum requirements that must be satisfied by your program. Obviously, there are many other possible details of the program that have been left unspecified. It is your responsibility to make appropriate design and implementation choices concerning the unspecified details of the program, and justify those decisions.“
Any decision to add any particular additional functionality X to your program should be guided by the principles above.
The marker will judge whether you have made appropriate design and implementation choices or not in adding the particular additional functionality X; and whether your justification of what you have chosen to do and the particular ways you have chosen to do it are valid or not.
Question 2: How can I learn about makefiles?
Answer to Question 2: Just do a Google search using the key words “makefile” or “makefile tutorial”, and many tutorials or reference manuals can be found, for example:
- a brief introduction to some of the most basic features of makefiles:
http://www.cs.tau.ac.il/~dcor/Software1/Makefile.ppt
- a tutorial on some of the most basic features of makefiles:
http://www.opussoftware.com/tutorial/TutMakefile.htm
- a complete reference manual on the gnu make utility:
http://www.gnu.org/software/make/manual/
Question 3: For cse3221 assignment 2, I am having trouble compiling the code of my program. The errors that I get are: 1. … 2. … 3. … … This makes me suspect that there is something wrong with the <pthreads.h> library on the “RED” server, or maybe something is wrong with …, or maybe something is wrong with … … Could you please advise me on this issue.
Answer to Question 3:
There is nothing wrong with the pthread library on RED. The best and easiest way to do the assignment, is to do the following:
1. You may start by trying to read and understand the program "alarm_mutex.c" in pages 52-58 of the book "Programming with POSIX Threads" by David R. Butenhof. 2. The program "alarm_mutex.c" and the file "errors.h" and "README" can be downloaded from the directory /cs/course/3221/assign2. Try to compile and execute this program by following the instructions in the "README" file. 3. The book "Programming with POSIX Threads" by David R. Butenhof has been put on reserve in Steacie Library."
Once you have studied and understood the program “alarm_mutex.c”, and have learned how to compile and execute this program by following the instructions in the “README” file, you can use the program “alarm_mutex.c” as a template to write your own program for the assignment 2.
The following “gradualist” approach will minimize the chances of getting an unmanageable large number of compilation errors:
Start with the program “alarm_mutex.c”; each time make just a few changes to make it closer to satisfying the requirements of assignment 2; each time after making just a few changes, try to compile it and run it and make sure that the new version of your code is at least compilable and is at least executable. Always save several previous compilable and executable versions of your code so that you can revert back to a previous compilable and executable version of your code if you experience difficulty compiling and executing the most recent version of your code and/or find it difficult to determine what is possibly wrong with the most recent version of your code.
Question 4: For Assignment 2, are we allowed to make modifications to the main() procedure and the alarm_thread function?
Answer to Question 4:
You are allowed to modify the main() procedure and the alarm_thread in any way that meets the assignment requirements.
Question 5: Some members of my assignment group are doing less work / making less effort / contributing less. Is this a valid reason for not handing in the assignment before the due date?
Answer to Question 5:
Unfortunately a claim that some members of an assignment group are doing less work / making less effort / contributing less than some other members of the assignment group, is NOT a valid reason for not handing in an assignment on or before the assignment due date.
If any member of any assignment group wishes to receive any credit for any assignment, that assignment group would need to hand in the assignment on or before the assignment due date.
Question 6: The other members of my assignment group are not responding to my attempts to contact them; some of them may have dropped the course. What should I do in this case?
Answer to Question 6:
In a situation where not all assignment group members are willing to work together to complete an assignment, the members who are willing to work to complete the assignment should go ahead and work to complete the assignment (even if in the whole group there is only one member who is willing to work to complete the assignment).