14 Replies - 1655 Views - Last Post: 04 December 2011 - 02:42 AM

#1 odine   User is offline

  • New D.I.C Head

Reputation: -12
  • View blog
  • Posts: 30
  • Joined: 01-December 11

Thesis topic revision

Posted 01 December 2011 - 06:15 AM

Hi guys. Our group already submitted proposals for thesis and so far, 2 thesis topics are semi-approved. The first one is entitled C++ Source Code Animated Simulation using Adobe Flash Player

Here is the description of our proposal:


Computer programmers create programs using various programming languages to help end users perform tasks efficiently and hassle-free. The most important part of a program is its source code, which contains the algorithms that enables the program to yield the necessary result. Programming languages (PL) are used to write a source code and a compiler is used to check that the code is written using the correct syntax for a specific PL.


Our study is focused on one programming language which is C++. Our objective is to help programmers visualize the way their source code is being executed by the computer by generating an animated view of the process of each algorithm in the source code. With this they might be able to detect the logical and run-time errors of their program easily and find an efficient solution for it.


The application involves to two basic steps. First is source code compilation. This process will ensure that the source code has the right syntax in every line for it to execute correctly. This is possible with the use of the C++ compiler. The second is the animation generation. After the source code has been compiled, the application reads every line of the code to detect every possible command execution, whether it is simple or compound. Every declaration, assignment, iteration, incrementation, method call, and such are given an animated version using Adobe flash.


Area of Specialization: Natural Language Processing
Tools / Programming Language to be used: Java and Adobe Flash



But our professor told us to use some sort of algorithm or specify what algorithm we will use. We still don't have an idea about what algorithm we will use. Our professor really demands us to use algorithms in our thesis since we're computer science students.

Computer Generated medical forecast of diabetic patients using natural language generation is the second semi-approved but our professor asked us again for an algorithm to use and we don't have a clue on what to use. She also demands a review of related literature.

Thanks and sorry for being spoiled, asking all the way here. Ideas and suggestions are very much appreciated. hehe

Is This A Good Question/Topic? 0
  • +

Replies To: Thesis topic revision

#2 modi123_1   User is online

  • Suitor #2
  • member icon



Reputation: 15800
  • View blog
  • Posts: 63,301
  • Joined: 12-June 08

Re: Thesis topic revision

Posted 01 December 2011 - 08:51 AM

I'm a little lost here. You have a group of people kicking the can around for an idea on a topic and you pick two that no one in the group has a inkling on? For me it might make more sense to find a topic closer to the knowledge footprint of at least *someone* in the group.

How is "algorithm" defined by your teacher? Is s/he just looking for a super defined set of steps you'll take to accomplish this, or is this something to do with the code itself?
Was This Post Helpful? 1
  • +
  • -

#3 tlhIn`toq   User is offline

  • Xamarin Cert. Dev.
  • member icon

Reputation: 6537
  • View blog
  • Posts: 14,450
  • Joined: 02-June 10

Re: Thesis topic revision

Posted 01 December 2011 - 09:07 AM

Let me see if I have this right...

You submitted a topic for your thesis - With no plan what-so-ever about how to do it?


You do know that "algorithm" is just a word meaning "process plan"?
An algorithm for making a triangle would be:
  • Create three distinct unique points
  • Connect each point with a line


The algorithm for intensifying the color of a bitmap would be
  • Copy the original bitmap to a byte array to preserve the original
  • Increase the value of each byte by x percent
Essentially a loop.

So what was your ROUGH, GENERALIZED plan for taking raw code and creating an animation of how the various classes interact and move data between each other?

Without even discussing the algorithm of how you will analyze someone else's code. Not the thinking part of your application. Just the look. I'm curious about the output. Here are three lines of code with nothing yet created for the "fancy processing".
Tell me: How do you envision the animation for these 3 simple lines?

for (int x = 87; x < PopulatationOfMaine; x += 1413)
{
     LabelProcessing.Text = "Working on data group: " + x.ToString();
     // Do some fancy processing
}





Personal critique on your idea:

Quote

Our objective is to help programmers visualize the way their source code is being executed by the computer by generating an animated view of the process of each algorithm in the source code.

If you have to ask for help coming up with the algorithm under which your application will work, then you have little chance of understanding all the algorithms in someone else's program just by looking at the code and not knowing the intent of the application. One person's program might be to watch 200 sensors on an oil rig and report when conditions are dangerous. Another person's program might be to combine a photo of a person on a greenscreen with a backdrop of Tahiti. To be blunt: You're novices in the computer industry thinking you're going to analyze the code written by professionals who have skill levels far above yours, writing programs hundreds of times more complex than anything you've ever dreamt of. In other words, I think you're biting off far more than you can chew.

Quote

Every declaration, assignment, iteration, incrementation, method call, and such are given an animated version using Adobe flash.
Do you really think it's that easy? Please tell me you weren't thinking:

Quote

There's only x hundred commands in C++ therefore we just have to make an animation for each command.


There is a lot more to a program than just whatever your mind is thinking of as 'algorithms'. What about all the object classes and their passing of data? A point of sale system takes a packet of data (the barcode scanned) sends that to the server and waits for a reply. That reply comes back as an object holding the description, price, extended warranty offer options, legal minimum age to purchase. Then that item becomes a line item on the total sales ticket, which is a list of products. Not much 'algorithm' here, just the moving and storing of data.

Quote

Every declaration, assignment, iteration, incrementation, method call, and such are given an animated version using Adobe flash.

Really? You're going to animate every
int x = 1;


What about?
Automobile myCar = new Automobile(Vehciles.Trucks.Dodge.Ram.2500HD, Color.White, BodyStyle.FourDoor, BedLengths.SixFoot, "VIN: 123456789");
The making of the new Automobile object will then have 100 more animations as every variable, struct, and object within is created.

Oh - And lets not forget about how animations tend to be linear. The go from start to end. Programs don't. If I create a program that is multi-threaded and multi-tasked so it splits a job into 40 threads on each of the 4 cores of my CPU. Each thread in turn is doing a different task simultaneously... How are you going to animate that? Is the screen going to split to 4 quadrants (one for each core), then each quarter of the screen split into 40 more pieces of simultaneous animation for each thread? What resolution do you plan to show this 160 simultaneous window animation on so that it can be at all meaningful?

I'm just wondering if you're really thought this through.
Was This Post Helpful? 2
  • +
  • -

#4 odine   User is offline

  • New D.I.C Head

Reputation: -12
  • View blog
  • Posts: 30
  • Joined: 01-December 11

Re: Thesis topic revision

Posted 02 December 2011 - 03:59 AM

View Postmodi123_1, on 01 December 2011 - 08:51 AM, said:

I'm a little lost here. You have a group of people kicking the can around for an idea on a topic and you pick two that no one in the group has a inkling on? For me it might make more sense to find a topic closer to the knowledge footprint of at least *someone* in the group.

How is "algorithm" defined by your teacher? Is s/he just looking for a super defined set of steps you'll take to accomplish this, or is this something to do with the code itself?


I think she meant for us to use/apply some sort of a famous algorithm like Heuristic algorithm, penn bank etc.

To be honest, our curriculum is still raw or you can say it sucks. Most of our courses focus on the programming languages itself that's why i'm asking here online.


View PosttlhIn`toq, on 01 December 2011 - 09:07 AM, said:

Let me see if I have this right...


I'm just wondering if you're really thought this through.


Honestly, no. We were like 'let's submit some topics and see if any will be approved'.

View PosttlhIn`toq, on 01 December 2011 - 09:07 AM, said:

There is a lot more to a program than just whatever your mind is thinking of as 'algorithms'. What about all the object classes and their passing of data? A point of sale system takes a packet of data (the barcode scanned) sends that to the server and waits for a reply. That reply comes back as an object holding the description, price, extended warranty offer options, legal minimum age to purchase. Then that item becomes a line item on the total sales ticket, which is a list of products. Not much 'algorithm' here, just the moving and storing of data.


We intend our application to animate only simple programs. :(

And by the way, do you know some good resources that we can read that might help us to think of a topic? Thanks guys.
Was This Post Helpful? 0
  • +
  • -

#5 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12769
  • View blog
  • Posts: 45,954
  • Joined: 27-December 08

Re: Thesis topic revision

Posted 02 December 2011 - 07:53 AM

Check out Martyr2's project ideas list. Trust me when I say you will be doing yourself a favor by thinking about projects you and your team members can do. If you can't do it, then don't suggest it. There is nothing worse than jumping into a project well beyond the scope of what you feel you can accomplish.
Was This Post Helpful? 3
  • +
  • -

#6 modi123_1   User is online

  • Suitor #2
  • member icon



Reputation: 15800
  • View blog
  • Posts: 63,301
  • Joined: 12-June 08

Re: Thesis topic revision

Posted 02 December 2011 - 08:14 AM

View Postodine, on 02 December 2011 - 04:59 AM, said:

I think she meant for us to use/apply some sort of a famous algorithm like Heuristic algorithm, penn bank etc.

I would suggest double checking with your teacher. Clarification goes a long way to making sure you hit your target. I am still leaning towards algorithm as in "descrete steps to solving your problem" and not some named series of steps.



View Postodine, on 02 December 2011 - 04:59 AM, said:

To be honest, our curriculum is still raw or you can say it sucks. Most of our courses focus on the programming languages itself that's why i'm asking here online.

This is college, right? Not a tech magnet high school? There's nothing wrong with learning languages in a structured environment.



View Postodine, on 02 December 2011 - 04:59 AM, said:

Honestly, no. We were like 'let's submit some topics and see if any will be approved'.

I would hope it goes with out saying, but I'll say it anyways, this is a pretty poor way of picking a topic. Having done the college bit *AND* the post grad bit *AND* the work place bit I found if no one has a topic in mind (and come on - everyone should have a few lofty ideas in mind tucked away with some idea on how to get there) it's best to talk stock of everyone's skill set and go from there. If you are not able to embark in the unknown then, for the sake of your grade, you might want play it closer to home.

Then again I guess that is what college is for - picking up on these problem areas and over coming. As Dorris Day was famous for saying "Que Sera Sera".

View Postodine, on 02 December 2011 - 04:59 AM, said:

We intend our application to animate only simple programs. :(

And by the way, do you know some good resources that we can read that might help us to think of a topic? Thanks guys.

With out knowing any background on your skills or languages this shouldn't be *too* difficult. Using your language of choice have it scan the plain text source file. Take VB.NET... you can write an app that scans a .VB file looking for key words.

Example:

Dim foo As Int32 = 10
Dim bar As Int32 = 11

If foo = bar Then
Console.WriteLine("equal!")
Else
Console.WriteLine("not equal!")
End If




Your app generates some sort of visual form.
It then generates a "start" image like a glowing green ball or animated fire. (This is to shows where the program starts).
It reads in the first line and sees the dim... so it draws your declaration image a bit near the fire.. and a line connecting the two.
It reads the second line and sees another dim.. so it draws your declaration image a bit near the other dim... and a line connecting the two.
The next line is an if statement... this generates some sort of forking image... and a line connecting the last dim to this if.
The next line shows a write statement.. that's a fourth image.. but since it's in the middle of an if statement you draw this image near the if, but more elevated.
The else statement says hey - draw the next image a bit below the last one - same distance from the if image..
Draw two lines connecting them.
Then draw your 'program closing image'.. be it a red dot or something like that. Have a line drawn from the to conditional images to this.

Of course things get even MORE complicated when trying to have your app determine other images-to-keywords (even if your conditional portions of your if statements have multiple lines)... but with enough time I think it might be able to work nicely.

Hell.. this might be my afternoon project!
Was This Post Helpful? 3
  • +
  • -

#7 Craig328   User is offline

  • I make this look good
  • member icon

Reputation: 2054
  • View blog
  • Posts: 3,662
  • Joined: 13-January 08

Re: Thesis topic revision

Posted 02 December 2011 - 09:36 AM

When you do settle on a project you can actually perform and you need to rewrite your description, please hand it to someone who can clean it up. For example...

From this:

View Postodine, on 01 December 2011 - 08:15 AM, said:

Computer programmers create programs using various programming languages to help end users perform tasks efficiently and hassle-free. The most important part of a program is its source code, which contains the algorithms that enables the program to yield the necessary result. Programming languages (PL) are used to write a source code and a compiler is used to check that the code is written using the correct syntax for a specific PL.

Our study is focused on one programming language which is C++. Our objective is to help programmers visualize the way their source code is being executed by the computer by generating an animated view of the process of each algorithm in the source code. With this they might be able to detect the logical and run-time errors of their program easily and find an efficient solution for it.

The application involves to two basic steps. First is source code compilation. This process will ensure that the source code has the right syntax in every line for it to execute correctly. This is possible with the use of the C++ compiler. The second is the animation generation. After the source code has been compiled, the application reads every line of the code to detect every possible command execution, whether it is simple or compound. Every declaration, assignment, iteration, incrementation, method call, and such are given an animated version using Adobe flash.

Area of Specialization: Natural Language Processing
Tools / Programming Language to be used: Java and Adobe Flash


To this:

Quote

Computer programmers create programs using various programming languages. Programs automate tasks for end users and operate in an efficient and convenient manner. The most important part of a program is its source code containing algorithms with which the program yields the desired result. Programming languages (PL) are used to write source code. A compiler validates whether the source code uses the correct syntax for a specific PL.

Our study focuses on one programming language: C++. Our objective is to generate an animated view of the process of each algorithm in a source code thereby helping programmers visualize the way their source code is being executed by the computer. With such animated visualization, programmers will discern logical and run-time errors in their program more easily.

The application functions in two steps. Via use of a C++ compiler, step one ensures that the source code possesses the correct syntax so that it executes without error. Step two is the animation generated, via Adobe Flash, representing every command execution, simple or compound (these terms need definition) within the compiled source code.

Area of Specialization: Natural Language Processing
Tools / Programming Language to be used: Java and Adobe Flash


Shorter, no passive voice, more defined...your description needs that.
Was This Post Helpful? 2
  • +
  • -

#8 modi123_1   User is online

  • Suitor #2
  • member icon



Reputation: 15800
  • View blog
  • Posts: 63,301
  • Joined: 12-June 08

Re: Thesis topic revision

Posted 02 December 2011 - 04:01 PM

After poking the problem space this afternoon it turns out with some object in a list, and basic .NET usage, I can get a good facsimile up and going!

A few examples of increasing complexity.. Heh.. damn if statements..

Spoiler

Was This Post Helpful? 3
  • +
  • -

#9 odine   User is offline

  • New D.I.C Head

Reputation: -12
  • View blog
  • Posts: 30
  • Joined: 01-December 11

Re: Thesis topic revision

Posted 02 December 2011 - 08:08 PM

View Postmodi123_1, on 02 December 2011 - 08:14 AM, said:

I would suggest double checking with your teacher. Clarification goes a long way to making sure you hit your target. I am still leaning towards algorithm as in "descrete steps to solving your problem" and not some named series of steps.


My teacher wants some named series of steps to be applied or improved. Anyway I'm taking up computer science so when it comes to theses they really need inclusion of algorithms (yeah named series like genetic algorithm).



Computer Generated medical forecast of diabetic patients using natural language generation, what are your thoughts about this?


And these are some topics that were approved last year.
  • C.A.R.E. Grammar Checker: A Rule based Grammar Checker for Third Grade Students using Penn Treebank Algorithm
  • ENHANCING AI CAPABILITIES BY MERGING DYNAMIC SCRIPTING AND MONTE-CARLO CONTROL
  • WHAT YOU SEARCH IS WHAT YOU GET: A QUERY - BASED AUTOMATIC DOCUMENT SEARCHING USING SEMANTIC SEARCH
  • Solving N-puzzle using Harmony Search Algorithm
  • Binary Heap And Graphs Approach In Solving Sudoku Puzzles Using Modified N-Rook Permutations
  • VIRTUAL VET: A RULE BASED EXPERT SYSTEM FOR DIAGNOSING A DOG’S DISEASE USING RETE ALGORITHM WITH BAYESIAN PROBABILITY EXTENSION


Thanks for your replies, my vision of the problem became clearer. I really appreciate your opinions and suggestions. :D
Was This Post Helpful? 0
  • +
  • -

#10 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12769
  • View blog
  • Posts: 45,954
  • Joined: 27-December 08

Re: Thesis topic revision

Posted 02 December 2011 - 08:12 PM

The better question is what is your opinion of that project? How do you feel about your knowledge of the subject? Can you envision yourself tackling this?

Quote

Anyway I'm taking up computer science so when it comes to theses they really need inclusion of algorithms (yeah named series like genetic algorithm).

Algorithms solve problems. So rather than trying to just plug an algorithm, find a problem and see what algorithms come up in your research.
Was This Post Helpful? 0
  • +
  • -

#11 odine   User is offline

  • New D.I.C Head

Reputation: -12
  • View blog
  • Posts: 30
  • Joined: 01-December 11

Re: Thesis topic revision

Posted 03 December 2011 - 01:35 AM

Can you just suggest algorithms to plug in for our thesi?
Was This Post Helpful? -3
  • +
  • -

#12 modi123_1   User is online

  • Suitor #2
  • member icon



Reputation: 15800
  • View blog
  • Posts: 63,301
  • Joined: 12-June 08

Re: Thesis topic revision

Posted 03 December 2011 - 11:07 AM

Man, that's a third of your assignment! The upfront, critical thinking, bit where your group synthesizes something bodacious out of thick ether! Put your heads together and see what you come up with some research and I wouldn't mind checking out what you came up with after the fact, but I would hate to short circuit your money's worth from college!
Was This Post Helpful? 4
  • +
  • -

#13 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12769
  • View blog
  • Posts: 45,954
  • Joined: 27-December 08

Re: Thesis topic revision

Posted 03 December 2011 - 11:20 AM

This seems amply appropriate:
Posted Image
Was This Post Helpful? 2
  • +
  • -

#14 Craig328   User is offline

  • I make this look good
  • member icon

Reputation: 2054
  • View blog
  • Posts: 3,662
  • Joined: 13-January 08

Re: Thesis topic revision

Posted 03 December 2011 - 01:33 PM

Posted Image
Was This Post Helpful? 3
  • +
  • -

#15 odine   User is offline

  • New D.I.C Head

Reputation: -12
  • View blog
  • Posts: 30
  • Joined: 01-December 11

Re: Thesis topic revision

Posted 04 December 2011 - 02:42 AM

LOL. Sorry about that. I was really tired when I posted that. I'll come up with my own. You can delete this thread know. Thanks for your replies anyway, they really helped a lot. :D
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1