Justin MacArthur
Expert Computer Science Tutor Looking To Help You Navigate Your Computer Science Journey!




Show all photos
Justin MacArthur
Diploma degree
/ 55 min
Justin - Know your tutor
Hi, I’m Justin MacArthur! I’m an online tutor with over 6 years of experience helping middle school, high school, and college students build confidence and master new skills. I hold a diploma in Computer Science and specialize in making complex topics easy to understand. I am passionate about teaching: computer science, apps, game, system software, databases, programming languages, and web development. I'm also skilled with: project management, code review, debugging, code optimization, and career guidance. I know that everyone learns differently. I tailor every session to fit your unique learning style, and I have plenty of experience adapting my teaching methods to support students with special needs. Whether you need help untangling a messy line of code, prepping for a big test, or tackling a tough assignment, I'm here to help you boost your grades and actually enjoy what you're learning. If you want a tutor who will focus on your needs and ensuring you understand the nuances of computers and software. All the while sharing anecdotes and experiences from real world industry experience. I'm the tutor you've been looking for. Let’s work together to unlock your full potential!
Programming tutor specialities
Exam prep
Job readiness
Paired coding
Code Review
Homework help
Debugging
Code Optimization
AI modules
Summary
Podcast
Quiz
Learnings
Flashcard
Spotlight
Zero Risk Guaranteed
15-days refund
Free tutor swap
No cancel fee
1-yr validity
24/7 support
Learner for programming class
Middle School students
College students
High School students
Expert in debugging code
Breaks down coding issues into manageable steps.
Paired coding for effective learning
90% of students benefit from collaborative lessons.
Interactive debugging sessions
Students debug and improve their own code in real-time.
Your programming tutor also teaches
Android
App Development
Computer Science
Databases
Game Development
Unreal Engine

Computer Science concepts taught by Justin
The tutor and student explored Java's multi-threading capabilities, focusing on implementing threads using the `Runnable` interface and demonstrating race conditions. They practiced using synchronization mechanisms like locks and `AtomicInteger` to ensure thread safety, and reviewed code related to a scheduler program. The tutor provided the student with the project files.
Runnable Interface and Thread Creation
Thread Execution and Non-Determinism
Race Conditions and Synchronization
Thread Safety and Atomic Operations
The tutor and student reviewed the concept of multi-threading in Java, focusing on challenges like race conditions and deadlocks. They practiced identifying and solving these issues using locks and mutexes, and analyzed examples of thread-safe and non-thread-safe code, with plans to continue with coding exercises in the next session.
Multithreading Basics
Race Conditions
Mutexes and Critical Sections
Deadlock: The Unsolvable Wait
The Tutor and Student explored software architecture, covering its core components like data layers and architectural patterns such as MVC and MVVM. They analyzed anti-patterns like stovepipe systems and vendor lock-in, discussing their technical problems. The session concluded with an examination of architectural mistakes in various application examples, providing context for the student's worksheet.
MVC and MVVM Architectural Patterns
Architectural Mistakes in Application Design
Architectural Anti-Patterns: Stovepipe Systems and Vendor Lock-in
Software Architecture Layers
The Student and Tutor reviewed the basics of Object-Oriented Programming (OOP) in Java, focusing on the concept of encapsulation. They discussed classes, fields, constructors, getters, setters, and method overriding through a game character example. The Student was assigned to create a `Weapon` class and integrate it into the `Actor` class, with the tutor providing the necessary files.
Procedural vs. Object-Oriented Programming (OOP)
Encapsulation: The First Pillar of OOP
Constructors: Initializing Objects
Accessors (Getters) and Mutators (Setters)
Method Overriding (`toString()` Example)
The Student and Tutor discussed advanced Java concepts, particularly multi-threading, thread safety, and race conditions, analyzing these issues within provided code examples. The session also identified areas where the Student needed foundational review, including object-oriented programming pillars, exception handling, and file handling. They agreed on a plan to cover the four pillars of OOP in the next session and to meet twice a week to prepare for an upcoming mid-semester test.
Race Conditions
Thread Safety
Mutex (Mutual Exclusion)
`synchronized` Keyword in Java
Understanding Threads
Teaching tools used by tutor
Jupyter Notebook
Git & GitHub
Visual Studio Code
Android Studio

Coding tutors on Wiingy are vetted for quality
Every tutor is interviewed and selected for subject expertise and teaching skill.
