Justin MacArthur

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

4.8(32)

FREE TRIAL

Profile photo of Justin, Computer Science tutor at Wiingy
Computer Science learning materials by Justin
Justinenjoying a hobby outside teaching
Live performance with Computer Science by Justin

Show all photos

tutor-image
tutor-image

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 icon

Exam prep

Job readiness icon

Job readiness

Paired coding icon

Paired coding

Code Review icon

Code Review

Homework help icon

Homework help

Debugging icon

Debugging

Code Optimization icon

Code Optimization

CoTutorCoTutor

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 icon

Middle School students

College students icon

College students

High School students icon

High School students

icon

Expert in debugging code

Breaks down coding issues into manageable steps.

icon

Paired coding for effective learning

90% of students benefit from collaborative lessons.

icon

Interactive debugging sessions

Students debug and improve their own code in real-time.

Your programming tutor also teaches

Android

Android

App Development

App Development

Computer Science

Computer Science

Databases

Databases

Game Development

Game Development

Unreal Engine

Unreal Engine

Icons

Computer Science concepts taught by Justin

Student learned 15 days ago

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

Show more

Student learned 22 days ago

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

Show more

Student learned about 1 month ago

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

Show more

Student learned about 1 month ago

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)

Show more

Student learned about 1 month ago

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

Show more

Teaching tools used by tutor

Jupyter Notebook image

Jupyter Notebook

Git & GitHub image

Git & GitHub

Visual Studio Code image

Visual Studio Code

Android Studio image

Android Studio

tutorFooter

Coding tutors on Wiingy are vetted for quality

Every tutor is interviewed and selected for subject expertise and teaching skill.