It is easy to get carried away by the latest fad. Cloud computing, Big Data, Graph Database and so on. Then there is J2EE, .NET, Android etc. If you know one of these you will get employment - or so says the ad. Even assuming this is true you may find it vey hard to learn these subjects. More often than not the reason for this is weak fundamentals. So, our courses stress the importance of fundamanetals and lays a strong foundation. If you get this right you can build on it reliably.

Given below is a list of courses offered.


Algorithms & Data Structures (with C/C++ or Java)

If you are new to programming your first goal is to get past Algorithms & Data Structures. This is the most fundamental of all courses. You will learn techniques to solve computing problems here. You will be introduced to searching, sorting, hashing and a few other algorithms. Starting with arrays, you will learn stack, linked lists, queues, trees and graphs for data structures. 

Before you get scared, you don't need any  prior knowledge of programming.  You will be introduced to a programming language (C or Java) and taken thro' basics step by step. Instead of waiting for you to finish learning a language before starting algorithms, we introduce it as early as possible. This also helps students with no prior programming experience to learn the fundamentals right from the beginning which, we think, is very important because once you learn to do stuff the wrong way it becomes very difficult to correct it.    

Note: To learn this subject you can use any programming language. C & Java indicated above are just the popular choices. Also, remember the purpose of this course is not to learn a language. You will get that for free.

Prereq: None

Duration: 20 sessions, each session 2 hours

Object Oriented Programming (with C++ or Java)

Next logical stop in your journey is OOP. This is where you learn the fundamentals on how to design software. Truth be told, a better name for this course would be software design but we'll go with the industry term. You will learn how to break software in to many modules, how to loosly couple them, how this will help to work in parellel in a team setting, how it easily allows you to change one part of your system without causing changes in other parts of the system and so on.

The previous course, Algorithms and Data Structures, already has the seeds for this course so it is imperative that you are familiar with that subject. (It's perfectly alright if you have not taken A&DS in Arithi as long as you are familiar with it).

Prereq: Algorithms & Data Structures.

Duration: 20 sessions, each session 2 hours. 


Web Technologies:

Two popular technologies used for developing dynamic web applications are J2EE and ASP.NET. Both are not only easy but they share many common technolgies between them. HTML, CSS, SQL (&RDBMS), HTTP to name some of them. There are differences too but the point is you have to learn only one of them. Moving to another - even completly different - web technology is easy provided you get the basics right.

J2EE is open source technology using Java, Servlet, JSP and Java Script. ASP.NET is Microsoft proprietary technology using C#, ASP & JScript. Don't worry about the acronyms. If you don't know which one to choose J2EE is a safe bet. As mentioned before you can easily switch to another if the need arises.

Prereq: OOP (must know Java or C#)

Duration: 40 sessions, each session 2 hours.


Mobile/Tablet Technologies:

Two predominant technologies used for developing mobile/tablet applications are Android and iOS, We offer Android (iOS will be offered if there is sufficient interest). Android is based on Java and an event driven model with a lot of focus on GUI. 

This course is aimed at professionals who need help in learning Android quickly and meet some deadline.

Prereq: OOP (must know Java) 

Duration: 20 sessions, each session 2 hours.


Embedded System:

This is an interesting course for students with electronics background or who want to tinker with hardware or learn 
low-level software (meaning software close to hardware). This course covers Linux OS as it is not only the defacto OS for many embedded platform, it is also a great learning platform. Every student should know about one OS (just like you should know one programming language). You will learn about microprocessors in general and ARM in particular which is ubiquitous in all mobile, tablet and a host of other devices. You will be able to touch and play with a single board computer learning things like reading from a temperature sensor, integrating GPS module, determining orientation using Tri-axis accelerometer etc.

prereq: A&DS (must know C)

Duration: 40 sessions, each session 2 hours.