Java程序辅导

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

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
CS *254: Concurrent Object-Oriented Programming in Java and Android CS *254: Concurrent Object-Oriented Programming in Java and Android Douglas C. Schmidt d.schmidt@vanderbilt.edu Department of Electrical Engineering and Computer Science School of Engineering Vanderbilt University Times and Location Classroom -- Engineering Science Building (ESB) room 48, Monday and Wednesday from 8:45-10am Final exam time is Friday, April 24th at 9am in the class room. Philosophy Developing high quality concurrent object-oriented software in Java for Android mobile devices is hard; developing high quality reusable concurrent object-orietned software is even harder. The principles, methods, and skills required to develop reusable software cannot be learned by generalities. Instead, developers must learn through experience how reusable concurrent components and frameworks can be designed, implemented, optimized, validated, maintained, and enhanced by applying good object-oriented development practices and patterns. Prerequisites Proficiency in Java, i.e., as covered in CS 101 Proficiency in software patterns, i.e., as covered in CS 251 Knowledge of email, the Web, and online discussion forums Awareness of--and adherence to--the Vanderbilt University Honor Code that governs all work in this course (e.g. tests, quizzes, homework assignments, etc.), which must be done individually and in a "closed-book" manner (i.e., no outside help, no Internet, etc.) Course Logistics Office Hours and Locations Assignment Deadlines Course FAQ Programming Assignment Process and Submission Guidelines Course Overview Patterns of Learning Synopsis of Course Contents Summary of Course Work Textbook and Recommended Reading Course Videos and Slides By Week All the lecture videos for this course will be available on my YouTube playlist as they are created. I will also post links to the individual videos and PDF versions of the slides below. Week 1 Walkthrough of Assignment 1A (MP4) Course Overview and Logistics (PDF|MP4) Overview of Concurrent Programming (PDF|MP4) Overview of Concurrent Programming in Java (PDF|MP4) Java Threads: Introduction to Threads (PDF|MP4) Java Threads: Overview of the Case Study App (PDF|MP4) Java Threads: Ways of Giving Code to a Thread (PDF|MP4) Java Threads: Passing Parameters to a Thread (PDF|MP4) Java Threads: How Threads Run (PDF|MP4) Java Threads: Key Class Methods (PDF|MP4) Java Threads: Evaluation (PDF|MP4) Week 2 Overview of Parallel Programming (PDF|MP4) Overview of Parallel Programming in Java (PDF|MP4) The History of Concurrency and Parallelism Mechanisms in Java (PDF|MP4) Evaluation of the Concurrency and Parallelism Mechanisms in Java (PDF|MP4) Overview of the Java Memory Model (PDF|MP4) Overview of the Java Synchronizers (PDF|MP4) Week 3 Walkthrough of Frequently Made Mistakes for Assignment 1A (MP4) Walkthrough of Assignment 1B (MP4) Java Semaphore: Introduction (PDF|MP4) Java Semaphore: Structure and Functionality (PDF|MP4) Java Semaphore: Key Methods (PDF|MP4) Java Semaphore: Mediating Access to Shared Resources (PDF|MP4) Java Semaphore: Coordinating Threads (PDF|MP4) Week 4 Java Semaphore: Usage Considerations (PDF|MP4) Overview of Atomic Operations (PDF|MP4) Overview of Java Atomic Operations and Variables (PDF|MP4) Java Atomic Operations and Classes: Introduction (PDF|MP4) Java Atomic Operations and Classes: Implementing Java Atomic Operations (PDF|MP4) Java Atomic Operations and Classes: Implementing Java AtomicLong and AtomicBoolean (PDF|MP4) Java Atomic Operations and Classes: Applying Java AtomicLong (PDF|MP4) Java Atomic Operations and Classes: Usage Considerations (PDF|MP4) Walkthrough of Frequently Made Mistakes for Assignment 1B (MP4) Week 5 The Java Executor Framework: Introduction (PDF|MP4) The Java Executor Framework: Overview of Thread Pools (PDF|MP4) The Java Executor Framework: Overview of Java Thread Pools (PDF|MP4) The Java Executor Framework: Key Interfaces (PDF|MP4) The Java Executor Framework: The Executor Utility Class (PDF|MP4) Java Executor: Introduction (PDF|MP4) Java Executor: Implementation Choices (PDF|MP4) Java Executor: Application to PrimeChecker App (PDF|MP4) Java Executor: Evaluating Pros and Cons (PDF|MP4) Walkthrough of Assignment 2A (MP4) Java ExecutorService: Introduction (PDF|MP4) Java ExecutorService: Related Interfaces (PDF|MP4) Java ExecutorService: Key Methods (PDF|MP4) Week 6 The Java ExecutorService: Overview of Java ThreadPoolExecutor (PDF|MP4) The Java ExecutorService: Application to the PrimeChecker App (PDF|MP4) The Java ExecutorService: Evaluating Pros and Cons (PDF|MP4) The Java Executors Utility Class (PDF|MP4) Java ReentrantLock: Introduction (PDF|MP4) Java ReentrantLock: Structure and Functionality (PDF|MP4) Java ReentrantLock: Key Methods (PDF|MP4) Java ReentrantLock: Example Application (PDF|MP4) Java ReentrantLock: Usage Considerations (PDF|MP4) Week 7 Walkthrough of Frequently Made Mistakes for Assignment 2A (MP4) Java ConditionObject: Introduction (PDF|MP4) Java ConditionObject: The Guarded Suspension Pattern (PDF|MP4) Java ConditionObject: Common Use Cases (PDF|MP4) Java ConditionObject: Structure and Functionality (PDF|MP4) Java ConditionObject: Key Class Methods (PDF|MP4) Java ConditionObject: Example Application (PDF|MP4) Java ConditionObject: Usage Considerations (PDF|MP4) Java Volatile Variables: Introduction (PDF|MP4) Java Volatile Variables: Example Application (PDF|MP4) Java Volatile Variables: Usage Considerations (PDF|MP4) Java ExecutorCompletionService: Introduction (PDF|MP4) Java ExecutorCompletionService: Key Methods (PDF|MP4) Java ExecutorCompletionService: Implementation Internals (PDF|MP4) Java ExecutorCompletionService: Designing a Memoizer (PDF|MP4) Java ExecutorCompletionService: Implementing a Memoizer (PDF|MP4) Java ExecutorCompletionService: Application to PrimeChecker App (PDF|MP4) Java ExecutorCompletionService: Evaluating Pros and Cons (PDF|MP4) Java FutureTask: Introduction (PDF|MP4) Java FutureTask: Key Methods (PDF|MP4) Java FutureTask: Application to Memoizer (PDF|MP4) Java FutureTask: Implementing Memoizer (PDF|MP4) Walkthrough of Assignment 2B (MP4) Java FutureTask: Applying Memoizer to the PrimeChecker App (PDF|MP4) Java FutureTask: Evaluating Pros and Cons (PDF|MP4) Java Synchronized Collections: Introduction (PDF|MP4) Java Synchronized Collections: Example Application (PDF|MP4) Walkthrough of Frequently Made Mistakes for Assignment 2B (MP4) Week 8 Walkthrough of Assignment 3A (MP4) Java Concurrent Collections: Introduction (PDF|MP4) Java Concurrent Collections: ConcurrentHashMap and BlockingQueues (PDF|MP4) Java Concurrent Collections: Designing a Memoizer with ConcurrentHashMap (PDF|MP4) Java "Happens-Before" Relationships: Introduction (PDF|MP4) Java "Happens-Before" Relationships: Examples (PDF|MP4) Safe Publication in Java: Introduction (PDF|MP4) Safe Publication in Java: Examples (PDF|MP4) Week 9 Java Monitor Objects: Introduction (PDF|MP4) Java Monitor Objects: Motivating Example (PDF|MP4) Java Monitor Objects: Evaluating the Motivating Example (PDF|MP4) Java Synchronized Methods (PDF|MP4) Java Synchronized Statements (PDF|MP4) Java Synchronized Method Example (PDF|MP4) Evaluating Java Synchronized Methods (PDF|MP4) Java Coordination Methods (PDF|MP4) Java Coordination Methods Example Visualization (PDF|MP4) Java Coordination Methods Example Implementation (PDF|MP4) Java Monitor Objects: Usage Considerations (PDF|MP4) Week 10 Walkthrough of Assignment 3B (MP4) Managing the Java Lifecycle: Introduction (PDF|MP4) Managing the Java Lifecycle: State Machine for Java Threads (PDF|MP4) Managing the Java Lifecycle: Starting a Java Thread (PDF|MP4) Managing the Java Lifecycle: Overview of Stopping a Java Thread (PDF|MP4) Managing the Java Lifecycle: Stopping a Java Thread via a Volatile Flag (PDF|MP4) Managing the Java Lifecycle: Stopping a Java Thread via an Interrupt (PDF|MP4) Managing the Java Lifecycle: Patterns for Handling a Thread Interrupt (PDF|MP4) Managing the Java Lifecycle: Java Interrupts vs. Hardware/OS Interrupts (PDF|MP4) The Specific Notification Pattern: Introduction (PDF|MP4) The Specific Notification Pattern: Fair Semaphore Semantics (PDF|MP4) The Specific Notification Pattern: Visualizing a Fair Semaphore Implementation (PDF|MP4) Walkthrough of Frequently Made Mistakes for Assignment 3A (MP4) Week 11 Java Readers-Write Locks: Introduction (PDF|MP4) Java Readers-Writer Locks: Evaluating Pros and Cons (PDF|MP4) Java ReentrantReadersWriterLock: Structure and Functionality (PDF|MP4) Java ReentrantReadersWriterLock: Key Methods (PDF|MP4) Java ReentrantReadersWriterLock: Example Application (PDF|MP4) Java ReentrantReadersWriterLock: Usage Considerations (PDF|MP4) Java StampedLock: Structure and Functionality (PDF|MP4) Java StampedLock: Key Methods (PDF|MP4) Java StampedLock: Example Application (PDF|MP4) Java StampedLock: Usage Considerations (PDF|MP4) Week 12 Walkthrough of Assignment 3B Frequently Made Mistakes (MP4) Java Barrier Synchronization: Introduction (PDF|MP4) Java Barrier Synchronization: Overview of Java Barrier Synchronizers (PDF|MP4) Java CountDownLatch: Structure and Functionality (PDF|MP4) Java CountDownLatch: Key Methods (PDF|MP4) Java CountDownLatch: Example Application (PDF|MP4) Java CyclicBarrier: Structure and Functionality (PDF|MP4) Java CyclicBarrier: Key Methods (PDF|MP4) Java CyclicBarrier: Example Application (PDF|MP4) Java Phaser: Structure and Functionality (PDF|MP4) Java Phaser: Key Methods (PDF|MP4) Java Phaser: Example Application (PDF|MP4) Java Barrier Synchronizers: Usage Considerations (PDF|MP4) Walkthrough of Assignment 4 (MP4) Week 13 Layered Architectures: Introduction (PDF|MP4) Layered Architectures: The Layers Architectural Pattern (PDF|MP4) Layered Architectures: Android's Layered Architecture (PDF|MP4) Overview of Android: the Hardware Layer (PDF|MP4) Overview of Android: the OS Kernel Layer (PDF|MP4) Overview of Android: Middleware Infrastructure Layers (PDF|MP4) Overview of Android: Key App Components (PDF|MP4) Android and Java Frameworks: Introduction (PDF|MP4) Android and Java Frameworks: Key Characteristics (PDF|MP4) Week 14 Android Concurrency Frameworks: Motivation (PDF|MP4) Android Concurrency Frameworks: Introduction (PDF|MP4) Android Concurrency Frameworks: Structure and Functionality (PDF|MP4) The AsyncTask Framework: Introduction (PDF|MP4) The AsyncTask Framework: Key Methods (PDF|MP4) The AsyncTask Framework: Structure and Functionality (PDF|MP4) The AsyncTask Framework: Example Application (PDF|MP4) The AsyncTask Framework: Usage Considerations (PDF|MP4) Overview of Android: Application Framework and Apps Layer (PDF|MP4) Programming Assignments All the assignments for this course will be available here as they are created. Back to my CS Courses home page.