Programs Offered in Arithi Academy
I) Software Programming

This program strengthens the fundamental knowledge required for programming and makes you confident of writing software in at least one programming language. It also boosts your ability to learn any new programming language or tools that your career may demand in future. It is suitable for students/graduates of Computer Science Engineering (CSE), Information Technology (IT), Electrical and Electronics Engineering (EEE), Electronics and Communication Engineering (ECE) and Science disciplines (B.Sc, M.Sc, BCA, MCA).
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 very hard to learn these subjects. More often than not, the reason for this is weak fundamentals. So, our courses stress the importance of fundamentals and lays a strong foundation. If you get this right, you can build on it reliably.
Given below is a list of courses offered under Software Programming
Core Programming Modules
1. Algorithm and Data Structures

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 to start 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.
Prerequisites: None
Duration: 20 sessions – each session 2 hours
2. Object Oriented Programming

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 loosely couple them, how this will help to work in parallel 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).
Prerequisites: Algorithms & Data Structures.
Duration: 20 sessions – each session 2 hours.
Advanced Programming Modules
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.
Prerequisites: 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.
Prerequisites: OOP (must know Java)
Duration: 20 sessions – each session 2 hours.
Embedded Systems

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.
Prerequisites: Algorithms & Data Structures (must know C)
Duration: 40 sessions – each session 2 hours.
II) Electronics Engineering
This Program strengthens the fundamental knowledge required for electronics manufacturing. It is suitable for students/graduates of Electronics & Communication (ECE) or Electrical & Electronics Engineering (EEE).

Core Electronics
This is the most fundamental module. You will learn about Circuit Theory and Electronic Devices.
Prerequisites: None
Duration: 20 sessions – each session 2 hours.