COP 5570: Concurrent, Parallel, and Distributed Programming 9:30pm – 10:45pm, TH Summer 2015 http://campus.fsu.edu http://www.cs.fsu.edu/~xyuan/cop5570 COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Instructor Instructor: Xin Yuan Email: xyuan@cs.fsu.edu Office: 259 Lov Building Phone: (850)644-9133 Office hours: 1:00pm-3:00pm Tuesday/Thursday or by appointment Class website: Blackboard COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Teaching assistant TA: Umit Karabiyik Email: karabiyi@cs.fsu.edu Office: MCH 106B Office hours: Wednesday 4pm-5pm, Friday 2:45pm-4:45pm COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University What this course is about • Advanced programming in the Unix environment – – – – Concurrent programming: with processes and threads Parallel programming: with threads and OpenMP Network programming: sockets Advanced UNIX systems level programming: • File systems, advanced I/O • Signals • Inter-process communication and synchronization – Write portable code • After taking this class, you should be able to – – – – Use standard UNIX operating system APIs Write concurrent and distributed programs to solve problems Develop network applications Develop portable programs COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Books • Textbook: – W. Richard Stevens, UNIX Network Programming, Volume 1: Networking APIs Sockets and XTI, 2nd edition • Reference books: – W. Richard Stevens, Advanced Programming in the UNIX Environment – Kernighan & Ritchie, The C Programming Language COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Pre-requisites • Operating systems - COP 4610 or equivalent • Basic course on networks (highly desirable) – CNT5505 or equivalent. • Proficiency in C or C++ - absolute must!! • Working knowledge of Unix environment COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Grading • Programming assignments • Group term project • Midterm • Final - 40% - 15% - 20% - 25% •Target letter grade distribution: • half A’s, half B’s. COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Programming assignments • Individual projects • 4 projects (at least 2 of them fairly large, > 1000 lines) • Late submission – 10% penalty per day for up to two days. • Start early! – Expect the servers to go down at any time. Do not expect the project deadline to be postponed if the servers are out of service for less than 1 day during the project period. – Ask questions early! COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Grading Programming Assignments • Grading is based not only on the software functionality/quality, but also on – Your understanding of your own code. – Your preparation to demo the features of your program. • A program that is “kind of” working is not good enough. • Make sure your code is completely ready BEFORE the due time (usually the demo time). No modification is allowed after demo starts. • First unknown bug of any kind (major or minor) will cost 20% of the project + the grade for the feature. • The first known bug or unimplemented feature will cost extra 10% of the project. COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Group Term Project • Up to 3 students / per group • Potential topics will be given at around the midterm time. • Requirement: – Development component: substantial programming with techniques covered in COP5570. – Research component: something new, something useful. • Bi-weekly progress reports after the midterm, presentation and demonstration at the end of the semester. COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Grading group term project • Based on – Software developed – Presentation and demonstration – Progress reports and final report • Main criteria – Software quality, creativity, usefulness – Relevance to the course – Clearness in presentation and demonstration COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Accounts • Computer Science account (<yourid>@cs.fsu.edu) – For doing projects – http://www.cs.fsu.edu/sysinfo/newstudent.html • FSU account (<yourid>@fsu.edu) – – – – For receiving class announcements For submitting assignments For getting your grades https://www.ucs.fsu.edu/getStarted.html • Access to blackboard – For class materials, discussion board, grades etc. – Through your FSU account – http://campus.fsu.edu COP5570 – Advanced Unix Programming Florida State University • Academic Integrity – Write your own code from scratch!!! – No copying from anywhere including old submissions and code from the Internet. – Don’t ask anyone for solutions and don’t give or lose your code to anyone. – Automated (software) plagiarism detection tools will be used in this course. • Penalty – Step 1 agreement: 0 for the particular assignment/exam and the lowering of one letter (A->B) for course final grade. – Second violation: handled by the University honor court. – I will not hear any explanation, copying/being copied, lost/stolen code, etc. These are for the honor court judges, not a professor. COP5570 – Concurrent, Parallel, and Distributed Programming Florida State University Course policies • Late projects – Please work on homework assignments/projects early and hand in on time – 10% penalty per day for up to 2 days • No make-up exam – unless proof of emergency (things beyond your control) • Incomplete grade – Only if one item is missed in the course with an accepted excuse. • Please read detailed course policies in the syllabus on the course website. COP5570 – Advanced Unix Programming Florida State University • Accommodation for Disabilities 1.Register with and provide documentation to the Student Disability Resource Center (SDRC). 2.Bring a letter to me from the SDRC `indicating you need academic accommodation. This should be done within the first week of class COP5570 – Advanced Unix Programming Florida State University Review • What will we do in this class? • What are the grading items for the course? • How is the project grading in this class different from that in other classes? • If I am told that I have violated the academic honor code, can I argue for myself if I did not give the code to anyone? • What is the penalty for violating the honor code? • Under what condition can one get an ‘I’ grade? COP5570 – Advanced Unix Programming Florida State University