Dear COMP3151/9154 students,
You should get your COMP3151/9154 final marks today. Through your engagement in this course, you have also gained useful knowledge and understanding, as well as software development and analysis skills.
This course examined a number of issues related to concurrent computing and provided you "Foundations of Concurrency". However, much more remains for you to master in your future professional career. I hope sincerely that this course will be just the beginning of your learning about concurrency and solving concurrent computing problems. Keep on the good work!
If, during your future learning and problem solving, you believe that I can help you with advice – feel free to contact me.
I wish you all the best.
Dr Vladimir Z. TOSIC, 19T2 COMP3151/9154 Lecturer
You can check your seat in the 19T2 COMP3151/9154 Final Exam using the following link: https://cgi.cse.unsw.edu.au/~cs3151/19T2/seating/final/register.cgi/allocations . If there are any problems, report them ASAP to the School Office (but also CC me).
I can come to UNSW to hold pre-exam consultations this Wednesday 28 August from around 4pm, in front of our lecture theatre (but not in the theatre as it is likely that that there will be another exam there). If you are interested, please email me by Wednesday 2pm (I will not come to UNSW if no student confirms their attendance via email).
The COMP3151/9154 Final Exam will be held on Friday 30 August in the afternoon (at the end of the exam period). The following labs (
305 on the 3rd floor of J17 Ainsworth
) are booked:
13:30 - 16:30 bugle
13:30 - 16:30 horn
I will talk more about this 2-hour (+reading time) final exam in the last lecture on Monday 12 Aug.
However, before the final exam there is another very important task for you to complete - the myExperience survey! While I understand that you have very little time these days, this is a crucial survey to help future students in this course, me, any other lecturer who might teach this course in the future, CSE leadership, UNSW leadership and the most important people - you! How does filling in myExperience survey help you when you will pass this course in less than 3 weeks from now and several among you will even graduate? Well, quality of your education matters and we all have to work very hard to continuously improve it. Your feedback in myExperience will help in improving not only this course, but indirectly also other CSE courses that you will take in the future (even after you graduate, you might come back one day to do further study). Thus, I kindly ask you to spend a bit of your really precious time and fill in myExperience (and, later, the cross-university SES survey ). Your feedback is appreciated very much.
Since my emails with A2 ZIP files bounced back from several students who redirect their UNSW email to GMail, I have posted URLs of all videos in Assignment 2 Pairs . The videos themselves are not enough to properly peer mark, as many teams provided useful additional resources - if you did not get a ZIP file from me, get it from your peer partner now. You can also watch videos that you were not assigned to peer mark - the goal is that you can learn useful things about modern concurrency concepts in various programming languages.
By the way, you will obviously know which students you peer marked, but they will not know who peer marked them.
For Assignment 2 you are given a 2-day (48 hours) GRACE PERIOD during which the late penalty will NOT be applied. Read the changes (in red) to the Assignment 2 Notification .
You should now be able to see your total quiz mark using classrun . (If you think that I have made a mistake and that your mark is lower than it should be, please email cs3151 .)
As a revision and a preparation for the final exam, I want to run an additional bonus quiz covering all topics learnt in the course. This optional online-only (but held within a lecture) quiz will help you increase your quiz marks if you demonstrate your knowledge. Students present in the lesson on Week 10 Monday 5 Aug. decided that this optional bonus quiz will be held on Week 11 Monday 12 Aug (note that there is no quiz on Week 10 Wednesday 7 Aug.).
P.S. Assignment 1 results were finalised on Week 10 Monday 5 Aug. - I emailed feedback to you and you can also see your marks using
Since some of you are interested in homework, I have posted on WebCMS3 (within Week 9) " Homework 11: Distributed Algorithms and Global Properties ". This homework covers both Distributed Algorithms (that we learned last Monday) and Global Properties (that we will learn this coming Monday). There is a variety of tasks to help you understand algorithms for distributed mutual exclusion, distributed termination and consistent snapshots. While Assignment 2 should be your priority now, Homework 11 will help you prepare for the Final Exam by "eating your elephant one bite at a time".
Please, fill in " Confidential Survey of Your Week 8 Progress (and Opinions) - CORRECTED " by Saturday evening. The permissions error is now fixed, but there are only several responses. Your feedback is valuable!
Some of you were late to choose pairs and programming languages, so I did this for you (see here ). If you do not like what I randomly decided for you (because you were late), change it today/Tuesday 23 July. If you do not change this today, you will have to do whatever I wrote into the spreadsheet. Do not delay - start working on Assignment 2!
I have posted Assignment 2 Notification . I have tried to be detailed in the explanation of what you need to do, because it is a somewhat different type of assignment than most of your university work.
Please, read this Assignment 2 Notification carefully (and " Possible Programming Languages for Assignment 2 - UPDATE 2 " in addition), choose your peers and fill in " Assignment 2 Pairs " by Monday 22 July 22:00 (10pm).
By the way, you will need to provide an academic list of references of sources used in your research/learning and the video. If you are not sure how to do proper academic references, consult UNSW resources and events such as the upcoming "
How to Reference
As discussed in the lecture today, the deadline for peer marking has been extended to this Saturday 21 July 2019 at 10pm (22:00). However, please try to complete it earlier. Do not delay starting on Assignment 2 - it is MUCH MORE IMPORTANT!
This morning I have emailed you 3 ZIP files to peer mark (in pairs) for Assignment 1. I have now finalised the peer review marking forms (3 per Assignment 1 pair) in Week 7 of
MOODLE for this course
). You have peer marking instructions in Moodle, but also repeated in the WebCMS3 resource "
Peer Marking for Assignment 1
I have marked your Midterm and entered the marks into the system. The marks range from 5.0 to 9.5 (out of 10.0), with the average of 7.7. The results are weakest for Question 3, so revise writing formal proofs (using temporal logic) for the Final Exam.
I have also posted (on WebCMS3)
Midterm questions and solutions
. Use them as a resource for further study, notably for preparing for the Final Exam.
I cannot give you back your Midterm booklets, but I will be happy that you look at them and then return them to me for storage, inspection by senior academics and further analysis. You can do this today Monday 15 July until the lecture (I am and will be at the 3rd floor of J17, except for a short lunch break) or this Wednesday 17 July after the lecture (in/around the lecture theatre).
Note that pushers have to execute 2 time more loops compared to the number of agent and smokers loops! This is because each of the 3 agents produces 2 ingredients and each of the 3 pushers pushes only 1.
Example: If each agent executes 1 time (ultimately resulting in each smoker making 1 cigarette), in total this will produce 2 tobaccos, 2 papers and 2 matches => each pusher has to run 2 times.
Assignment 1 is due on Week 7 Monday 15 July at 10:00pm (22:00). To help you clarify your doubts and debug (e.g. Promela), I will come to UNSW on Monday 15 July about 10:15am and will be on Level 3 of J17 until the lecture (except maybe for a short lunch break). In the meantime, post questions to the Forum.
The next Week 07 quiz will be held in the lecture on Week 07 Wednesday 17 July. As I mentioned in the lecture yesterday, it will be worth 2 marks and will be online-only. The topics covered will be monitors (Chapter 7 in the textbook) and channels (Chapter 8 in the textbook).
I forgot to remind you yesterday that this Week 06 Wed. 10 July there will be again a COMP3151/9154 weekly quiz! It will be online only and will be worth 2 (two) marks.
The questions will cover material since the Week 05 Midterm Exam: semaphores and monitors. These topics are directly related to your Assignment 1. The basics of using Promela/SPIN for semaphores and using Java for semaphores and monitors will be covered in this Week 06 quiz, to the extent that these topics are covered in the textbook and in the lecture slides. (More detailed questions about Promela/SPIN and Java will be in the next Week 7 quiz, to check what you learnt through Assignment 1.)
This means that you need to read material from textbook Chapters 6 and 7 (first half only), and slides from Lectures 08, 09, 10.
I have posted Homework 08 Solutions into " Lecture Slides, Homework and Other Resources " - last in Week 5. I can see that most of you have struggled (and I have struggled, too). Therefore, I have made several important simplifications to Assignment 1. They are emphasised (in purple) in the new version of the Assignment 1 Notification .
I will spend the majority of the Monday 09 July lecture on explaining Promela and SPIN use, Java concurrency, Homework 08 solutions, Assignment 1, (possibly also the Midterm Exam although I have not yet finished marking it) and there will be time for your questions, comments and discussion. Only after this is all clarified, I will go into details of monitors.
Further, I will be available for consultations/tutoring this Wednesday after the lecture, on Thursday from about 10:15am to 11:45am (3rd level of J17), and next Monday from 10:15am until after the lecture. (If you email to cs3151 that you need a meeting this Friday, I could also come to UNSW on Friday this week from about 10:15am to about 1:45pm.) I understand that this course is difficult in several aspects, but I will try to support your learning.
I have posted a slight revision of the Assignment 1 Notification , clarifying some questions from students about the requirements for Java programs using monitors. However, please also check regularly the Forum underneath the Assignment 1 Notification for additional clarifications. Do not email me Assignment 1 questions that are relevant for all students - post them in this Forum .
Note that you HAVE already studied Java monitor-like constructs in Homework 03. If you have not yet done this homework, do it ASAP because it is crucial for Assignment 1. I have also posted a slight correction of this homework (there was an error in the hyperlink for "
Java - Interthread Communication
", but you could have found the right web page yourself).
I have posted within " Lecture Slides, Homework and Other Resources " - Week 6 description of Homework 09 about solving the producer-consumer and the dining philosopher problems using semaphores. This is a preparation for Assignment 1. The deadline is Week 6 Tuesday 9 July at 10pm, but try to complete this before the next Monday lecture.
I hope that by now you have all found pairs for Assignment 1 and started working. I have created a Google Sheet (see "Lecture Slides, Homework and Other Resources" - Week 6) for you to enter your pairs - do this by the specified deadline. If you still do not have a pair, enter your name into the sheet and write ??? in the field for the other person, then email the other students with this status in order to form a pair (update the sheet when you form a pair).
Please note that Stud. 1 (Student 1) and Stud. 2 have DIFFERENT submission roles, but you can update the Google Sheet later if you decide to switch roles. By the way, there is no submission via give - the whole task is done through the Google Sheet.
I have also updated the slides from Lectures 08 and 09 (minor corrections).
I have recently posted an update on Quiz 3 written part solutions, particularly on Question 3a. I have also updated in the same way the Bonus part of Homework 06 solutions. Furthermore, I have posted a new short explanation after the Lecture 04 slides.
There are confusing differences in notation between the textbook and tutorials in previous years about whether p5 means that: a) the control pointer is on p5 but it has yet executed (the textbook notation), or b) p5 has just finished its execution (the notation from tutorials in previous years). To clarify this issue, I have written updates to Quiz 3 solutions and Homework 06 solutions and posted a short document explaining the notation - please, read them BEFORE the Midterm Exam!
In the future (including the Midterm Exam), we will use the textbook notation, as described in the newly posted documents.
I have posted into the WebCMS3 " Lecture Slides, Homework and Other Resources " page a number of files yesterday and today, plus I will post several other files tonight or tomorrow. Please, check the course WebCMS3 regularly.
The most important posts are official notifications for the Midterm Exam (see "Week 5") and the Assignment 1 (see "Week 7").
To help you prepare for the Midterm Exam, I will stay after the lectures (probably for about 1 hour) on both Week 04 Mon. 24 June and Wed. 26 June. To clarify concepts, I plan to: answer your questions, go through some additional examples, facilitate discussion among you, do other activities that you suggest as helpful for your learning.
Confidential Survey of Your Week 3/4 Progress
should work now. Please, let me know whether or not you can access it.
Please, remember that the Week 03 Quiz on Wed. 19 June (starting at 5:05pm) will be worth 2 marks - it is a useful preparation for the upcoming Week 5 Mon. 1 July Midterm Exam (worth 10 marks).
There was a problem with Homework 07 - my post was not visible, but I have corrected that and you can read it now.
I have posted draft lecture slides for Wed. 19 June (Lecture 05).
I will post solutions to Homework 06 shortly after the deadline (Wed. 19 June 4pm) and will discuss them in the lecture today.
Check the posted suggested solutions to Homework 04 and Homework 05. (This material, along with Homework 06 will be examinable in the Week 03 Quiz on Wednesday). If there are any issues, please discuss with your colleagues and the lecturer.
I have posted Homework 06 (due Week 03 Wed. 19 June) and Homework 07 (due Week 03 Mon. 24 June) requirements.
I plan to post lecture notes for Monday 17 June at least 1 hour before the lecture. Note that I will also use some additional materials in that lecture, including (if time) a demo of model checking using jSPIN and Promela.
Please, note that Week 03 Quiz will be mostly handwritten (!) again, with only a small online component (if any). This is in order to prepare you for the midterm exam (held on Week 5 Mon. 1 July at 6pm).
It is good that my brief note about programming languages for Assignment 2 has generated interest. I have posted a
about possible programming languages and provided some clarifications in a
. Unfortunately, you will have to wait for further details a bit more.
I have posted Homework 01 Solutions at the bottom of Week 01 materials in "Course Work" -> " Lectures ". Check them and, if needed, ask for clarifications.
As far as I was able to test, give is now ready for HW01, HW04 and HW05 (no submission is expected for HW02 and HW03). Please, check and advise me if you encounter problems.
I have posted new HW05 "Analysing Critical Section Algorithms" and a slight update of HW04 "Propositional Logic and Predicate Logic". Both these homework tasks are due Week 3 Monday 17 June at 4pm. Further, I have posted draft slides for the lecture on Week 2 Wednesday 12 June, corrections to the slides from the previous 2 lectures, as well as answers to the tasks about liveness and safety properties. All these documents are accessible via "Course Work" -> " Lectures " on the WebCMS3 menu.
Note that the lecture on Week 2 Wednesday 12 June will contain my presentation in both hours (since they are both recorded by Echo360). The Week 02 Quiz (worth 0.5 marks) will be entirely online and will be held near the END of this Wednesday lecture.
Some students registered for the course late, were ill or missed the Week 01 quiz (worth 0.5 marks) due to other reasons. I can hold the make-up Week 01 quiz on Week 02 Wednesday 12 June after the lecture (i.e. from 6pm to about 6:30pm). However, I have to maintain fairness towards those students who did this quiz on time. (I will think how to do that.) If you missed the Week 01 quiz and would like to write this make-up, please email me as soon as possible so that I can prepare printouts for the written part.
Unfortunately, there was a configuration problem with the course email address firstname.lastname@example.org - as a result, I was NOT able to get ANY email message sent to this email address and I am not able to read ANY past message. I apologise sincerely for this. I hope that this problem is now fixed. If you have emailed previously anything to email@example.com , please RESEND your message so that I can read it and respond appropriately.
I have posted draft lecture slides for today (Wed. 05 June). Note that there will probably be some changes after the lecture, but the current draft should help you follow my presentation. See you all in the lecture!
While creating Homework 01 Question 1 (based on a textbook question), I forgot to change variable type for n, p.temp and q.temp from integer into float. This change would make the question a bit simpler. However, solve also this question as it is posted, assuming that dividing 1/2 results in 0 when the result is stored into an integer variable.
I have posted draft lecture slides for today (Mon. 03 June). Note that there might be some minor changes after the lecture, but the current draft should help you follow my presentation. See you all in the lecture!
Several homework tasks due in the next 2 weeks have been posted. (Submission via give is not open yet – please, be patient.) Completing these homework tasks will help you learn or revise some of the basic concepts and abstractions used in this course.
Unfortunately, in 2019 Term 2 (19T2) there will be no separate tutorial classes for COMP3151/9154 - ALL Thursday tutorial classes have been cancelled. Instead, you will have tutorial-like exercises within the lectures on Mondays and Wednesdays, homework problems (with solutions posted online), plus additional consultation hours. The Course Outline has been updated to reflect this change - the key updates are in red.
At your earliest convenience, fill in this confidential survey of your prior knowledge and professional interests . This will help your instructors to adjust their teaching to your needs.
Deadline: Week 1 Tuesday 4 June at 6pm.
Welcome to COMP3151/9154 in 19T2! The
has been published...