Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Department of Computer Science and Technology – Course pages 2019–20: Multicore Semantics and Programming Skip to content | Access key help Search Advanced search A–Z Contact us Department of Computer Science and Technology Computer Laboratory Teaching Courses 2019–20 Multicore Semantics and Programming Advanced Graphics and Image Processing Advanced Topics in Computer Architecture Advanced Topics in Mobile Systems and Mobile Data Machine Learning Algebraic Path Problems Automated Reasoning Category Theory Cybercrime Data Science: principles and practice Digital Signal Processing Hardware Security Interactive Formal Verification Introduction to Natural Language Syntax and Parsing Introduction to networking and systems measurements Large-scale data processing and optimisation Machine Learning for Language Processing Multicore Semantics and Programming Network Architectures Overview of Natural Language Processing Probabilistic Machine Learning Research Skills Programme Technology, law and society Advanced Operating Systems Advanced Topics in Computer Systems Advanced topics in machine learning and natural language processing Affective Computing Computer Security: Principles and Foundations Computer Vision High performance networking Machine learning for programming Mobile Robot Systems Topics in Concurrency Topics in Logic and Complexity Course pages 2019–20 Multicore Semantics and Programming Syllabus Course materials Assessment Principal lecturers: Prof Peter Sewell, Dr Timothy Harris Taken by: MPhil ACS, Part III Code: L304 Hours: 16 (8 × two-hour blocks, including 2 × one-hour practical sessions) Class limit: max. 16 students Prerequisites: Some familiarity with discrete mathematics (sets, partial orders, etc.) and with sequential Java programming will be assumed. Experience with operational semantics and with some concurrent programming would be helpful. Aims In recent years multiprocessors have become ubiquitous, but building reliable concurrent systems with good performance remains very challenging. The aim of this module is to introduce some of the theory and the practice of concurrent programming, from hardware memory models and the design of high-level programming languages to the correctness and performance properties of concurrent algorithms. Lectures Part 1: Introduction and relaxed-memory concurrency [Professor P. Sewell] Introduction. Sequential consistency, atomicity, basic concurrent problems. [1 block] Concurrency on real multiprocessors: the relaxed memory model(s) for x86, ARM, and IBM Power, and theoretical tools for reasoning about x86-TSO programs. [2 blocks] High-level languages. An introduction to C/C++11 and Java shared-memory concurrency. [1 block] Part 2: Concurrent algorithms [Dr T. Harris] Concurrent programming. Simple algorithms (readers/writers, stacks, queues) and correctness criteria (linearisability and progress properties). Advanced synchronisation patterns (e.g. some of the following: optimistic and lazy list algorithms, hash tables, double-checked locking, RCU, hazard pointers), with discussion of performance and on the interaction between algorithm design and the underlying relaxed memory models. [3 blocks] Research topics, likely to include one hour on transactional memory and one guest lecture. [1 block] Objectives By the end of the course students should: have a good understanding of the semantics of concurrent programs, both at the multprocessor level and the C/Java programming language level; have a good understanding of some key concurrent algorithms, with practical experience. Recommended reading Herlihy, M. & Shavit, N. (2008). The art of multiprocessor programming. Morgan Kaufmann. The 1B Semantics of Programming Languages lecture notes. Further Information Current Cambridge undergraduate students who are continuing onto Part III or the MPhil in Advanced Computer Science may only take this module if they did NOT take it as a Unit of Assessment in Part II. Coursework Coursework will consist of assessed exercises. Practical work Part 2 of the course will include a practical exercise sheet.  The practical exercises involve building concurrent data structures and measuring their performance.  The work can be completed in C, Java, or similar languages. Assessment Assignment 1, for 50% of the overall grade. Written coursework comprising a series of questions on the design of mutual exclusion locks and shared-memory data structures. Assignment 2, for 50% of the overall grade. Written coursework comprising a series of questions on hardware and software relaxed-memory concurrency semantics. This course is borrowed from Part II of the Computer Science Tripos. As such, assessment will be adjusted to an appropriate level for those enrolled for Part III of the Tripos or the M.Phil in Advanced Computer Science. Further information about assessment and practicals will follow at the first lecture. © 2020 Department of Computer Science and Technology, University of Cambridge Information provided by Prof Peter Sewell