Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, 16 February 2016

What is Code Modernization?

Modern high performance computers are built with a combination of resources including: multi-core processors, many core processors, large caches, high speed memory, high bandwidth inter-processor communications fabric, and high speed I/O capabilities. High performance software needs to be designed to take full advantage of these wealth of resources. Whether re-architecting and/or tuning existing applications for maximum performance or architecting new applications for existing or future machines, it is critical to be aware of the interplay between programming models and the efficient use of these resources. Consider this a starting point for information regarding Code Modernization. When it comes to performance, your code matters!

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

Some scientists say time moves forward at a constant rate. The clever ones argue that everything changes near the speed of light. But none of this explains the increasing rate of change in the world of tech. It keeps accelerating a bit more every time you look.

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

The film follows the story of programming prodigy and information activist Aaron Swartz. From Swartz's help in the development of the basic internet protocol RSS to his co-founding of Reddit, his fingerprints are all over the internet. But it was Swartz's groundbreaking work in social justice and political organizing combined with his aggressive approach to information access that ensnared him in a two-year legal nightmare. It was a battle that ended with the taking of his own life at the age of 26. Aaron's story touched a nerve with people far beyond the online communities in which he was a celebrity. This film is a personal story about what we lose when we are tone deaf about technology and its relationship to our civil liberties.

View it

Wednesday, 20 January 2016

Microsoft Turns a Minecraft Mod Into an Education Business

Teachers in thousands of schools in dozens of countries use the video game Minecraft to teach subjects from math to English to computer programming through MinecraftEdu. They use a modified version of the game first made in 2011 by an independent group of teachers and computer programmers. Microsoft is validating their work by turning MinecraftEdu into the centerpiece of its own business plans for Minecraft as an educational tool. But MinecraftEdu's creators aren't coming along for the ride.

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

The best way to learn to program is through trial and error by working on projects that interest you. There's no substitute for solving problems mostly on your own, and for seeking out help only when necessary. The DIY approach makes concepts real and memorable because you've implemented them, rather than reading material that may be forgotten.

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

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

A first step toward programming 21st-century applications

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.

Read the full article

Monday, 23 July 2012

Alice -- An educational software that teaches programming in a 3D environment

Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience.

Visit the website

Monday, 19 March 2012

Programming Methodology Lectures by Professor Mehran Sahami, Stanford CS Dept.

Programming Methodology (CS106A) is an Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Uses the Java programming language. Emphasis is on good programming style and the built-in facilities of the Java language. This is a series 26 lectures of about 50 minutes each. Watch them

Tuesday, 7 February 2012

12 essential programming tools for the mobile Web

When programming apps for mobile devices, choice becomes dilemma. Do you target the iPhone market at the expense of Android's rising tide? Do you go native or write code to the mobile Web? Sure, a single stack of code that performs optimally on a variety of platforms and form factors would be the dream, but the reality is a fragmented mobile market in which rudimentary programming tasks can be a challenge. Thankfully, a talented crop of developers are building worthwhile mobile tools and libraries to aid mobile developers -- especially those who are targeting the mobile Web. Here are a dozen eye-catching projects that ease the pain of developing apps for the mobile Web.

Watch the slideshow and know the tools

Friday, 6 January 2012

10 programming habits that should be more common

You learn lots of things when you go to college and get a computer science degree or read a how-to-program book. Unfortunately, a number of good programming habits are either untaught or take a good amount of practice to turn into a way of life. Here are 10 such habits you should cultivate to become a better programmer.

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