Tools for Programming in MOOC Context

M.Tech R&D Report

Submitted in partial fulfillment of the requirements for the degree of

Master of Technology in Computer Science and Engineering Department

by Saket Kumar-133050047

under the guidance of Prof. Deepak B Phatak

Indian Institute of Technology, Bombay Acknowledgement

I wish to express my sincere thanks to Prof. Deepak B Phatak,Professor, Department of Computer Science and Engineering, Indian Institue of Tech- nology, Bombay, for such a wonderful guidance throughout the R&D dura- tion.

I also thanks to all those who directly or indirectly have lent their helping hands during the R&D.

Saket Kumar Roll No. - 133050047 Abstract

A massive open online course (MOOC) is a free Web-based distance learning program that is designed for the participation of large numbers of geograph- ically dispersed students. A MOOC may be patterned on a college or university course or may be less structured. Although MOOCs don’t always offer academic cred- its, they provide education that may enable certification, employment or further studies. In my R&D, I am looking here for a (basicaly & c++), which has simple IDE and easy to use for beginners. Also compiler should run on both windows and linux platform in course CS101X of MOOC. Chapter 1

Introduction

In the CS101X, students learn basics of programming. Most of the students have no knowledge of programming and programming language. There were many programming languages which emerged from the first generation of computers. Many of them are not sufficient to bear the load of todays computing environment, but there are some which kept them- selves out from the crowd. C and C++ are one of them. C/C++ are powerful programming languages and every new programmer should have to aware of them because these two programming languages provides the base for other programming languages. Beside this, These programming language are widely used even by the proficient programmers to interact with hardware. Efficiency of any programmer and programming language is always some how depends on pro- gramming environment and compiler or ide being used at the time of pro- gramming. New programmers always finds difficulty in selection of c/c++ compiler or ide which provides them an user friendly programming environ- ment. so here our goal is to find a C,C++ compiler which has very simple IDE and where a beginner can easily understand the controls. As we know MOOC is mobile learning program, student do there codding at home and most of them uses Windows or Linux based OS, so compiler should work on Windows and Linux Both.

2 Chapter 2

Compilers for C & C++

I searched Some popular on Internet and here I am giving a brief detail on some of them. Compiler OS license VC++ Windows Proprietary Windows/Unix-based GPL Qt Creator/SDK Windows/Unix-based BSD-like Eclipse/CDT Windows/Unix-based Proprietary C++ Builder Windows/Unix-based/OS X,iOS Proprietary Clang Windows/Unix-based BSD-like Cygwin Windows/Unix-based Freeware

2.1 VC++

As of VC++ 2010 is starting to support some C++11 features. Has pretty decent code generation, a debugger quite a few people think is the best you can get, and an IDE that produces rather mixed reviews. Many who’ve used them consider older generations of the IDE (VC++5 and 6) better in at least some ways, but the compiler has improved so much since then that the older IDEs really aren’t an option for most people (except to support ancient code) and also its not open source.

3 2.2 Cygwin

This is also based on gcc, but instead of the compiler to Windows, they ported Linux to Windows, and run the compiler on the ported Linux. Obviously I’m exaggerating (a little) but not a whole lot – Cygwin is mostly to run Linux/Unix code on Windows with as few alterations as possible. The tools they ship fit that as well – it’s doing its best to be a Unix-like environment that runs under the Windows kernel. It definitely would not be my first choice for any new development.

2.3 Qt Creator/SDK

This is another packaging of gcc, but with an IDE. If you want to write code using Qt it might well be one’s first choice. Otherwise, I’d probably avoid it – while it probably can work fine otherwise, it’s written assuming Qt as the default.

2.4 Eclipse/CDT

One can find this packaged with a copy of g++ as well. In earlier versions, it needed quite a bit of work on the configuration before one could even get it to compile correctly. If someone uses Eclipse for other purposes, getting it to do C++ is probably worthwhile. Otherwise, I’d personally avoid it.

2.5 C++ Builder

In the Borland days, this was the biggest challenger to Microsoft’s dominance. Embarcadero seems to be trying to get it back in the mainstream again. The emphasis here seems to be much more on the IDE, GUI toolkit, etc., than the compiler proper. The compiler itself seems to be somewhat behind gcc and/or VC++. The starter edition costs Rs 9000 and need to spend most of your money on an upgrade to the Professional edition.

4 2.6 Clang

The most recently started of the major compilers, but really working at being one of the best. Has some of the best diagnostics of any compiler available. Targets LLVM, which gives it quite a variety of tools for run-time analysis and such. Its major corporate sponsor is Apple. On Windows, this a bit like buying a muscle car from a junk yard. With enough work, you may end up with the coolest car in town – but on Windows it’s currently more a project than a tool.

2.7 MinGW

STL’s current package features gcc 4.7.0, which (at least arguably) has some- what better C++11 support than VC++. It includes quite a few ported Unix/Linux tools, but is basically a command line-only environment. If you want something like an IDE, you’ll have to install/configure it separately.

A few more to generally avoid:

1. Any version of VC++ before about 2008. Simply inferior implementa- tion of C++.

2. Any version of g++ before 4.x. Again, inferior implementation of C++.

3. djgpp: pretty much the worst of the worst. This really targets MS- DOS with a (custom) DOS extender. An ancient version of gcc rounds out the awfulness.

4. OpenWatcom: also primarily targets MS-DOS. It uses a DOS exten- der that’s better than djgpp’s, but that’s pretty much damning with faint praise. The compiler isn’t really even very close to conforming with C++98; C++11 updates strike me as unlikely to come soon (if ever).

5. Digital Mars: Walter Bright now works mostly on his own D lan- guage. Though a C++ compiler is still available, the C++ it compiles is fairly obsolete.

5 Chapter 3

Mingw

So finally I found a new version of minGW that is MinGW Developer Studio, which is an open source and freeware compiler. Here is some detail about it:

Key features

• MingW Developer Studio is one of the integrated development (IDE) applications available on the Net. It uses the programming language C and C++ and this kind of software usually includes a text editor, a version management system a debugger and other tools as well.

• MingW Developer Studios handling will not be difficult for those who are used to work with MS Visual C + +. Indeed, MingW Developer Studios design and functions are the same as the MicroSoft one. So, you will get familiar with at the first use.

• since it has multiple purposes, MingW Developer Studio comes with various interfaces which users can switch from one to another according to the current task. It also includes project management, code folding, debugging tool, code help integration and more.

System requirements

: Windows 95, Windows 98, Windows Me, Win- dows 2000, Windows XP, Linux and FreeBSD.

• Required drive space: 363 kb in Windows

6 Installation

Download installation files from http://koti.mbnet.fi/vaultec/browser.php?f=./files/miscellaneous/mingwstudio. Windows version

Setup MinGW Developer Studio If you got a self-extracting setup file , just run the executable. If you got a zip file , extract it to a directory (like c:\MinGWStudio)

Tell MinGW Developer Studio where your MinGW compiler is. If you got the full version(Integrated MinGW compiler) you can skip this step. - Run MinGW Developer Studio. - Go to menu ”Edit” and select ”Options” - Select ”Compiler” tab and enter or browse your MinGW directory. (This directory is MinGW root directory not MinGW bin directory like c:\MinGW not c:\MinGW\bin).

Note that if you got a full version and you have installed MinGW Developer Studio before you may have to tell MinGW Developer Studio for your new MinGW path if you would like to use MinGW Compiler that comes with MinGW Developer Studio.

Linux and FreeBSD version

Unpack the package -devstudio OS-yyy..gz in a location that you would like to keep MinGW Studio.

7 Snapshot

8 References

[1] WIKI, "http://en.wikipedia.org/wiki/List_of_compilers"

[2] Stack Overflow, "http://stackoverflow.com/questions/6632456/ how-do-i-install-both-mingw32-and-mingw64-on-linux-or-macos"

[3] UBUNTU, "http://ubuntuforums.org/showthread.php?t=993293"

[4] CPLUSPLUS, "http://www.cplusplus.com/forum/beginner/29836/ "

[5] Installation, "https://community.openvpn.net/openvpn/wiki/ InstallingMingwW64"

9