Ideas for Google Science Fair 2015

Ask questions about projects relating to: computer science or pure mathematics (such as probability, statistics, geometry, etc...).

Moderators: kgudger, bfinio, Moderators

Locked
ishanmitra
Posts: 13
Joined: Tue Jun 04, 2013 9:25 am
Occupation: Student: Computer Sc Hons
Project Question: True 3D Projection by possibly Gas ionisation by lasers.
Project Due Date: 1 or 2 years
Project Status: I am conducting my research

Ideas for Google Science Fair 2015

Post by ishanmitra »

Hello, this is Ishan. As the GSF takes off again, my usual dilemma starts... what should I do? I have heard of this fair since its inception but without getting suitable mentors, I couldn't brainstorm anything new. Last year, I did consult one your experts, but again, due to timing of exams, lack of local mentors, etc., my project didnt work out. Coming to 2015, I'm no longer a school student but a Computer Sc. student but luckily happen to be still under 18! Also thanks to the Idea Springboard page, I found several areas that can be explored... The one that intrigued me was 'Spaghetti Code'... I do know about it and have a thought of how to eliminate it as after several Google searches, I didnt find any good research results... I wish to find a permanent mentor who could help me out throughout this project and suggest some ways to refine the project quality, as I come from a place where Science is mugged for exams, but no Science Fairs are held as such... I have long term plans to do this as this is obviously my last and final chance to GSF especially and ANY sort of help will be appreciated!! Thanks a lot!! :) :) :)
HowardE
Posts: 496
Joined: Thu Nov 20, 2014 1:35 pm
Occupation: Science Buddies content developer
Project Question: N/A
Project Due Date: N/A
Project Status: Not applicable

Re: Ideas for Google Science Fair 2015

Post by HowardE »

Hello Ishan. I'm curious how you might be able to turn spaghetti code into a science fair project. What are you thinking of exploring and what do you hope to demonstrate? Having written code for 30+ years, I've seen quite a bit that would probably fall into that category. In many cases though, the language structure or the processor architecture required that the programmer do whatever that weird, unstructured thing did. One of my favorite examples was in the BASIC interpreter we distributed with the Coleco ADAM (which was an amazing BASIC compared to all others), the developers used some temporary RAM as counters and such during initialization. When the initialization was complete, the values remaining could be used as valid opcodes and executed. It was only a few bytes and wasn't worth reusing, but instead they put it in the middle of some other code and simply let the instructions execute. It seemed weird and rather showy at the time, but it turned out to be a marvelous deterrent to people disassembling the code. You can't disassemble code that hasn't written itself yet. :)

While technically not spaghetti code, it did have the same effect that spaghetti code has. It made the code difficult to debug and understand. Anyone who's been developing software for a long time will have stories like that. You'll see all sorts of spaghettiness in code designed for 8-bit processors that have to treat the code as chunks of 256 byte blocks. You may not be able to jump form one page to another, but you can instead jump to the end of your current page and simply roll into the next and do your jump from there. Or have to do something similar with conditions - do the opposite test and jump around a long absolute jump to move from page to page. So while current literature pooh-poohs ever using a structure like that, if you dug around inside your computer mouse or keyboard and looked at the code, you'd find really good solid code that's written more like spaghetti than you'd imagine.

Howard
ishanmitra
Posts: 13
Joined: Tue Jun 04, 2013 9:25 am
Occupation: Student: Computer Sc Hons
Project Question: True 3D Projection by possibly Gas ionisation by lasers.
Project Due Date: 1 or 2 years
Project Status: I am conducting my research

Re: Ideas for Google Science Fair 2015

Post by ishanmitra »

Hello! Nice to hear from someone.. especially since I made a BIG mistake of posting it in the wrong section!!
As I have mentioned that Spaghetti Code is one of my first thoughts that could be the 'one' because Idea Springboard mentioned it... though I do know that these are just suggestions.

Thing is, I am searching mentors if any, I got a teammate though he's not from my place. So, good ideas havent come to me as such. I know that given a very unique problem, there could be a solution through science. First I wondered why that page would suggest Spaghetti Code, but then I thought about it a bit and I remembered about this huge Python program (on Rubik's Cube) that I saw during Course that I have participated during Spring. I think the LoC was 500 or something... Although Python doesn't use GOTO statements as such, I am guessing there were a lot of conditional statements... I didnt even have patience to understand the program! So thing is, big programs tend to be more error prone, things go out of places... and even if that person coded perfectly well, it must have taken some day or two... and everytime one comes back to complete the program, he/she must be going through all the work done so far... Here is where Carbon Footprint is coming... If there is an IDE where the code is broken into blocks (each block can be commented what it does and all) then it will be very convinient for the programmer and he/she will take less time to figure it out, thus reducing Carbon Footprint

Now that was my idea for my science project (although I dont know whether it would be THAT revolutionary) ... My friend on the other hand recommended me about Traffic Congestion which is quite a common thing in highly populated cities... But that's a different topic altogether... What do you think of my above proposal anyway?

I will provide a link to the project I was mentioning also: http://www.codeskulptor.org/#demos-Rubik.py

Even I felt that this would not be quite a viable project, but then we can always find more ideas right? :)
HowardE
Posts: 496
Joined: Thu Nov 20, 2014 1:35 pm
Occupation: Science Buddies content developer
Project Question: N/A
Project Due Date: N/A
Project Status: Not applicable

Re: Ideas for Google Science Fair 2015

Post by HowardE »

I think you'd be stretching things if you started classifying code as 'spaghetti' because it has a lot of conditionals. I think everyone agrees that code with an extremely difficult flow structure would qualify for that, and overuse of gotos jumping every which way is a good indication as well. As a general rule, it's not necessarily bad form to use goto to restart a loop, head to the bottom to exit a function or skip short distances, preferably forward. It's sort of taboo to goto a location off the current screen or printed page unless it's one of those accepted locations (such as the bottom/exit of a function). Now that we mostly program in languages with lots of procedures and function calls, you really don't see many gotos any more. I'm not quite sure i followed what you were saying about carbon footprint though. Are you suggesting that programmers trying to write and maintain spaghetti code use up more resources and somehow add more to the planet's carbon footprint? That would be a very difficult hypothesis to support.

If you're thinking of a programming project, mapping and finding a solution for traffic congestion would interest a lot of people, I'd think.

Howard
ishanmitra
Posts: 13
Joined: Tue Jun 04, 2013 9:25 am
Occupation: Student: Computer Sc Hons
Project Question: True 3D Projection by possibly Gas ionisation by lasers.
Project Due Date: 1 or 2 years
Project Status: I am conducting my research

Re: Ideas for Google Science Fair 2015

Post by ishanmitra »

Yeah, even I think so too, more high level programming languages have lessened spaghettiness in code. My point would have been viable had this been some few computer eras back... Like it would be cumbersome to deal with the complex GOTO statements and this would basically increase the time spent on the computer to figure it... Through my project, the goto statements in the program would have generated a kind of a flowchart so you need not check line numbers every time and basically this would reduce a lot of time spent on computers, thus reducing the footprint... But like you said, the traffic project would be a more viable project...
HowardE
Posts: 496
Joined: Thu Nov 20, 2014 1:35 pm
Occupation: Science Buddies content developer
Project Question: N/A
Project Due Date: N/A
Project Status: Not applicable

Re: Ideas for Google Science Fair 2015

Post by HowardE »

Thankfully we moved away from line numbers years ago. At least GOTOs in modern languages let you put in labels and not line numbers. It was always a nuisance to number your lines with enough space between each to add in more code as required. But then if you ran out of numbers between lines 110 and 120, you'd have to go back and renumber, and then check all of your GOTOs. It's not a spaghetti code issue as much as your basic nightmare.

Take a look at how you might address traffic congestion with computer modeling and see what you come up with. Best of luck with your project.

Howard
Locked

Return to “Grades 9-12: Math and Computer Science”