C Programming for 1st year B.Tech students…
It can be taught as a programming language focusing on the syntax of the language. It’s nitty gritty details of language behaviour.
Or it can be taught as a tool to make software, create solutions to problems. Interact with the world with software.
It’s like making a person first learn about a screw driver, everything how much does it weight, what is the length, material, look and feel etc… but nothing about how to use it.
Something on the similar lines is happening with the current approach of teach C Programming to 1st year B.Tech students.
For a software professional domain, learning the first programming language in the broader context, will make him appreciate the language.
First we can create an example to make him save a file, downloaded from the internet.
#include "magic.h"
int main() {
char *contents = getContentsOfURL("https://www.teluguheros.com/MaheshBabu.jpg");
saveContentsToFile(contents, "MyHero.jpg");
return 0;
}
Then introduce them to do something like
#include "magic.h"
int main() {
char *phoneNumber = "9440543210";
sendMessage( phoneNumber, "Hi, how are your doing?" );
sendMessage( phoneNumber, "I am sending this message from my C Program :-)" );
sendMessage( phoneNumber, "Just with one line of code, I can send this msg to you." );
return 0;
}
Once they run these programs. They will get a feel of what these lines of code can do.
Next they could be introduced to different functions, the spaces are added only for readability.
Having simple flow in the way Cocoa Up and running programs is done, we can do the same way.
Slowly create a way to run some good set of code applications that will be useful, and they could commonly use them.
Introduce to the service REST APIs model as well where, they just implement the methods, rest is taken care of by the framework.
The backend code where it has a service and a database, to store the things, in well formatted way.
Making them use SQLite for local permanent storage.
Asking them to implement similar tables in memory to support creation, adding, query and merge options by reading some set of initial values from a file, and dumping the result tables to a file.
// gives you the chance to do manual memory mapping. i.e. Using memory for custom data structures.
Creating games to play in WhatsApp.