Tuesday, 16 February 2016
What is Code Modernization?
Building parallel versions of software can enable applications to run a given data set in less time, run multiple data sets in a fixed amount of time, or run large-scale data sets that are prohibitive with un-optimized software. The success of parallelization is typically quantified by measuring the speedup of the parallel version relative to the serial version. In addition to that comparison, however, it is also useful to compare that speedup relative to the upper limit of the potential speedup. That issue can be addressed using Amdahl's Law and Gustafson's Law.
Good code design takes into consideration several levels of parallelism.
Read the full post
Wednesday, 3 February 2016
9 predictions for the future of programming
If you’re wondering where to place your next development bet, looking five years out can seem like mere guesswork. Anticipating tech’s future is nearly impossible, much less the skills and tools that will be relevant given the impact of innovations to come. But there are inklings that can be gleaned from the tea leaves of today’s tech landscape -- glimmers of the future of programming through the fog.Here we gather a list of projections for programming’s future based on today’s most intriguing evolutions in tech. Not all are guaranteed to come true; not all are even guaranteed to be new. Many are trends that started unfolding several years ago. And if you compare this list to our previous foray into prognostication, you might find a bit of backsliding. Despite this, these predictions offer a solid road map that will help us plan for the future as it unfolds before us, faster and faster.
Prediction No. 1: REST rules IoT -- at first
Prediction No. 2: Binary protocols rise again
Prediction No. 3: Video kills the HTML star
Prediction No. 4: Smartphones will do everything but phone calls
Prediction No. 5: Bigger, better databases will dominate
Prediction No. 6: JavaScript will dominate, but no one will write it
Prediction No. 7: PHP will battle back against Node.js
Prediction No. 8: Everyone will know how to program -- but few will write “real code”
Prediction No. 9: The pointy-haired bosses will be even more insufferable
Read the post
Thursday, 28 January 2016
The Internet's Own Boy: The Story of Aaron Swartz
View it
Wednesday, 20 January 2016
Microsoft Turns a Minecraft Mod Into an Education Business
Now Microsoft is buying the MinecraftEdu franchise.
Microsoft is as excited as the other giants of the technology industry to gain a foothold in schools. Since Minecraft is that rare product considered both potentially educational and fun, the company sees a big opportunity here.
Read the post
Wednesday, 8 July 2015
10 Great Websites For Learning Programming
To do so, you need a foundation, some level of familiarity with the syntax and patterns in whatever programming language or framework you've chosen. Before you can begin making progress on your own, you need some sense of basic programing concepts and the scope of possibilities.
The Web, a labyrinth of code, is full of educational resources that can help you lay that foundation. In many cases, no money is necessary -- free tutorials and help forums abound -- but a bit of cash can accelerate the process and help you achieve the technical competency to exercise your programming abilities on your own terms.
In building up a modest knowledge of Python, Lua, JavaScript, HTML, and CSS, I've experimented with a handful of online programming courses. I can't tell you which is right for you. People learn in different ways and have different needs. But if you look some of the options that follow, perhaps you'll find a few that fit. And if not, new coding resources appear daily, or so it seems.
It's worth making a distinction here between beginner-to-intermediate programming, a level useful to individuals and businesses and attainable through personal inquiry, and advanced programming that requires a solid foundation in mathematics, computer science, or other specialized fields. If you want to create your own browser, programming language, or machine learning system, you'll probably be better off enrolling in a reputable computer science program than trying to cobble the necessary skillset together through online tutorials.
I taught myself BASIC in the 1980s but decided in college that I liked writing for people better than writing for machines. Following the advent of the iPhone, I decided to get back into programming in 2009 using Corona SDK, a Lua-based game development framework. I chose it because it allowed me to write apps that could be built for both iOS and Android devices.
A few years later, I tried a Python course at Marakana, a San Francisco-based training company subsequently bought by Twitter. But it wasn't until I started practicing on a more regular basis with Codecademy and Learn Python the Hard Way that I felt I was making progress.
Since then, I've tried Thinkful, Code School, Coursera, General Assembly's Dash, and Udacity. Treehouse is next on my list. And I have high hopes for CheckiO's Empire of Code, a real-time strategy game based on coding.
What follows are a few of what, in my opinion, are the best educational options out there to reach a moderate level of skill as a programmer. Feel free to tell us about others you'd recommend in the comments section below.
Thomas Claburn has been writing about business and technology since 1996, for publications such as New Architect, PC Computing, InformationWeek, Salon, Wired, and Ziff Davis Smart Business. Before that, he worked in film and television, having earned a not particularly useful ...
See the slideshow
BBC Offers Free Tiny Computers to UK Students
The British Broadcasting Corporation (BBC) is partnering with more than two dozen companies and organizations to provide at least 1 million British school children with a free pocket-sized computer. The device, called the BBC micro:bit, is similar to the Arduino and Raspberry Pi computers used by hobbyists. These small computers have become popular among educators in recent years as a way to teach students about programming.
The BBC micro:bit features a variety of sensors, including an accelerometer for sensing motion and a magnetometer for sensing orientation, two programmable buttons, a microUSB connector, and Bluetooth networking capabilities.
Students will be able to use it as a controller, sensor, or interface for mobile phones, computers, or consumer electronics.
The new device harks back to a similar program run by the BBC in 1981, when it offered the BBC Micro computer as a way to improve computer literacy. The BBC hopes the new BBC micro:bit will help students learn and develop computer skills, and help to build a high-tech workforce. The computers are expected to show up in British schools this October.
Full Story
Wednesday, 24 December 2014
How 'Hour of Code' sparked a movement that could teach 100 million people to code
It's Computer Science Education week, and Code.org wants to get 100 million people to do Hour of Code by the end of the year to raise more awareness about coding education in schools.
Code.org -- along with other organizations like Girls Who Code and Black Girls Code-- has sparked a movement to get more computer science education in schools, and to get more kids writing code.
This week, December 8 to 14, is Computer Science Education Week, and Code.org is pushing for even more awareness than last year with its popular Hour of Code learning event.
The organization's campaign Hour of Code teaches anyone -- from age six to 96 -- the basics of writing a computer program in just one hour by having them code a game. There are many free tutorials in several coding languages, and they're compatible with smartphones, tablets, and computers. The one-hour tutorials are available in more than 30 languages.
Full Story
Tuesday, 24 July 2012
Multitier Programming in Hop
The Web is becoming the richest platform on which to create computer applications. Its power comes from three elements: (1) modern Web browsers enable highly sophisticated GUIs with 3D, multimedia, fancy typesetting, etc.; (2) calling existing services through Web APIs makes it possible to develop sophisticated applications from independently available components; and (3) open data availability allows applications to access a wide set of information that was unreachable or that simply did not exist before. The combination of these three elements has already given birth to revolutionary applications such as Google Maps, radio podcasts, and social networks.
The next step is likely to be incorporating the physical environment into the Web.
The Hop language takes a path, relying on a different idea: incorporating all the required Web-related features into a single language with a single homogeneous development and execution platform, uniformly covering all the aspects of a Web application: client side, server side, communication, and access to third-party resources. Hop embodies and generalizes both HTML and JavaScript functionalities in a Scheme-based3 platform that also provides the user with a fully general algorithmic language. Web services and APIs can be used as easily as standard library functions, whether on the server side or the client side.
Monday, 23 July 2012
Alice -- An educational software that teaches programming in a 3D environment
Monday, 19 March 2012
Programming Methodology Lectures by Professor Mehran Sahami, Stanford CS Dept.
Tuesday, 7 February 2012
12 essential programming tools for the mobile Web
Watch the slideshow and know the tools
Friday, 6 January 2012
10 programming habits that should be more common
1. Learn your source control process
2. Go with obvious variable naming
3. Use interfaces, not classes when possible
4. Assume the worst from your peers
5. Assume the worst from your users
6. Document the reason for a change
7. Explain the purpose of algorithms
8. Provide contextual help
9. Perform cross-platform testing
10. Keep the users in mind
Read the full story