Created by Kerem Goksel and Chris Piech, with edits by Lisa Yan
Even though we had an intense two week period where we covered a lot of fundamental topics in Computer Science, this is class is but a small portion of what there is to learn in this exciting field. The first stepping stone you have after being comfortable with the material of this course is to finish up the topics of CS 106A, the original introductory class at Stanford University this class is based on.
CS 106A is an intense 10-week class at Stanford, and it covers a few more topics than we did and has several other projects that we didn't have time to cover in this course. However, we made assigments that cover the concepts we skipped so you can learn the remaining concepts.
To start, you should install the Stanford version of Eclipse on your own computers, as described in these instructions on installing Eclipse.
If you want to review what you covered in this class, head to the Bonus programs page! There are lots of fun and challenging exercises here. You don't need to learn any new topics to do these!
Next, you can try out another optional assignment here: The Line. This assignment just reviews topics we already covered in class, so you don't need to learn any new topics to do it!
As you know Strings are a type of variable that we use to store sequences of characters in computer's memory, and we generally used them throughout the course to keep track of things like informative messages, or scores to be displayed in games. However, there's a lot more to Strings than that! In fact, a lot of interesting problems in Computer Science involve working with Strings. While we haven't learned much about what you can do with Strings in this course, a great way to start learning is to build a project that requires you to work with Strings. The assignment all Stanford students do to learn Strings is to build the game of Hangman (“Adam asmaca” as the Turkish people call it). We went ahead and wrote a special hangman handout for you and added the starter code on the course website. You can go there, read the handout, download the code to your computer, import the project to Eclipse and start working on it immediately.
One final concept that you have to learn is HashMaps. See if you can review the concept of HashMaps, then try the Instakilo assignment.
You can access the Winter 2019 version of CS106A taught by Chris Piech here.
Once you're done with CS 106A material, you can go on and explore any field of CS you want! You can move on to the material on CS106B, the second introductory course on the Stanford curriculum, but there are a myriad online resources that teach different CS concepts for free, so you can choose what you want to learn and learn at your own pace, from your own computers. We have created this handy guide for some of the good online courses that are appropriate for your level, but websites like Khan Academy, Codecademy, Udemy and Coursera have a lot of other courses you can follow as well, if you choose to go even deeper.
You covered some of the material in these courses, but taking them may be a good idea if you want to refresh and apply your knowledge before moving on
From now on, you will continue your journey of learning Computer Science on your own, but that doesn't mean there aren't resources for help!
Seeing quality code written by experienced programmers can be very helpful in learning, as it will show you elegant and clever ways of solving problems and proper ways of formatting your code, so there's nothing wrong in looking at other people's code when you are learning on your own.
However, as learning programming becomes your personal journey, keep in mind that this is something you are doing for yourself, because you love it! Copying someone else's code may give instant gratification by letting you solve a problem quickly, but it will harm your learning, and you won't get the satisfaction of creating a solution to a problem, which is one of the most beautiful moments of programming. There's no one out there to check if you copy others' code like at school, but remember that doing so just kills all the fun of programming.