Reminder on competitions and programs

Here is a slideshow with details on local, regional, national, and international computing or computer science competitions:


And here is the list mentioned in our recent seminar:

  • Elementary School
    • KTByte FUN
    • Hour of Code
    • Girls Who Code
    • CoderDojo
    • Computer Camps / Summer Week Long Programs
    • MOOCS: Khan Academy, Codecademy,
  • Project Competitions, Hackathons
    • LexHack, HackNEHS, MetroHacks
    • College level, find via, e.g. wellesleyhacks, hackumass, pennapps,, hackbca, stuyhacks
    • KTBYTE 1k, 5k
  • Robotics
    • Botball, Vex, RoboFest, and More
    • FLL, FTL, FRC
  • AP Computer Science, College Credit
  • Algorithmic Programming Competitions
    • ACSL
    • Local Competitions (WPI, Stanford, Cornell, etc)
    • USACO
  • Research
    • MIT Primes
    • Local Science Fairs
    • National Science Fairs
      • Google Science Fair
      • Intel
      • Regeneron
      • Broadcom
      • Conrad
      • Davidson Fellow
      • Siemens
      • DYSC
      • MIT Think

Nov 2016 Student Parent Announcements

For KTByte students and parents:


There are no classes from Monday 11/21 to Sunday 11/27 (one week), Monday 12/19 to Sunday 1/1/2017 (two weeks). The spring semester will start the week of 2/6/16.


Teaching Assistant (TA) web-conference/in-person office hours are the following:

Sunday 6:30-8:30pm
Tuesday 4-6pm
Thursday 6:30-8:30pm (web-conference only)
Saturday 5-7pm
Saturday 6:30-8:30pm

Students, please email your instructor for the office hours gotomeeting link if you can’t find it. The USACO prep class students will have two separate office hours Tue 4:10-5:10 and Fri 7:25-8:25pm.


We are really interested in your feedback and would love you to provide us with a short testimonial about your experience with KTByte and Computer Science in general. How has KTByte helped you achieve your personal and/or academic goals? We would also like to know why you chose to learn CS and what your hopes are for the future. Please send your testimonial and comments to kelly [at] ktbyte [dot] com


Our teachers are in the process of preparing and sending out student reports for CS00, CS01, CS01b, and CS02. Project based and advanced classes will not have reports. Detailed instruction of how to read the report are included in the email. Please save the email and keep the link which you can use to check your child’s progress periodically.   


The 1k contest is a great opportunity for all students CS00 and above to try a small project. Parents, please encourage your children to try the contest, and we encourage students to talk about their projects during office hours. Here is more information:


Anyone who is applying to MIT PRIMES please note the deadline is December 1st. You can find more information here:   


The USA Computing Olympiad contest season starts in December, and typically occurs again in January, February, and April each year. This a national competition and free to everyone. To participate, simply open an account at and join the competition from your home computer. The contest is typically 3-5 hours long and your time begins when you start the contest. We encourage anyone in current CS02 or above to try to take the USACO contest. It is also a very good learning opportunity.

Please contact us if you are interested in a short week-long USACO prep class during the week of December 26, 2016. We can open one if there are enough students.


We will be running a CS AP prep class twice a week starting at the beginning of the spring semester and ending right before the AP test date. This class will be most suitable to students who took our class before and need some review before the AP exam. It is also very helpful for non-KTByte students who are currently taking CS AP classes in their schools and who need some help. So please refer this class to your friends:


Spring early bird enrollment is open for new students. Current students please wait until mid-December for teacher recommendations.  

If you are a current student you will notice a major change in our registration form. Parents will need an account to enroll now, and you will need to provide your student account ID and password to link it to the parent’s account. This will ensure that the student’s assignments and reports are sent to the right people, and it will reduce the in-class setup time. We appreciate your patience and feedback while we make changes to our system.


We are adding one CS00 in person class in Lexington and one online Pre-CS as well online FUN1 and FUN2 classes in the upcoming spring semester.


We are excited to announce the opening of in-person FUN1 and FUN2 classes in our Newton location in the spring semester. FUN1 will be held every Thursday 4:10-5:10 and FUN2 will be every Thursday 5:20-6:20pm. The address is 437 Cherry St, Newton, MA. Contact us for free trials and tell your friends about these new classes.


We are in the process of setting up early registration for winter and spring break programs. KTByte students who are interested in being TAs for these classes, please contact yuan [at] ktbyte [dot] com . Here is a preliminary list of the week-long classes we plan to offer. Please let us know if you’re interested a class but it is not on the list. List:

Machine Learning

Nowadays, computers can do things that we thought were impossible just a few years ago, blurring the line between science fiction and reality. From diagnosing diseases and walking robots, to self driving cars and voice recognition, machine learning is no longer an exclusive field just for the experts; it’s becoming a part of our everyday lives. So let’s break it down – what is machine learning anyway?

In the simplest terms, when we think of a linear progression that has an input and an output along an X and Y axis with two data points, we can draw a line between the two points and find a relationship between the input and the output. This is also known as supervised learning, or a way to predict an output given an input.

Machine learning has more complicated inputs than a line, but it basically works in the same way. It finds an algorithm that, when given a lot of examples of an input and an output, the computer can find a function that matches the inputs to outputs. It ends up looking something like this:


For example, if we want a computer to be able to decipher between a picture of a cat and one of a dog, there is a higher level of difficulty because there are a lot of variables to be considered. (Check out this Kaggle Competition to see this example in action.) It is possible, however, and in fact much more complicated things are being explored using machine learning.

Deep learning is another term that is used to talk about machine learning, and can be thought of like the neural network in the human brain because the functions of the inputs and outputs are described with circles and lines, similarly to how brains are constructed through neurons and axons. When given enough samples, a computer can find a relationship between the input and output – and eventually is able to make decisions based on the results (i.e. the picture is a cat).


So where is this technology being used today? Lots of places! Self driving cars are exploring this technology by using images from cameras on the outside of the car as the input to produce outputs that determine the angle of the steering wheel when it’s time to make a turn or the amount of acceleration/speed that is appropriate to use at any given moment. It is also helping determine other factors like proximity to other cars, pedestrians, sidewalks…the list goes on.

Watson, IBM’s Artificial Intelligence, is being used in many ways, but mainly for the organization of large amounts of unstructured data; and it’s making massive advancements in the medical field. Given past patient diagnoses and patient information, Watson applies what it knows to new patients and can then make new diagnoses. The idea here is that enormous amounts of medical data currently exist, but it would take a human hours and hours of work to sort through it all. This means information that may have been collected in one laboratory, hospital, city, country, etc. is not easily shareable with others. Watson is helping medical professionals sort through all this data, consolidating the information and creating a “secure, cloud-based, data-sharing hub.” This medical technology is being applied to cancer, diabetes, epilepsy, and more.

According to The Next Web (TNW), Microsoft’s Speech Recognition software has now reached the point that it is equivalent in accuracy to that of human speech. This does not mean it’s perfect, or that the computer can actually understand what the speech means, but Microsoft’s technology has advanced enough that it has “a word error rate (WER) of 5.9 percent, a figure that is roughly equal to that of human abilities.” There are limitations to this technology, like background noise and windy weather, but the technology is certainly improving.

Facebook uses machine learning in a few different ways to improve the user experience. The advertisements you see are chosen using algorithms that determine how likely an individual is to click on an article. They also suggest friends you may know based on GPS location services, facial recognition from friends-of-friend’s pictures, and behavior correlated tracking (by clicking on someone else’s page). Higher correlations yield higher results.

Even the written portions of some exams such TOEFL, GRE, and Common Core are partially graded by machines. Educational Testing Service (ETS) explains that the technology is able to identify grammatical and language usage errors as well as sentence variety, style of writing, and level of vocabulary, among other features. This application of the technology, however, has caused some controversy among educators and parents. According to The Washington Post, in 2016 “two-thirds of the students’ writing responses [will be graded] by computers, with only 10 percent of these rechecked by a human being.” The underlying question is whether or not a computer can truly score written work as well as a human.

Machine learning clearly has profound and complex implications. How can a computer be making subjective decisions about something as complex as road safety, disease diagnoses, and exam grades? However, it appears that the adoption of machine learning into everyday life is inevitable. Many of these algorithms already outperform current programs and automates many human behaviors. So it is even more important that we understand the algorithms as we design the systems that use them. Nevertheless, machine learning is clearly quite impressive. It allows a computer to override the emotional component involved in human decision-making processes and can yield more accurate results. Similar to the internet in the 90’s, machine learning is a very new thing that we don’t know the implications of. With any new technology, education is key to demystifying its unknowns for the general public.

This technology in particular is very practical for pre-college students because it can be applied to things like science fair projects, research projects, and the understanding of hard sciences. It yields a lot more precise measurements and can create precise models without requiring a knowledge of high level math. At KTByte Computer Science Academy, our advanced classes focus on:

  1. Statistical Learning – The goal of this class is to study where the field was approximately a decade ago and how people used to think about prediction before we had more complex problems. It focuses more on math than computer science, but it’s a very useful perspective for students.
  2. Deep Learning – Students learn modern techniques for machine learning used in common applications such as facial recognition, speech recognition, and self driving cars. They then use these techniques to solve their own machine learning problems.

To find out more about KTByte Computer Science Academy course offerings, click here.

Building the smallest mITX 14 Core 64gb RAM Virtual Machine Server

We often need students to log into virtual machines during class… and this is one of the servers we built for that purpose. Build log first:

Trying to fit a 14 Core Xeon E5-2683v3 into the smallest form factor (minibox m350) was not easy, but sometimes physical space constraints in the server room make such a build worth it. The hardest part of the build was getting parts to fit around the 2011-3 socket, as most ITX hardware is available for the 1151 socket.

Many mistakes were made, and here are the key takeaways:

  • Use an m.2 SSD: Using a 2.5″ SSD was too large, and ultimately the build used a SATA to m.2 adapter for an even smaller storage footprint
  • Fan Woes: Although the Dynatron R13 fit the build nicely, it’s possibly the loudest fan you have ever heard in an ITX board, and we scrapped it for a Noctua case fan attached to a fanless T318 heatsink.
  • Peak 130 Watt Power: Benchmarked with 28 burnP6 (100% cpu) processes, the machine utilized around 120 – 130 watts, staying stable at 80-85 degrees Celsius peak. The machine idled around 35 watts and 45-55 degrees. Since then, we’ve added more 40mm fans to drive the temperature further down.
  • Power supply woes: This proved to be too much power for the “120W Power Supply” we originally got for the machine, and we ended up picking a 192 watt one from Amazon. However, the 192 watt power supply had the positive and negative leads on the 4 pin connector reversed from what the PicoPSU required, and so the cable needed to be cut and reversed manually.

It’s now comfortably runs several virtual machines (dozens of concurrent users for KTByte computer science classes).
Here is an early picture with the wrong cpu fan (Dynatron R13 is too loud!) and hard drive. Although it is possible to build with the R13 and this SSD, it sounds like a jet taking off. Pen for scale:

PCPartPicker part list / Price breakdown by merchant

Type Item Price
CPU Intel Xeon E5-2683 V3 2.0GHz 14-Core Processor Purchased For $472.00
CPU Cooler Dynatron T318 Fanless CPU Cooler Purchased For $32.85
Motherboard ASRock EPC612D4I Mini ITX LGA2011-3 Narrow Motherboard Purchased For $269.99
Storage MyDigitalSSD BP5e Slim 7 240GB 2.5″ Solid State Drive Purchased For $79.99
Case Mini-Box M350 HTPC Case Purchased For $39.95
Case Fan Noctua NF-A9x14 29.7 CFM 92mm Fan Purchased For $15.63
Other picoPSU-160-XT 160W 12V DC-DC Power Converter Module Purchased For $44.50
Other Ubuntu Server $0.00
Other 4x Samsung M471A2K43BB1-CPB 16GB PC4-17000 DDR4-2133 2Rx8 1.2V SODIMM Memory Purchased For $364.88
Other AD905A SATA III 3 to M.2 SSD Connector Converter Adapter Card Purchased For $9.99
Other 2x Dynatron DF124010BM-3G 3pin 40x40x10mm Ball Bearing Case Fan Purchased For $13.90
Other 192W AC-DC Power Adapter 12VDC 16.0A FOR E1276 STD-12160 (MODDED) Purchased For $44.95
Prices include shipping, taxes, rebates, and discounts
Total $1388.63
Generated by PCPartPicker 2016-10-26 13:08 EDT-0400

USA Computing Olympiad (USACO)

For many students interested in high level programming, the USA Computing Olympiad (USACO) is a big deal. This national competition is in the form of an online exam and participants have 4 hours to complete 3-4 tasks, all of which are cow themed. That’s right, it’s coding about cows! Participants use algorithms and data structures written in C, C++, Pascal, Java, or Python to create solutions to these problems, and scores for each problem depend on how many input cases the program can solve within the time limit.

First time participants begin at the bronze level. As their scores improve, they can move up through the silver, gold, and platinum divisions. Platinum is of course the top tier of competitors and there are typically only about 50 competitors nationally that place in the platinum tier each year. At KTByte, our courses prepare students to compete at the highest level.

You may be wondering what benefits are involved in participating. Here are our Top 5 reasons why you should definitely take advantage of this great opportunity:

  1. USACO is prestigious, and competitors who do well will get a massive leg up on their college applications because this exam covers high level material that students typically study in the first two years of undergraduate computer science degrees. Participating also gives you the chance to represent the United States in the International Olympiad of Informatics (IOI).
  2. It’s difficult. This means that it is great training for writing algorithms and practicing high-level problem solving.
  3. It’s accessible and free – all you need is the internet and a computer (oh yeah, and awesome programming skills). You don’t even have to be a student or a US resident to participate (unless you want to compete to be in the top 16 who join the finalist camp or top 4 who represent the US in the IOI).
  4. It has 4 levels of difficulty and 4 competitions per year, meaning you have multiple chances to try!
  5. It provides lots of training content and past problems available on the USACO website, meaning it’s an excellent learning resource.

*BONUS reason: Who doesn’t want to write code about cows??

Let’s take a look at a sample problem (taken from the USACO December 2011 contest).

“The cows are at it again!  Farmer John has carefully arranged N (1 <= N <=10,000) piles of hay bales, each of the same height.  When he isn’t looking, however, the cows move some of the hay bales between piles, so their heights are no longer necessarily the same.  Given the new heights of all the piles, please help Farmer John determine the minimum number of hay bales he needs to move in order to restore all the piles to their original, equal heights.”


  1. You get inputs like [2,10,7,1]. How many moves does it take to get all the hay bales to be the same value?
  2. Solving: You discover your target is [5,5,5,5] by taking average.
  3. Solving: to get from [2,10,7,1] to [5,5,5,5] you need to move 7 hay bales total (3 from pile 2 to pile 1, 2 from pile 2 to pile 4, and 2 from pile 3 to pile 4)
  4. Algorithm: generally, you find the mean and find the sum of all values greater than the mean, minus the mean: so 10,7 are bigger than mean and (10-5) + (7-5) = the solution
  5. You write the code for the algorithm
  6. The system will grade your code against a list of numbers up to 10,000 in size (not just 4 numbers like I did in the sample)

Looking for a more difficult problem to solve? Check it out here!

So what are you waiting for? Sign up for a course today!

Vital Skills for the 21st Century

The average high school student constantly interacts with technology on a daily basis. Technology surrounds us everywhere we go, and no one knows that more than today’s adolescents. But the irony here is that they have little-to-no formal training in how computers actually work. They can practically send a snapchat with their eyes closed, but can they write a line of code or design a website? These are two of the many concepts students learn when enrolled in a computer science course.

There is a common misconception that skills taught in these courses are only useful if you want to be a computer scientist. This couldn’t be further from the truth. Sure some of the concepts may be quite specific, such as computing languages like Java, Scratch, Python, and HTML which are all commonly taught in these courses. But think about it: all industries today use computing. Computer science offers students 21st Century life skills to prepare them to be innovators, regardless of the field of work they choose to pursue. Starting these classes at an early age yields exponential benefits to a student.

The application of skills learned in computer science courses is not limited to the computer science field. Here are some highly applicable skills that all students in a computer science course will learn which will prepare them for countless opportunities in many different fields.

  1. Problem Solving: Programming is essentially a fancy word for problem solving. It requires students to consider the problem at hand and work to find the most concise solution. Problem solving skills are essential in all workplace settings whether you work as part of a team or on individual projects. They can be applied to any industry, any job, and any task.
  2. Logical reasoning is also an essential skill used in coding. It uses a series of procedures to come to a conclusion. It also places the focus on how things work in order to better understand what the outcome will be. These skills can be applied to so many real-life situations.
  3. Design: Computer Science also teaches students how to design and develop creative solutions to new problems and questions. It forces them to think outside the box as they explore various solutions.

When you think about a typical math or science requirement in high school, it’s likely that computer science does not readily come to mind. But these days skills like programming and computer science are highly sought after in the work force. Projections made by the Bureau of Labor Statistics predict a “37.5% growth from 2012 to 2022 in the computer systems design and related services industry.” That’s a large number that holds a promise of a lot of opportunities for a lot of students.

Learning computer science skills early on has infinite benefits to a student’s future. However, according to Change the Equation, “56 percent of high school seniors have no computer science courses offered at their high school.” At KT BYTE, we’re working hard to change these statistics. We offer a wide variety of computer science and fundamental courses from the most beginner level to advanced. We believe that these courses have benefits for all students regardless of what their future plans may be.

What is Coding?

Whether you like it or not, technology is everywhere these days. It’s likely that you own a smartphone and use it several times a day for a variety of reasons. In fact, according to the Pew Research Center “nearly two-thirds of Americans are now smartphone owners, and for many these devices are a key entry point to the online world.” That’s a huge number! But what all these people may not realize is that by using a smartphone, they’re actually using code written by people…everyday!

Think about a time when you’ve needed directions to a destination. It’s unlikely that you pulled out a road map while behind the wheel to check a turn. No, these days we can simply pull out our smartphones, speak to it to ask for help and – voila! – we’ve got our directions. But contrary to what many believe, smartphones cannot perform magic.

So how does this actually work? The answer is programming (also known as coding). Programming is the applied task of using a specific language to write an application. This language is then used to create an algorithm, a step-by-step set of rules that consistently solve a problem. To put it in the simpler terms, code and algorithms make it possible to create the apps, computer software, and websites that we use everyday. Without these things, our smartphones wouldn’t be able to perform the tasks we rely on them to do. We need phones to give the exact directions for the myriad of roads, destinations, and starting locations. Coding allows us to create a series of algorithms that tell the computer (in this case the phone) what the best solution is to this and countless other problems.

Let’s take a closer look at the example above. In theory, there are endless ways to get from one place to another. You can take the highway if you like to drive fast or you could cruise the back roads for a more relaxed ride. But it’s fair to say that most people want to get from A to B in the fastest way possible. Here is where the problem to be solved comes in. How can we quickly travel from here to there, taking into consideration factors like traffic, construction, detours, road work…? The list is endless. A smartphone uses “dijkstra’s algorithm” to solve this problem by allowing a computer to determine the best possible route. No paper map necessary. How did people ever survive without computer programming?

What is the USA Computing Olympiad (USACO)?

This Friday is the first 2014-2015 contest.

The contest format

The USA Computing Olympiad is an online individual competition, where the top 4 US high school students represent the United States in the International Olympiad of Informatics (IOI). Approximately 4 to 6 times per year, anybody in the world can make an account on and participate in the competition (post-high-school individuals can participate as ‘observers’). New accounts begin in the ‘bronze’ division, where the top scorers are promoted to the ‘silver’, then ‘gold’, and then finally the ‘USACO camp top 16’. Once promoted to a level, the student stays in that level. Only US high school students are permitted to enter the top 16.

The competition consists of 3 to 5 programming problems, which the individual has 3 to 5 hours to complete. Each problem is an “input output matching” problem, where the student’s program must read an input file and write an output file. Problems can be written in either C, C++, Java, Pascal, or Python, but the USACO recommends not using Python. Programs must also run within a small time frame (1 second for C,C++,and Pascal. 2 seconds for Java and Python), and programs must use limited memory.

Try a bronze problem on a piece of paper

Problem 3 of the 2014 March Contest is called “Cow Art”. Students are given an input file which contains a grid (up to 100 x 100 in size, although this example is 5 x 5):


The question asks you to print two numbers.

Part 1: Print how many different patches of R, G, or B there are. In the example, there are 4 regions:


Part 2: Print how many different patches of R, G, and B there are if you treat R and G as the same color. In the example, there are 3 regions:

Thus, the output file should be formatted as: “4 3”

Here’s the code that solves the problem:



Try a silver problem:

Problem 3 of the 2011 December Contest was called “Umbrellas for Cows”. Students were given an input file representing the positions of cows (in stalls) and the cost of various sized umbrellas. Here is a sample positions of cows:

And the umbrellas:

Size 1 umbrella: $2
Size 2 umbrella: $3
Size 3 umbrella: $4
Size 4 umbrella: $4
Size 5 umbrella: $8
Size 6 umbrella: $9
Size 7 umbrella: $15
Size 8 umbrella: $16
Size 9 umbrella: $17
Size 10 umbrella: $18
Size 11 umbrella: $19
Size 12 umbrella: $19

The goal is the decide which umbrellas to buy in order to cover all the cows for the total lowest price.

View post on

The solution, above, shows that you can cover all the cows with one size 4 umbrella, one size 1 umbrella, and one size 2 umbrella. The cost is 4 + 2 + 3 = $9.


How to create your own domain / website on Amazon ec2

Step 0: Easy Alternatives

Before you dive first into making a full blown website, make sure you have some experience:

– Writing a blog using WordPress, Blogger, etc.

– Writing HTML/CSS for a static website on your computer, such as from Codeacademy.


Step 1: Settings up a server

Create a free account on Amazon ec2, which will allow you to create a free server “micro” instance for 1 year. Creating an account requires a credit card and a phone number for activation.

From within ec2, create a new instance. For the purpose of this tutorial, we will choose Ubuntu Server 64 bit (14.04). Other versions of Ubuntu should work with this guide.



Step 2: Create a key pair.

During the ec2 instantiation process, you will be asked to create a key pair. You can pick any name, but make sure to save this file in a place where it wont be deleted. Backup this file, as it is required to access your server.



Step 3: Security Group Settings: Enable HTTP (and optionally HTTPS):

For your web server to be visible on the internet, you need to unblock port 80 (and optionally 443 for HTTPS).


Step 4: Start the new instance, and note the public DNS:

In the instances control panel, find the public DNS. This will be used to connect to the machine



Step 5: SSH into your new machine

Step 5a: MacOSX / Linux

On a mac, use the already installed ssh command from the folder where you downloaded the secret key (“KeyPairName.pem”). You will need to change the DNS in this line:

You may need to enter yes the first time to accept the public key.

Step 5b: Windows

On Windows, download putty and puttygen. Using puttygen, load the private key (.pem) from step 2. You will need to select all file types when loading, since the extension does not match ppk. Then, save the private key.


Then, in PuTTY, set the address to, and also browse for the private key in Connections->SSH->Auth:


To save these settings later, type a session name on and save. Finally, connect to the machine with “open”




You may need to enter yes the first time to accept the public key.

Step 6: Install a web server, such as Apache2 :

After SSH-ing, type and run the following commands:

Step 7: Test your new website:

Go to http://your-dns, and you should be greeted with the following page


Step 8: Download an SCP client to upload files

You can skip this step if you are comfortable with using the linux terminal to modify files. All apache2 files are located in /var/www/html

For windows, download WinSCP. For MacOSX, use cyberduck.

On both, you will login to . Additionally, you will need to specify the private key file:




You should now be able to upload files to the /var/www/html directory.

Step 9: (Optional) Install MySQL, PHP5, and phpmyadmin:

This step is useful if you with to deploy a web application that uses PHP and MySQL (such as

Please note the MySQL root password during the installation process.

Step 10: (Optional) Install WordPress

From SSH, type cd /var/www/html to navigate to the web root.

a. Download and decompress wordpress:

sudo wget wget

sudo tar -xzvf latest.tar.gz

b. Navigate to http://yourdns/phpmyadmin and login as root

Create a new database (collation) for wordpress

Create a new user, and add all permissions for the wordpress database

c. Navigate to http://yourdns/wordpress (or wherever your wordpress tar.gz was extracted)

Complete the instructions on screen by entering the login information from step b. You may be required to create a new file called wp-config.php. If so, do this from the terminal and within the wordpress directory:

sudo nano wp-config.php

#now you can paste the contents of wp-config

#now you can ctrl-x to quit (hit y to save)

d. Navigate again to http://yourdns/wordpress to complete the process

Step 11: Getting a free subdomain

To get a free subdomain, such as, you can use the service.

After creating an account, add a new subdomain:


The type of the subdomain should be “A”, and the IP destination should be the IP address of your server. To get the IP address, you can type “ping yourdns” in the terminal (cmd on windows).

CS00 and CS01 courses available for free

KTByte is proud to release its self guided CS00 and CS01 computer science classes for free to students worldwide. The online courses are interactive, self guided, and include 200 problems each. You need a desktop computer for the classes. The Java interactive textbook continues to be free as well, and it can be accessed from a mobile device.

Java is still the language used on the United States AP Computer Science exam for high school students. It is also one of few performant languages allowed on the USA Computing Olympiad. These courses are a good choice for students looking to get an early edge in CS.

KTByte will continue to use the courses as part of our middle and high school curricula. Please contact us with any inquiry.

Intro to CS with Java

Intro to CS with Java

Accelerated Intro to CS with Java

Accelerated Intro to CS with Java