Cswithdaniel
Four levels of Java classes are designed and offered by High School Student Daniel Li (USA Computing Olympiad finalist) to cover all of the material needed to take the AP Computer Science A exam.
Install / Use
/learn @cswithdaniel/CswithdanielREADME
cswithdaniel
Four levels of Java classes are designed and offered by High School Student Daniel Li (USA Computing Olympiad finalist 2018-2019 season) to cover all of the material needed to take the AP Computer Science A exam. The only materials needed to finish the four levels are the video lessons on cswithdaniel, the problem sets, and a computer. No textbooks or other materials are necessary.
Since 9th grade, Daniel Li has taught around 20 courses of Java at the Horizons for Youth Program in Northampton Community College (each course covers a level) with over 500 teaching hours and over 100 students in middle and high school.
Free video lessons on https://www.youtube.com/channel/UCSL-Yqh3riycNomgQNCjQlw.
Who should learn from cswithdaniel?
- Students are strongly recommended to have learned at least Algebra 1. A basic mathematical foundation will significantly help with programming.
- Students should be able to watch the videos, do the problem sets, and compare with the available solutions of the problem sets.
- Students should fully attempt the problem sets before viewing the solutions. After viewing solutions, students are strongly encouraged to understand and correct any mistakes.
- Students are encouraged to do the problem sets of a lesson part before moving on to the next video.
Why Java?
- Java is the most popular programming language.
- Java can run on nearly any system.
- Java is the only language used in AP Computer Science A.
- Java is used to make many games.
- Java is easy to learn.
- Java is easy to debug (find mistakes in code).
- Java runs reasonably fast.
Compared to other popular programming languages
- Although some languages such as C++ are faster, they are much harder to learn and debug.
- Although Python is easy to learn, it is much slower than Java, and it is sometimes harder to debug in Python than in Java.
- Python is also often too slow for many programming competitions.
- It is significantly easier to learn a second programming language than it is to learn the first. After learning Java, learning C++, Python, and other languages will be significantly easier.
Why cswithdaniel?
- Taught by a high school student, making programming seem accessible to middle and high school students.
- Contains problem sets and solutions for each video.
- Contains curriculum that is organized. Curriculum can be used to self-study or teach.
- It is free.
Amount of time needed
- There are 4 levels in total.
- Each level has 4 lessons, total of 16 lessons.
- Each lesson has around 3 lesson parts; each level contains around 12 lesson parts, total of 48 lesson parts in 4 levels.
- Each lesson part in Level 1 has 10-20 minutes in video lessons. Each lesson part in Levels 2-4 has 15-30 minutes in video lessons.
- Each lesson part has a problem set to go along with it, and each problem set takes around 45-90 minutes for students with no prior programming experience.
- This curriculum is designed to help students self-study and help high school students teach Java.
What to expect from cswithdaniel
- After finishing all 4 levels, students will have learned all the material needed to take the AP Computer Science A Exam.
- The 4 levels will cover some additional material not covered by the AP Computer Science A Exam that may be useful for competitions and college courses.
- The 4 levels are not entirely designed for the AP Computer Science A Exam. Instead, they are designed to give students a solid programming foundation for the future.
For anyone planning to use my curriculum to teach Java
- There are two teaching schedules I have used:
- 12 lessons for each level, 1 lesson each week, each lesson is 60-75 minutes long (including going over practice problems) and covers the equivalent of a lesson part in the videos
- 4 lessons for each level, 1 lesson per day, each lesson is 3 hours long and covers the equivalent of a lesson in the videos
- Additional lessons can be dedicated to review material or test students.
- Lesson summaries, problem sets, and exams are posted here and can be freely used in teaching.
- Teachers are encouraged to assign homework after each lesson.
- Teachers are free to use the curriculum or videos here if credit for the videos and the problem sets is given to cswithdaniel.
Related Skills
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
2.0kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
Flyaro-waffle-app
Waffle Delight - Full Stack MERN Application Rules & Documentation Project Overview A comprehensive waffle delivery application built with MERN stack featuring premium UI/UX, admin management, a
Security Score
Audited on Jul 7, 2022
