🚀 Introduction to Computer Science

nFactorial Start: Learn the foundations of programming in 8 weeks
Nov 2 (Mon) 2020 - Dec 25 (Fri) 2020
Part-time program: workload of 15-20 hours per week 
Regular deadline: Oct 30 (Fri) 11:59pm

Join our Telegram group for updates and discussions

'nFactorial Start' in 1 minute

🗓
8 weeks of fun
Nov 2 (Mon) 2020 - Dec 25 (Fri) 2020. Last chance to execute on your New Year’s resolutions!
👶
For beginners
No prior programming experience required. This is the ultimate ‘From Zero to Hero’ program.
📖
Live lectures
40 live interactive workshops and lectures every workday (Mon-Fri) at 9-10:30AM
👨🏻‍💻
Contents
Programming in Java, conditionals, loops, arrays, working with input and output, functions, libraries, recursion, data types, object-oriented programming, basic algorithms and data structures, sorting, searching, stacks, queues, hash tables, theory of computation, advanced topics
🥗
Creative atmosphere
8 weeks of fun: live interactive video lectures, interesting homeworks, individual office hours, demo/brainstorming sessions, fun community events, code reviews, online forum
🐣
Right foundation
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 correct foundation so that you’re a good programmer.
🏠
Fully remote
You can participate from anywhere in the world
☄️
Amazing curriculum
Battle-tested curriculum based on the Princeton University course taught by Robert Sedgewick and Kevin Wayne.
⛩️
Focus on practice
Daily programming homeworks and 10 programming projects
⏲️
Part-time
You can take this program while working or studying at school/university. You’re expected to dedicate to the program 15-20 hours a week for 8 weeks.
🎩
Preparation
This is a perfect preparation and prerequisite for the flagship nFactorial program where you learn to build iOS and web applications.
Office hours
Individual sessions to get direct help from an instructor and teaching assistants

⏳ Timeline

Week

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.

0
1

Week

Arrays. Code to process arrays. Two dimensional arrays. Standard input and output. Standard drawing. Fractal drawings. Animation.

Week

Functions and libraries. Case study: digital audio. Application: Gaussian distribution. Modular programming.Recursion. Classic examples. Recursive graphics. Optimizations: avoiding exponential waste. Dynamic programming.

2
3

Week

Object-oriented programming. Color. Image processing. String processing. Creating new data types. Examples: point charges, turtle graphics, complex numbers.

Week

Performance of algorithms. Empirical analysis. Mathematical models. Orders of growth. Searching algorithms: sequential search, binary search. Sorting algorithms: insertion sort, mergesort, longest repeated substring.

4
5

Week

Classic data structures. APIs and clients. Stacks, queues, linked lists and implementations.

Week

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.

6
7

Week

Turing Machines. A simple model of computation. Universality and computability. P and NP. Intractability. Poly-time reductions. NP-completeness.

🎒 Team

Arman will be your instructor delivering daily interactive lectures and workshops. Teaching assistants will be announced soon...
Arman Suleimenov - Lead Instructor

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

Dalida Yerkuliyeva - Program Coordinator

Program Manager, nFactorial School. Past: Senior Consultant, Ernest & Young; Senior Specialist, KazMunayGas. Education: Queen Mary University of London '2014, Imperial College London *2017. LinkedIn

💰 Pricing

$1999
Standard
- 40 live interactive workshops and lectures
- Daily homeworks
- Code review and grading of homeworks and programming projects
- Access to online forum for students and mentors
- Individual office hours with teaching assistants
- Peer-to-peer code reviews
- Career advice sessions
- Lecture video quizzes
- 10 graded programming projects

Upfront payment for the full program: $1999
Monthly payment plan is available: $420 x 6 months
Apply

❓FAQ

Here we gathered some answers for frequently asked questions

When will I know that I'm accepted?

keyboard_arrow_down

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.

What is a typical day in the program like?

keyboard_arrow_down

• 9am-10:30am - interactive video lecture + Q&A
• Students find a 1.5-2 hour window in their schedule to do the homeworks

What is the price of the program?

keyboard_arrow_down

The upfront price is 1,999 USD. You can also pay through equal monthly installments ($420 x 6 months).

Do you offer any grants?

keyboard_arrow_down

Unfortunately we don't offer any grants. If you can't afford the program, try fundraising using https://www.gofundme.com/start/education-fundraising

Do you have a physical office?

keyboard_arrow_down

No, the program is fully remote.

Can I attend remotely?

keyboard_arrow_down

Absolutely! That's the only way to participate in the program.

What do I need to know before the program?

keyboard_arrow_down

This program is for complete beginners. There are no prerequisites.

Do I need to have a computer?

keyboard_arrow_down

Yes. It can be either PC or Mac.

How many hours will I have to dedicate to the program?

keyboard_arrow_down

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.

I want to participate, but I have a full-time job. What can I do?

keyboard_arrow_down

No problem at all! This program was designed for students who have full-time jobs or studies.

I already have some programming experience. Should I apply?

keyboard_arrow_down

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.

How many mentors will be teaching at the school?

keyboard_arrow_down

There would be 1 instructor, 1 program coordinator and 2 teaching assistants.

Any age restrictions for the candidates?

keyboard_arrow_down

Not really, but we would prefer students who are at least 15 years old. We are ready to make ocassional exceptions.

What picture did you use in the header of this landing page?

keyboard_arrow_down

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.

What will I have at the end of the program?

keyboard_arrow_down

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.   

What if I can't attend live sessions?

keyboard_arrow_down

You can watch recordings of our sessions and participate in our online forum discussions on Discord.

What am I paying for?

keyboard_arrow_down

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.

Why Java?

keyboard_arrow_down

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”. 

💸 What's in it for me?

Rise above the crowd

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.

Epic community

Join the community of impressive software engineers and alumni of previous years.

Excellent preparation for the nFactorial Product track

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.

Personal growth

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.

21st century career

"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.

"Learning to code is the single best thing anyone can do to get the most out of the amazing future in front of us". -@pmarca

Apply