Showing posts with label Ahmed Abdelkader. Show all posts
Showing posts with label Ahmed Abdelkader. Show all posts

Friday, March 25, 2011

Innovative Maze Solving with Mathematica

A typical data structures assignment involves using stacks/queues to generate/solve mazes. This is usually performed by variants of BFS or DFS. As many of my students are currently busy with this task, I thought of presenting them a number of nontraditional solutions incorporating a real world example and some advanced techniques.

There has been a series of posts on a this problem on the Wolfram blog attacking the hedge maze at the Blenheim Palace. The solutions presented started with processing the aerial image acquired from Bing Maps, and proceeded to explore a variety of techniques from standard graph theory to a twisted application of topology.

The series progressed as follows:


Hope you find it interesting!

Friday, October 2, 2009

Introducing CubeSat


CubeSat is a 10cm cubic nano-satellite that weights only 1 kg and uses commercial off-the-shelf electronic components. Nano-satellites can be developed in about 1 year at extremely low costs, which creates new possibilities for space missions and business, enabling quick and low-cost demonstration of novel space technologies. Considering these effects, more than 30 universities and research institutes as well as venture businesses are currently pursuing their own CubeSat projects. It is emphasized that it is very important for [space engineering] students to experience the whole cycle of a space project, including mission conceptualization, satellite design, fabrication, ground test and feedbacks of the results, launch and operation.

So, I wish to see some Arabian students working on stuff like that soon. At least, they could build/purchase the device, develop some technology and maybe launch it or keep it in their universities for more such projects. Take Malaysia for example: 5 universities collaborated in developing InnoSat which was launched last April.

We can start by finding interested professors in Arabian universities. Then we can try to collect some capital through the available funding programs. This can be used to buy the required components, but it would be nice if we could build some of them ourselves. Hopefully, this will enable our students to learn the basic skills of space engineering. In case these efforts arrived at good results, maybe this is going to create some business opportunities for space projects in our region.

Space is fun, but this is only one area. The point is, we have to do something
instead of just watching. You have to do something! GO DO SOMETHING!!!

Friday, August 29, 2008

Optimizing the conversion of numbers to strings and vise-versa

Read this interesting article to see how the guys at Mainsoft optimized the conversion of numbers to strings and vise-versa by more than 2.6x. Their goal was to leverage the performance of text-based internet protocol implementations such as XML and HTML.

The article also introduces a valuable comparison to conversion algorithms in .Net. Java. It's a good reminder for all of us to keep looking for improvements and stop taking things for granted. The source code is available too.

Wednesday, April 16, 2008

Nile University: Wireless Intelligent Networks

For the last three days, I've been attending the conference on wireless intelligent networks organized by the Nile University in the Smart Village. The conference was held under the auspices of Dr. Tarek Kamel, the minister of communications and information technology. Ohio State and RICE universities also contributed to the conference. The conference was followed by a WARP workshop, but only a limited number of the attendees was invited.

It was a great initiative from the Nile University to introduce this interesting field to the academic community in Egypt. University students were also invited to get exposed to the ongoing research in wireless networks and get in touch with the world leaders in this technology. You can find all the information you need about the event on the conference website. The conference presentations should be available soon.

The conference was more oriented to EE topics. As a CS undergraduate, I had some difficulty following up with some talks, but it was a good experience after all. I talked to some of the speakers about the role of CS students in this field and here is what I got:

"The middle east is going to become very powerful both using and developing technology. There is going to be a tremendous need for better ideas," said Prof. A. Paulraj. He also mentioned some topics of interest regarding mobile technology including: powerful processes that consumed little power, new architectures that saves power using techniques like clock gating, more user friendly interfaces suitable for dealing with more data, security and clean slate internet.

"You should take your studies very seriously," said Prof. A. El Gamal.

"Go outside traditional education. Think outside the box. Whatever you learn isn't just courses, you should find points of interlinking between the things you learn. Think about the applications of what you study. Think about services and how it can be provided in a systematic and organized manner," said Prof. M. Eltoweissy.

"If you want to make something outstanding in networks, you have to combine the knowledge from both EE and CE. Without understanding the physical layer, your work will be rather theoretical," said Prof. A. Abozeid.

Finally, I would like to mention Prof. Hesham El Gamal and the Nile University students for their efforts in organizing this conference.

Thursday, March 27, 2008

old games, great memories...

Enjoy your trip back in time :) ... start here http://www.bestoldgames.net/eng/

so, what was your favorite game :D ?

Friday, March 21, 2008

Probabilistic Chips

watch this interesting video! i liked the speaker way too much...

do you think it's really important that every calculation you make gives a correct result? of course it is !! but maybe not for all applications, let's see...

for example, if you're making a bank transaction, does it really matter the number of pennies or cents? what about computer simulations? it's already based on probabilistic models, so maybe a little bit of randomness in the results won't hurt too.

still not convinced? think about a DVD player generating many frames per second, if it messed up some pixels in a number of frames, it won't degrade the overall viewing experience, so maybe signal processing and sensor applications can find advantages to that new technologies.

but why should we bother developing new technologies given the undertaken risks in tolerating the incorrect results? that's because this can significantly reduce the power consumption without compromising user experience.

researchers are now developing a new type of transistors called PCMOS or Probabilistic-CMOS that will be available in 5 years, by making hardware a little bit unstable, we can realize the required randomness while significantly reducing the consumed power. actually this topic is very new that i can't find many articles about it, maybe you can check these links about a new embedded system architecture based on PCMOS, and a demo of PCMOS based DSP.


i think that's a very revolutionary approach in chip design, let's see what u think about that...

Tuesday, March 18, 2008

Setup your Symbian C++ Development Environment on WindowsXp

this semester, we're studying Symbian OS Development for mobile phone software, the course started with C++ development using Carbide C++ and will move later to J2ME, we are currently interested in the S60 platform.

preparing for my next lab assignment, i invite you to join me in installing Carbide C++ on my WindowsXp PC, we'll proceed as follows:

1. install ActivePerl-5.6.1 (required to build your projects) (this setup adds some env variables).
2. install S60 SDK for Symbian, i don't recommend beta versions.
3. install JRE (required by the Carbide Eclipse-based IDE).
4. install Carbide C++.
5. for console apps to run, you'll need to add "textshell" in a separate line at the beginning of your "{SDK_PATH}\Epoc32\Data\epoc.ini" file.then open the Carbide C++ and create a new Symbian OS C++ project-> Generic Symbian OS-> Basic Console Application(EXE) build and run. Let's call this first project "Test"

Troubleshooting:

1. when i first tried to run, i got this error "BLDMAKE ERROR: Platform ARMV5 not supported by \Symbian\Carbide\workspace\Test\group\BLD.INF" i found that the BLD.INF file contained the project information specially the platform details, as a windows user you expect that to be: "PRJ_PLATFORMS WINSCW GCCE" i found it was "PRJ_PLATFORMS DEFAULT" u can change it manually but to avoid doing that everytime i found it can be customized in the Carbide under Windows-> Preferences-> Carbide.C++-> Platform Filtering Preferences where i unchecked everything except WINSCW and GCCE.

update: i found later that you can choose not to install the ARMV5 and GCCE in the SDK setup and everything will still work fine for you - as far as we are concerned.

2. Windows Vista users may face other problems but i can't cover everything here, however i can say that the Symbian online community is very active and you should be able to find the solution to ur problem after a simple search, just be patient it may seem difficult at the beginning.

next time we'll go through our first console application! have fun!!!

Wednesday, February 13, 2008

Prallel Multi-Threaded Lock-Free Programming Session

today we had a session by eng.Emad Ali - Software Design Engineer(SDE) at Microsoft Corp. PFX Team, where he first reviewed the multi-threading synchronization objects in C++ and C# and the thread execution model on single-core and multi-core systems,

he then introduced the new synchronization techniques intended to be added to the .Net libraries like SemaphoreLight, Event, Monitor and Parallel.for - which executes independent loop iterations in parallel instead of waiting for each iteration to complete first with support to load balancing between cores too - and showed the advantages of Lock-Free programming in implementing more efficient synchronized data structured like stacks and queue that operate far much better with multiple threads.

he also mentioned the introduction of parallel techniques to LINQ - the Language Integrated Query added to the .Net framework by the end of 2007 that enables you to query any IEnumerable-based information source (arrays, sets...) - which produced PLINQ, in addition to the TPL - Task Parallel Library - which makes it much easier to write managed code that can automatically use multiple processors like Parallel.for, as part of the PFX (Parallel Framework Extensions) development taking place right now.

if you found yourself interested in the subject you can continue with the following links:
Parallel Extensions to the .NET Framework
LINQ: .NET Language-Integrated Query
101 LINQ Samples
Task Parallel Library
Lock-Free Programming (Great)
PFX Team Blog

Computers and Artificial Intelligence at the Bibliotheca Alexandrina with Dr. Ismail Serageldin

yesterday a bunch of engineering students specially from our departement, attended the Computers and Artificial Intelligence three part series at the Bibliotheca Alexandrina. The department was kind enough to give the day off so all the students are able to attend this big event. It was long and rich with information, a lot of history too but i can say this helped to set the base for the thorough discussion introduced by Dr.Ismail.

The sessions outlined the development of computer systems along side the advancements in communications to the age of the internet and the ICT Revolution. A variety of visions were introduced from purely philosophical to purely technical to show the controversy about the definition of intelligence and the idea of creating intelligent machines and whether it's possible or not.

maybe it's suitable to mention the strongest of both sides of this controversy: the Chinese Room Argument that confines any machine intelligence to a set of predefined rules that can only be enlarged which is not real intelligence, opposed by Raymond Kurzweil who says that computers were able to break any borders that have been set before and predicted that computers will be able to defeat the world champion in chess by 1998 and it happened in 1997, 1 year earlier than predicted. there's more on that in the slides, but without the great presentation given by Dr.Ismail.

I added the links for you here, you can get that and more from Dr. Ismail's website.
Computers and Artificial Intelligence, A three part series - Part 1: Where did our computers come from?
Download Presentation
View Presentation
Computers and Artificial Intelligence, A three part series - Part 2: The Search for Artificial Intelligence
Download Presentation
View Presentation
Computers and Artificial Intelligence, A three part series - Part 3: Humans, Robots And The Future
Download Presentation
View Presentation

Saturday, February 2, 2008

Learn about RSS from Common Craft

i've been very amused about these kind of videos, they call it "XYZ in Plain English", which corresponds to our Arabic expression "بالعربى الفصيح", they aim to introduce complex ideas in a very intuitive and story like way guided with pointing fingers and simple sketches, that makes it easy for you to follow up and get the idea, without having to bear with much jargon.

These videos are created by Common Craft and uploaded to YouTube by leelefever, they made many wonderful videos and have some kind of a show too, very creative and inspiring...

one good example that's suitable for our new blog is RSS in Plain English, RSS makes it easy for you to keep track of your favorite blogs and news updates, the video introduces the idea non-technically which isn't enough for you, since it only introduced the illusion of the service,

i prefer you read a little bit more about it on Wikipedia, you can start from here, and to make this discussion more thorough, i have to mention pinging and its implications.

do want to know what an rss feed looks like? click this link to view our blog feed, maybe your browser will suggest registering the feed too, it's a kind of xml that contains some or all the data you need to get, you can view the page source to have a closer look.