Giter VIP home page Giter VIP logo

mob-2.3-concurrency-parallelism-in-ios's Introduction

MOB-2.3 - Concurrency & Parallelism in iOS

Course Description

This course covers concurrency and parallelism in iOS to optimize programming performance on mobile devices built with multiple cores. You will learn the foundation of Grand Central Dispatch, Operations and other tools to build applications that run multiple tasks simultaneously, optimizing resources.

Prerequisites:

MOB 2.1

Course Specifics

Course Delivery: online | 7 weeks | 14 sessions

Course Credits: 3 units | 37.5 Seat Hours | 75 Total Hours

Learning Outcomes

By the end of this course, you will be able to ...

  1. Define and distinguish concurrency from parallelism
  2. Work with GCD Dispatch Queues and Operation Queues
  3. Identify the most common pitfalls and challenges that come with concurrency.
  4. Understand and apply Semaphores to solve synchronization problems.
  5. Practice common iOS interview projects & questions

Schedule

Course Dates: Thursday, October 22 โ€“ Thursday, December 10, 2020 (8 weeks)

Class Times: Tuesday and Thursday at 2:30โ€“5:15pm (13 class sessions)

Class Date Topics
1 Thu, Oct 22 Introduction to Concurrency & Parallelism
2 Tue, Oct 27 Grand Central Dispatch (Pt 1)
3 Thu, Oct 29 Grand Central Dispatch (Pt 2)
- Tue, Nov 3 Vote! - Civic Responsibility Break
4 Thu, Nov 5 Grand Central Dispatch (Pt 3)
5 Tue, Nov 10 Semaphores
6 Thu, Nov 12 Project Introduction & Workshop
7 Tue, Nov 17 Operations (Pt 1)
8 Thu, Nov 19 Operations (Pt 2)
9 Tue, Nov 24 Operations (Pt 3)
- Thu, Nov 26 Holiday- Thanksgiving
10 Tue, Dec 1 Pitfalls & Challenges
11 Thu, Dec 3 Libraries + Tools + Testing
12 Tue, Dec 8 Final Exam
13 Thu, Dec 10 Presentations

Assignment Schedule

All except the final project are grade based on completion.

Assignment Date Assigned Due Date Submission Form
GCD RW Tutorial Oct 29 Nov 5 Gradescope
Janky Table Fix Nov 5 Nov 12 Gradescope
Semaphore Challenge Nov 10 Nov 12 Gradescope
Final Project Nov 12 Dec 10 Gradescope

Projects

Evaluation

To pass this course you must meet the following requirements:

  • Complete all assignments listed in the Schedule
  • Pass the final project according to the associated project rubric (>=70 pts)
  • Pass the final summative assessment according to the rubric as specified in this class (>=70 pts)
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Make School Course Policies

mob-2.3-concurrency-parallelism-in-ios's People

Contributors

amelinagzz avatar gordoneliel avatar ibirnam avatar vanderdev1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mob-2.3-concurrency-parallelism-in-ios's Issues

Learning Objectives Suggestions

Suggestions for adjusting Learning Objectives, let me know if you want to discuss.

Suggest renaming "Competencies" to just "Learning Objectives".

By the end of this class students will: Students by the end of the course will be able to ...

  1. know the difference between concurrency & parallelism Differentiate between concurrency & parallelism
  2. know how to create serial and concurrent queues Implement serial and concurrent queues
  3. know how to create delayed tasks Implement delayed tasks
  4. know how to identify deadlocks, race conditions and priority inversion in multi-threaded code Identify and differentiate deadlocks, race conditions and priority inversion in multi-threaded code
  5. Practice common iOS interview projects & questions
  6. leverage various concepts in Grand Central Dispatch to use in their projects Apply various concepts of Grand Central Dispatch in their projects
  7. learn how to test code in iOS Demonstrate how to test code in iOS
  8. learn how to use Xcode's project management tools to build better projects Use Xcode's project management tools to build better projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.