Monday, September 12, 2011

To FCIS'12, Concerning Graduation Projects

السلام عليكم و رحمة الله

A year ago I was there, searching for an idea for the graduation project. I remember that our team was the best team on earth to prepare long lists of GP ideas and topics to search for, but worst one to choose a single idea from them!
The million-ideas-list we made was full of repeated topics like speech recognition, OCR, some mobile applications, some killed-in-research computer vision ideas, ...
I won't list them here, and if you want to take a look you can contact me to send them.

I was VERY interested in only 2 ideas: an online IDE, and something like Teddy (discussed later).
If I was the only member in my team, I would have worked on the Teddy one, that's why it's important to choose team members who have common interests with you.

Before I talk about Teddy, you may want to take a look here, and here, for some useful points, or see this if you want your project to be part of a bigger theme or topic. This post also contains some useful advices.

Now, what is Teddy?
Teddy is a sketch-based 3D modeling software. You can make interesting 3D models just by drawing freeform strokes. See this video demonstrating the idea, or try its applet on your browser.
A newer version of Teddy is SmoothTeddy which added texture painting feature and smoother surfaces construction instead of rough meshes constructed by its ancestor Teddy.

Interesting, right? :)
If you found yourself interested in working on a project similar to Teddy or SmoothTeddy, let me know please.

Tuesday, August 9, 2011

It's not simple anymore!

السلام عليكم و رحمة الله

The game I've mentioned here a years ago has grown up!. Now it supports recursion as I wished, and also some comparison techniques. It has gone really more awesome.
This game was a very useful tool to make someone love programming :D I used it with my younger sister and it worked :D
Here's the new one:
http://armorgames.com/play/6061/light-bot-20
Enjoy!

Wednesday, July 27, 2011

Scientific Computing Department (2/2)

السلام عليكم و رحمة الله 

and here's part 2 of that post, where I'll talk about second term in SC.

Second term courses:

1. Computational Geometry
One of my favorites. The course book was an amaaaazing one.
It talks about some Geometry algorithms and how to implement them, like lines intersections detection, polygon triangulation, Voronoi diagrams, space partitioning, ... etc.
Practical part was the most interesting thing. Here's the package we made at the end of the course.
Mid term exam was optional, the doctor left it up to us to choose whether to take a written exam or to pick a topic from the book and explain it to other students in the department. If they understand what you'll teach them, you take the marks, otherwise, you take nothing :D
Final exam was very easy and -surprisingly- doesn't depend on how much you memorize! سبحان الله !! it was the second time for me to see such an exam in FCIS, after the Data Structures exam.

2. Environmental and Global Changes
I didn't realize how exactly should this course be useful for us until we had reached the mid-terms. At the first weeks, we were solving some equations that model how population increases,  energy balance, and some other environmental topics..
At the end, we were able to model some water pollution problems.. and that wasn't interesting..
Exams were very expected, and the practical part was almost nothing! some Matlab tasks..


3. Distributed Computing
It was supposed to be a distributed computing course, but we ended up with a very weak networks course :S anyway its practical part was the only useful thing. Some MPI, openMP and openCL tasks. It was like an extension to the HPC course of the first term..


4. Theory of Computation
It was all about "prove the proven" :D
I was waiting for this course since I was in the second year! I found a book talking about theory of computations in my brother's stuff and read some chapters in it. In the fourth year, it wasn't as I expected it to be, and that was disappointing for me. Anyway I'm happy that I passed its exam at least..
Practical part was somehow interesting. We implemented a universal Turing machine.
Theory of Computations is a common course between SC and CS.


5. ITI Selected Topic
Mine was Microsoft CRM. I didn't choose it by my own will :D so I didn't like it at all, and considered it as a waste of time..
I think next year they should use a better way to assign students to tracks..


Those were second term courses, I hope these 2 parts summary would help new comers to SC إن شاء الله, or help new 4th year students in deciding for the department.  

Tuesday, July 12, 2011

Nature Paintings

السلام عليكم و رحمة الله

The easiest activity to do while being sick, is to draw .. needs almost no efforts :D

Here're 2 new things I made:



Computational Geometry Package

السلام عليكم و رحمة الله

In the Computational Geometry course, we were required to deliver a package containing some algorithms implementations, like:
- Line intersections tester, with the naive way and sweep line algorithms:

- Convex polygon constructor, also with naive and Graham Hull algorithms:

- Polygon triangulation algorithm:
I liked this one a lot, I made it in the package delivery day morning :D me and Eman used to draw some polygons on my laptop for tracing :D


- and finally, the DCEL (Doubly Connected Edge List) data structure.
I built the data structure itself, tested its functions, and didn't know what to do with it :D so delivered it as it is! 

You can try them from here.

Saturday, July 9, 2011

Scientific Computing Department (1/2)

السلام عليكم و رحمة الله

As an SC graduate, it's time to share what I've learnt from SC, so the new comers to this department can know more about it..
First, I want to mention that we were 27 students in this department, about 12 of us chose it to be their first choice (including me :D)

It's a good thing to be in a small department, we used to study together, help each other, take some decisions regarding cancelling a lecture or an exam (6) :D, anyone understands anything can explain it to others, I felt like it was a small family..

Why SC?
For me, because of Visualization, Mathematical Programming, and Geometry. These courses are SC exclusive.

About first term courses:

1. Scientific Visualization
Was one of the courses I enjoyed studying. It was mainly about how to convert some numeric data to visual scenes so it can be easily understood, and assign colors to some types of data. Like coloring the hot areas in a plane's 3D model with red, and cold areas with blue..
It's practical part is to make a package able to building mesh models from data files and color the model according to the color map you'll make.
Here is a sample of what the package should do :)
The instructor was good, and his final exam was very easy, some MCQ and T/F questions! I remember he gave us some topics to search for and discuss the results with him instead of having a mid-term exam :D

2. High Performance Computing - known as HPC
Dr. Hossam Faheem's course :D the very special course in FCIS :D special in everything .. lectures, concepts, exams, labs, ... everything :D
This course talks about some parallel computing techniques and how to run your code on more than 1 processor in a parallel way.. 
It's practical part was about MPI and openMP, and our final task was to deliver some programs able to make parallel matrix multiplication and parallel LCS finding problem using MPI and openMP..
The final exam was an open-everything exam :D use whatever you can use: books, papers, lecture notes, Google, Wikipedia, ... and the most important thing: your brain :D and start thinking of different ways to solve the questions. 
HPC was a common course between SC and CSys.

3. Mathematical Programming
Do you know Dijkstra, Max-flow,  graph coloring, and connected components algorithms, and some other graph algorithms? then you can enter mathematical programming final exam and have high marks without much studying :D
I didn't like our instructor's lectures, but the practical part was very interesting.
Here's my Graph Editor, the final package for this course.

4. Finite Element Methods
Solve differential equations until death :D 
It's a veryyyy easy course -from my point of view- although I didn't enjoy it a lot, but I liked the different methods used to solve mathematical problems..
No practical for this course. 

5. Simulation and Modelling
Common between SC and CS, talks about how to simulate some real life processes to be able to take some decisions according to the simulation results. Example: Simulate how customers arrive to a barber's shop and how long will they wait in a queue to be served, then decide weather to increase the number of barbers or not ..
It's practical part is to deliver some programs able to simulate some real systems, like banks, supermarkets, etc... and take some decisions to save resources and increase profit..
The instructor was excellent, and so was the mid-term and final exams :D

That was our first term courses in SC. Will talk about second term later إن شاء الله :)

Friday, June 17, 2011

أمنية

السلام عليكم و رحمة الله

من كام يوم لاقيت عندنا 3 كتب من سلسلة تعليمية للأطفال، يعود تاريخ نشرها لـ 1985. أنا فاكرة اني و انا صغيرة كنت بحب أقلب في الكام كتاب دول بالذات عشان الصور و الرسومات كانت بتشدني أوي :] من غير ما أفهم ولا كلمة عشان مكنتش لسة بعرف أقرا أساساً :]
بعدين لما كبرت بقى و بقيت بعرف أقرأ فهمت انهم عن الفيزياء و الكيمياء و الأحياء.
و بعدين لما كبرت شوية و بقيت بفهم كانت أول مرة في حياتي أعرف يعني إيه الخاصية الشعرية، أو البناء الضوئي، و حاجات كدة من الكتب دي.
دي مثلاً صفحة من كتاب الأحياء عن الخلايا  .. بيشرح إزاي كل جزء في الخلية ليه وظيفة مختلفة، و كله بالرسومات :]

اضغط على الصورة للتكبير
الكتب دي كانت مترجمة للعربية في دار نشر في لبنان، المترجم كتب في آخر كل كتاب نبذة تعريفية عن السلسلة، عجبني منها الفقرة دي:
"و مع أننا لم نأل أي جهد في إخراج هذه الكتب على أحسن صورة ممكنة شكلاً و مضموناً، فإن ثمة مشكلات ما فتئت تؤرقنا. أهمها عدم استقرار المصطلح العلمي العربي في الوقت الراهن. بيد أننا ننظر إلى هذه المسألة على أنها مؤقتة و لا بد من زوالها متى مارسنا العلم بلغتنا الأم و أمسينا مجتمعاً منتجاً لا مستهلكاً، و مبدعاً لا تابعاً. على أي حال، سوف نستمر في مواكبة آخر تطورات هذا المجال في طبعاتنا المقبلة بإذن الله."

قعدت أتخيل، لو عندنا كتب عربية زي دي كدة، بتعلم الطفل حاجات مفيدة بطريقة تشده و تبسط له المعلومة، في كل المجالات بقى: حساب و عربي (نحو و تراكيب و شعر و بلاغة و كله) و علوم (بأنواعها) و جغرافيا و هندسة مثلا!
و بقى عندنا جيل أطفال بيقرأ الحاجات دي بدل قصص سوبرمان و لا قصص بوجي و طمطم مثلا D:
ساعتها ممكن يطلع من الجيل ده علماء يبدعوا في العلوم (بلغتنا الأم) زي ما المترجم كان عايز..





Monday, May 16, 2011

بدون عنوان

السلام عليكم و رحمة الله

The best sentence I've read this week:

"If you are honest, people may cheat on you. Be honest anyway…
The good you do today will often be forgotten tomorrow. Do good anyway…
What you spend years to build, someone could destroy overnight. Keep building anyway…
The people you loved may forget about you and let you down. Keep loving them anyway…
Because in the end, it's between you & Allah… It was never between you & them… Anyway…"

and ..

 "فَأَمَّا مَن أَعْطَى وَاتَّقَى ، وَصَدَّقَ بِالْحُسْنَى ، فَسَنُيَسِّرُهُ لِلْيُسْرَى"
سورة الليل

Thursday, April 14, 2011

New Art Work

السلام عليكم و رحمة الله

A new piece is added to my art works. Last 2 drawings took me 3 hours to make :)

Sunday, January 16, 2011

Final Graph Editor

السلام عليكم و رحمة الله

The Graph Editor I mentioned here has grown up :)

Now it supports:
- Finding connected components.
- Graph coloring.
- Applying Ford-Fulkerson algorithm to find maximum flow and minimum-cut.
- Find maximum cardinality matching on a bipartite graph.

You can try it from here.