|Course title||Distributed and Parallel Computing
|Course description||This course introduces concepts, models, and implementations related to distributed and parallel computing. Topics include parallel and distributed programming, system architectures, synchronization, and concurrency control techniques.
|Pre-requisite||CSCI3150 or ESTR3102|
|Semester||1 or 2|
|Grade Descriptors||A/A-: EXCELLENT – exceptionally good performance and far exceeding expectation in all or most of the course learning outcomes; demonstration of superior understanding of the subject matter, the ability to analyze problems and apply extensive knowledge, and skillful use of concepts and materials to derive proper solutions.
B+/B/B-: GOOD – good performance in all course learning outcomes and exceeding expectation in some of them; demonstration of good understanding of the subject matter and the ability to use proper concepts and materials to solve most of the problems encountered.
C+/C/C-: FAIR – adequate performance and meeting expectation in all course learning outcomes; demonstration of adequate understanding of the subject matter and the ability to solve simple problems.
D+/D: MARGINAL – performance barely meets the expectation in the essential course learning outcomes; demonstration of partial understanding of the subject matter and the ability to solve simple problems.
F: FAILURE – performance does not meet the expectation in the essential course learning outcomes; demonstration of serious deficiencies and the need to retake the course.
|Learning outcomes||1) Understand key distributed and parallel concepts including consistency, clock, commit, replication, synchronization, and consensus
2) Hands-on programming experience in distributed and parallel programming
3) Hands-on system experience in distributed systems and parallel hardware
(for reference only)
|Essay test or exam: 40%
|Recommended Reading List||1) Tanenbaum, Andrew, and Maarten van Steen. Distributed Systems: Principles and Paradigms. Upper Saddle River, NJ: Prentice Hall, 2002. ISBN: 9780130888938.
2) Distributed Systems: Concepts and Design (5th Edition) 5th Edition by George Coulouris (Author), Jean Dollimore (Author), Tim Kindberg (Author), Gordon Blair (Author)
3) An introduction to Parallel Programming. Peter Pacheco. Morgan Kaufmann.
|CSCIN programme learning outcomes||Course mapping|
|Upon completion of their studies, students will be able to:|
|1. identify, formulate, and solve computer science problems (K/S);||T|
|2. design, implement, test, and evaluate a computer system, component, or algorithm to meet desired needs (K/S);
|3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V);|
|4. communicate effectively (S/V);
|5. succeed in research or industry related to computer science (K/S/V);
|6. have solid knowledge in computer science and engineering, including programming and languages, algorithms, theory, databases, etc. (K/S);||T|
|7. integrate well into and contribute to the local society and the global community related to computer science (K/S/V);|
|8. practise high standard of professional ethics (V);|
|9. draw on and integrate knowledge from many related areas (K/S/V);
|Remarks: K = Knowledge outcomes; S = Skills outcomes; V = Values and attitude outcomes; T = Teach; P = Practice; M = Measured|