COP 5255 Concurrent Programming

COP 5255 Concurrent Programming

Spring 2008

 

Syllabus

Contact Information

Instructor:

Dr. Beverly Sanders
CSE 322
sanders@cise.ufl.edu  Important:  Please put COP5255 in the subject line of all emails you send to me about the course. 
(352) 392-1528
Office hours:  
    Monday 9:35-10:25
    Tuesday 3:00-3:50
    By appointment
    Just dropping by or calling in the afternoon is also OK (although I might not be there or could be busy)

TA:  

KyungHee Kim
khkim@cise.ufl.edu
Office hours:
    Monday 3:00pm-3:50pm @CSE 309
    Wednesday 12:40pm-1:30pm @CSE 309
    

E-learning (http://lss.at.ufl.edu ) will be used for handouts, homework submission, etc.  Login using your gatorlink id and password.   Please do NOT use the E-learning email system to contact us--we check our department email accounts (see above) much more frequently.

 

Announcements 

5/7  Final exam grades and project grades can be seen in the E-learning gradebook.  See ISIS for your final course grade.  The solutions to the final are in the exam folder on E-learning.  

Have a great summer, and to those who are graduating, all the the best in your future career! 

4/29 Tomorrow's office hour is moved to 10:00am~10:50am. If you need to schedule other appointment, send me email please.--Kyung Hee

4/29 Solutions to the midterm are available in the "old exams" folder.  Also, midterm grades on e-learning have been updated (not all regrade requests resulted in additional points).

4/28  If you misunderstood the deadline for on-line submission of the final report, use the Project-Final Report 2 assignment in the Project folder on E-learning.

4/22

  • Slides for all lectures have now been uploaded.

  • The final exam will be given May 1, 3-5pm in the usual classroom.  It will be cumulative--material from the entire semester may be covered.  4 pages of notes are allowed.  Bring a photo ID.  

  • Final reports due April 28. Turn in both an electronic version via E-learning and a hardcopy. Don’t forget to turn your preliminary report back in. If I’m not in my office, get a time stamp and turn it in in CISE 301 (Please do not slip it under my door.) 

  • I will be around during my normal office hours in the next two weeks, but feel free to stop by or make an appointment for another time.

4/18 Demo link is here.
If any concerns, please contact me ASAP.(khkim@cise.ufl.edu or CSE327) --Kyung Hee

4/17  All the machines in E115 now have Java 1.6 installed.  

4/14  Optional reading:  Two papers about concurrent programming by Vance Morrison, a Microsoft software engineer.  The first one shouldn't have any surprises.  The second one talks about memory models in a way that is very different from the Java approach.  

 

 

4/14  You may pick up your preliminary report this afternoon, or I'll bring it to class tomorrow.  To get credit for the preliminary report, you must turn it in again along with your final report.

4/14  Slides through today have been uploaded.

4/14  Reminder.  Project demos will be this Thursday in CSE115.  Make sure you have tried out your project on those machines.  The process will be discussed at the beginning of class Tuesday. 

 

On Thursday:

·        Send a URL for your project to khkim@cise.ufl.edu by 11am.  This URL should either start the game or lead to a web page with instructions on how to start the game.

·        Submit your project's source code to E-Learning by 1:30pm.  This deadline is firm.

·        Arrive in CSE 115 a few minutes early so we can start promptly

 

Demo session

·        We will have a web page containing the URLs for all projects. 

·        When the start of testing for project N is announced, go to the URL for that project and play the game, recording results on the evaluation sheet. 

·        During testing, the creator of the project being tested will walk around, observe what is happening, and help the testers, if necessary.

·        Testing will be done in pairs—two people will sit at a machine, one to play the game, the other to record results on the evaluation sheet.  (It doesn't matter who your partner is—just find someone who needs a partner)

·        When testing if finished for a project, finish up your evaluation sheet as soon as possible and turn it in, then go on to the next project.

·        We will test two projects at a time—each project will be played for 10 minutes.

·        The evaluation sheet is posted on E-learning.  We will bring copies, but it may be helpful for you to look at it in advance.

·        If there were problems in your demo—don't panic.  Do figure out what went wrong and explain this and how to correct it in your final report.  You will not be able to redo the demo, but if you can make a convincing case that you corrected what  went wrong, it will greatly improve your grade.

·        At the end, we will vote on project with the best user interface, and best overall.  We'll use the best overall for a game to find out the best boggle player in the class.    

 

General comments on final report:

·        Make sure to include a clear discussion of the concurrency related issues:  what threads are created, what each thread does, and why it is a separate thread.  For each object:  which threads access it, if accessed by more than one thread, indicate how you are ensuring safe publication, and how you are protecting it from interference.  Also, make sure to discuss specifically how time is being managed, and how game termination is handled. 

·        Include your source code in your hard copy and cross reference the text to make it easy for me to find the source code that implements whatever it is you are talking about in the text.  (You may do this with a marker if you want)

·        Include a statement about how the work was divided between team members.

·        To get credit for the preliminary report, turn it back in along with the final report (so I can see what changed).

3/31 You can see your Final Project Team member here.
The ordering has no meaning.
I recommend those who are looking for a partner to contact the one who doesn't have partner yet.
If you need a contact information, email to me and I'll forward it to the one you want to contact. Good luck! --Kyung Hee

3/25 Slides on wait-free algs (consensus) and transactional memory are available.  Your midterm grades should also be visible.

3/18 Slides on linearizability have been posted.  Use the homework "assignment" in the project folder to tell us who your partner is.

3/4 Slides for deadlocks and lock implementations have been posted.  

3/1 HW3 graded.  Check E-learning comments for details.   (Average: 84.2 and Median: 85.5)   If you still have problems to view your grade or have any questions, please contact khkim@cise.ufl.edu

2/26 Slides on Servers, Executors, and Futures have been posted.

2/19  More slides have been posted.  Midterm is on Thursday.

·             Bring a photo ID--it will be checked during the exam

·             The exam will be closed book, but you may have 2 pages of notes.  (1 sheet of paper written on both sides, or two sheets of paper, each  written on one side)  You may make the print as small as you want.

  • Examination Rules

1.      Do not start until told to do so.

2.      No electronic devices.

3.      Students who finish early may quietly turn in their papers and leave only up until 5 minutes before the end of the exam.  After that time, you must stay in your seat until all the exams have been collected and you have been dismissed.  Leaving your seat or talking during this time will be considered a violation of the honor code.

4.      All students must stop writing immediately when the end of the exam is announced. Continued writing after the end of the exam will be considered a violation of the honor code.  

5.      Two pages of notes are allowed; otherwise, the examination is closed book.

6.      The exam will last for 1 hour and 55 minutes (1:55pm-3:50pm)

  • Hints:  use good test taking skills
    • Look over all the questions and observe their point values before you start.
    •  
    • Read the questions carefully.

2/15 HW2 graded.  Check E-learning comments for details.   (Average: 89.1 and Median: 92.0)   If you have any question, please contact khkim@cise.ufl.edu

2/14  Class cancelled today.  Old exams will be posted on E-learning later today.  Note that the midterm is earlier this year than some years in the past so these exams may contain material that we haven’t covered yet. 

2/7  Slides on semaphores and HW3 have been posted.  HW3 is due Feb 19 at 9am and late submissions will only be accepted until 1:45pm that day.   The midterm will be Feb 21 will cover material in all prior lectures and HW 1-3.  On Feb 19, we will discuss HW3 and review.  Immediately after class on Feb. 19, I will head to the airport and be out of town for the rest of the week.  If you have questions, make sure to see me before then.  

2/6 For HW2, you can implement CopyOnWriteHashMap by using existing HashMap, that means you could use all already implemented methods. Just make sure you implemented the additional requirements including equals, toString and hashCode. This HW is not a complicated one, so don't worry about that your solution is too simple. This HW is about understanding the idea of CopyOnWrite. The Hint will give you something to think about when you implement this. Include the comment about the concurrency issues you come up with these Hint. Good luck! -- Kyung Hee

2/3 Slides on extrinsic locks and conditional synchronization available

2/3 HW1 graded.  Check E-learning comments for details.   (Average: 81.7 and Median: 83.0)   If you have any question, please contact khkim@cise.ufl.edu

1/31 HW2 posted.  Due in one week.  Slides on cancellation and more memory model exercise are available. Reminder, the midterm is Feb 21.

1/25 Slides on Memory model exercises and Atomicity patterns are available.  If you want, you may add the following constructor to the Log class in HW1 which allows you to override the Writer for testing purposes.

public Log(Writer writer){ log = new ArrayList<Event>(); length = 0; this.writer = writer;}

 

1/17  For more information about memory models, see http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html (and other documents at the site if you are really interested.)    Also,  you might want to look at a video about the JMM given at Google by Jeremy Manson, one of the people who worked on the memory model specification.  The slides may be difficult to read on the video but you can download them separately  

video:  http://video.google.com/videoplay?docid=8394326369005388010

slides: http://www.cs.umd.edu/~jmanson/java/google_jmm.pdf 

1/17  Slides on memory models are available

1/15  HW1 is available on E-learning.  Due Jan 29.  Slides on Atomicity are available.

1/10  Slides for StatesAndAssertions available on E-learning

1/8  Powerpoint slides for the first two topics are available on E-learning.  If you are registered for the course, you should be able to get these. 

1/4  Announcements will be posted here--check frequently

 

Important dates

Midterm--in class

Feb 21 (tentative)

Demos (attendance required)

April 17, April 22

Final exam

May 1, 3-5pm