Introduction to Java. Basic programming concepts. Anatomy of a program. Built-in data types. Type conversion. Steps in program development. Conditionals: the if statement. Loops: the while statement, the for loop. Nesting. Debugging.
Arrays. Code to process arrays. Two dimensional arrays. Standard input and output. Standard drawing. Fractal drawings. Animation.
Functions and libraries. Case study: digital audio. Application: Gaussian distribution. Modular programming.Recursion. Classic examples. Recursive graphics. Optimizations: avoiding exponential waste. Dynamic programming.
Object-oriented programming. Color. Image processing. String processing. Creating new data types. Examples: point charges, turtle graphics, complex numbers.
Performance of algorithms. Empirical analysis. Mathematical models. Orders of growth. Searching algorithms: sequential search, binary search. Sorting algorithms: insertion sort, mergesort, longest repeated substring.
Classic data structures. APIs and clients. Stacks, queues, linked lists and implementations.
Theory of computation. Introduction to Theoretical Computer Science. Regular expressions. DFAs. Applications. Computing Machine. Data types. Instructions. Operating the machine. Machine language programming. von Neumann machines. Practical implications. Simulation.
Turing Machines. A simple model of computation. Universality and computability. P and NP. Intractability. Poly-time reductions. NP-completeness.
Founder, nFactorial School. Co-founder, Hora.AI / Zero To One Labs / nFactorial Incubator. Purdue CS '10, Princeton CS *12. ACM ICPC World Finals '09, '11. Arman taught 'Introduction to Computer Science' seminars for 4 semesters at Princeton University in 2010-2012. LinkedIn
Program Manager, nFactorial School. Past: Senior Consultant, Ernest & Young; Senior Specialist, KazMunayGas. Education: Queen Mary University of London '2014, Imperial College London *2017. LinkedIn
Applications will be read on a rolling basis. The decision will be made within a week of your submission. The earlier you apply, the earlier you will see the decision.
• 9am-10:30am - interactive video lecture + Q&A
• Students find a 1.5-2 hour window in their schedule to do the homeworks
The upfront price is 1,999 USD. You can also pay through equal monthly installments ($420 x 6 months).
Unfortunately we don't offer any grants. If you can't afford the program, try fundraising using https://www.gofundme.com/start/education-fundraising
No, the program is fully remote.
Absolutely! That's the only way to participate in the program.
This program is for complete beginners. There are no prerequisites.
Yes. It can be either PC or Mac.
15-20 hours a week. There would be five 1.5-hour workshops per week. Plus you're expected to spend at least 1.5 hours to do daily homeworks.
No problem at all! This program was designed for students who have full-time jobs or studies.
Based on Arman's experience teaching this course in the past, many students with prior programming experience found this course challenging, engaging and extremely useful in building a solid Computer Science foundation. In this course, we cover algorithmic performance, sorting and searching, classic data structures, theory of computation, Turing machines, P vs NP, and much more.
There would be 1 instructor, 1 program coordinator and 2 teaching assistants.
Not really, but we would prefer students who are at least 15 years old. We are ready to make ocassional exceptions.
This is a tribute to the martial arts movie titled '36 Chambers of Shaolin'. Taken in May 2017 in Kung-Fu School in a village in Shandong Province, China.
By the end of the program, you will have a solid foundation in Computer Science, Object-Oriented Programming and Java. After this program, you are ready to apply for the flagship nFactorial program where you learn to build iOS and web applications.
You can watch recordings of our sessions and participate in our online forum discussions on Discord.
Excellent question. You’re paying for: 1) 40 interactive live video lectures (see the curriculum in the Timeline above); 2) regular code reviews from experienced mentors; 3) individual office hours with mentors; 4) daily homeworks; 5) access to online forum discussions with other students and mentors; 6) peer-to-peer code reviews; 7) career advice sessions; 8) lecture video quizzes; 9) 10 graded programming projects. Ultimately, the participant is paying for the fact that our program transforms a student with zero programming experience into a student with very solid CS foundation.
We, as mentors, know most modern languages like Python, Ruby, JavaScript or Go. We picked Java because it is not as low-level as C (unnecessary complexity for beginners), but also not too high-level as Python (which hides a lot of the behind-the-scenes). Java is widely used, widely available, embraces full set of modern abstractions, is continuously developed since early 90s, has a variety of automatic checks for bugs. It is also an excellent language to teach Object-Oriented Programming which will be useful in mobile and full-stack web development. As a creator of C++ Bjarne Stroustrup noted, “There are only 2 kinds of programming languages: those people always gripe about and those nobody uses”.
A lot of employed (and unemployed) programmers code by constant trial-and-error and copying-and-pasting snippets from StackOverflow without understanding why it works. Good programmers first plan on paper and then write the correct solution from the 1st attempt. We will help you build the right foundation in Computer Science.
Join the community of impressive software engineers and alumni of previous years.
If you were not accepted to the flagship nFactorial program where you learn to build iOS and web applications, this program is the only preparation you need.
Even if you're not planning to be a software engineer, programming will help you look at the world in a completely different way. As an engineer - as someone who can break down a complex problem into simpler sub-problems. Programming with help you nurture your cognitive ability, problem-solving, logic, and creativity.
"Software is eating the world". Software is transforming every industry even if they are not technical in nature: from shopping to farming. Start your 21st century career with the right foundation.