programming


IEEEXtreme 13.0: Registration is open!

IEEEXtreme 13.0: Registration is open!

Dear student,
Registration for the IEEEXtreme Programming Competition is now open!

What is the IEEEXtreme?

IEEEXtreme is a global challenge in which teams of IEEE Student members – advised and proctored by an IEEE member, and often supported by an IEEE Student Branch – compete in a 24-hour time span against each other to solve a set of programming problems.

Who can compete?

Teams of up to three collegiate students who are current IEEE student members.
There is no limit for local colleges and universities as they can form multiple teams.

What could I win?

  • Fame: Unlimited bragging rights and an item for your resume.
  • Fortune: Among other great prizes, the Grand Prize is a trip to the IEEE conference of your choice, anywhere in the world.

All active participants in the competition will receive a digital certificate and a digital gift bundle.

How about the date and time?

IEEEXtreme 13.0 will take place on October 19, 2019. It will start on 00:00 UTC for all contestants around the globe and it will end 24 hours later.

Since it is a global competition, where is the location?

As IEEEXtreme is a virtual online competition, a physical location, or venue, must be identified for participants to use during the 24-hour competition.

Venues can be in an IEEE Student Branch office, a college lab, or another location on campus. It must be a place that participants can use for the 24 hours during the competition, it should be equipped with at least one computer, and some type of connection to the internet must be provided.

I’ve heard the contest is pretty difficult. I’m in my first year of university and don’t think I’m good enough. Should I participate?

Yes. The competition is all about the experience. IEEEXtreme is a lot of fun, and will help you face real-world problems that you may not see during college. Furthermore, the competition includes questions from various difficulties, from easy/novice to expert levels.

Get your team together early and register today. Together you can prepare for the competition by visiting our Practice Community.

In 2018 the IEEEXtreme hosted 9,500 participants from 76 countries!
Represent your school and your country in this year’s competition. Help us break the 10,000 participants benchmark and

REGISTER NOW!

Good luck!
The IEEEXtreme Team

For more information and to connect with the IEEEXtreme Team visit:

 Void where prohibited. Those residing in OFAC-embargoed countries may compete, but are not eligible for monetary awards.

Information on the upcoming IEEEXtreme programming competition

Wile E Coyote and Roadrunner – Demonstrating programming bugs

An interesting way to demonstrate a common bug that arises by the wrong use of a simple do while loop instead of the while do loop.

An interesting way to demonstrate a common bug that arises by the wrong use of a simple do while loop instead of the while do loop. In this case, Wile E Coyote first runs and then decides to check if he met an edge causing him to fall into the cliff. On the other hand the Roadrunner first checks if there is an edge before running and this way avoid making the same mistake.

In this case, Wile E Coyote first runs and then decides to check if he met an edge causing him to fall into the cliff. On the other hand the Roadrunner first checks if there is an edge before running and this way avoid making the same mistake.


IEEEXtreme 11.0 Programming Competition


IEEEXtreme is a global challenge in which teams of IEEE Student members – advised and proctored by an IEEE member, and often supported by an IEEE Student Branch – compete in a 24-hour time span against each other to solve a set of programming problems.

IEEEXtreme 11.0 will take place on
14 October 2017 00:00:00 UTC.

Teams can be composed of up to three collegiate students who are current IEEE student members.

Prizes:

  1. Fame: Unlimited bragging rights and an item for your resume.
  2. Fortune: The Grand Prize is a trip to the IEEE conference of your choice, anywhere in the world.


Ubuntu: How to compile STAN SPG Planning System (http://planning.cis.strath.ac.uk/STAN/) on Ubuntu 11.10

Recently we tried to compile the STAN SPG Planning System (http://planning.cis.strath.ac.uk/STAN/) under Ubuntu 11.10  Oneiric Ocelot which ended up in a failure.

After reviewing the source code of version 3 (http://planning.cis.strath.ac.uk/code/) we found out that there were many changes needed to be done that had to do with the age of the code itself. We believe that with an OS from1999 and the repsective g++ libraries there should be no problem compiling this application but who has one anyway ? (From the README file: “The code has been built and tested using Linux and UNIX (SunOS) with the g++ compiler.” )

Solution:

We realized that most of the errors are pretty much the same ones and had to do with C++ syntax. Following a synopsis of the changes we did:

    • Replaced
      #include <stream.h>

      with

      #include <iostream>
      using namespace std;

      Note on this, be sure to put using namespace std; after the rest of the includes to avoid conflicts and other issues that might arise.

    • Replaced
      #include <stream.h>

      with

      #include <fstream>
    • Replaced
      #include <new.h>

      with

      #include <new>
    • Added
      #include <cstring>
      #include <stdlib.h>

      wherever there was a call for string manipulation like (strcmp(),strlen(),strcpy(),..) or whenever there were commands like exit().

    • Replaced array assignments like:
      exvec = pl.exvec;

      to

      for(int i = 0;i<EXVECSIZE;i++)  {
        exvec[i] = pl.exvec[i];
      };

      The ranges of these arrays we were able to find them from the respective .h files.

    • In the makefile, we changed:
      pddl.yacc.tab.c: alldefs.h pddl.yacc lex.yy.c
          bison pddl.yacc

      to

      pddl.yacc.tab.c: alldefs.h pddl.yacc lex.yy.c
          bison pddl.yacc -o pddl.yacc.tab.c

      Or else the make will fail as it will not find the file pddl.yacc.tab.c.

In the next section you will find all changes we did to the files extensively (Hopefully we did not forget any or mess them up). The format is as follows (the changes do not necessarily imply that all changes should happen at the same place in file):

in <FILE>
line that was changed/deleted
line that was changed/deleted
-
line that was added
line that was added
line that was added
  1. in Makefile
    pddl.yacc.tab.c: alldefs.h pddl.yacc lex.yy.c
    bison pddl.yacc

    pddl.yacc.tab.c: alldefs.h pddl.yacc lex.yy.c
    bison pddl.yacc -o pddl.yacc.tab.c
  2. in BasicTim.h
    #include <stream.h>

    #include <iostream>
    using namespace std; // make sure it goes right after the includes (I believe it affects stdio.h)
  3. in SymTab.cc
    #include <stream.h>

    #include <iostream>
    #include <cstring>
    #include <stdlib.h>
    using namespace std;
  4. in BasicTim.cc
    #include <fstream.h>

    #include <fstream>
  5. in TimInterface.cc
    #include <fstream.h>

    #include <fstream>
  6. in globals.h
    #include <stream.h>
    #include <fstream.h>

    #include <fstream>
    #include <iostream>
    using namespace std;
  7. in stan.h
    #include <stream.h>

    #include <iostream>
    using namespace std;
  8. in facts.h
    #include “stream.h”

    #include <iostream>
    #include <cstring>
    using namespace std;
  9. in facts.cc
    #include <stream.h>

    #include <iostream>
    using namespace std;
  10. in facts.cc
    exvec = pl.exvec;

    for(int i = 0;i<EXVECSIZE;i++) {
    exvec[i] = pl.exvec[i];
    };
  11. in facts.cc
    domination = pl.domination;

    for(int i = 0;i<EXVECSIZE;i++)  {
    domination[i] = pl.domination[i];
    };
  12. in actions.cc
    exvec = pl.exvec;

    for(int i = 0;i<EXVECSIZE;i++)  {
    exvec[i] = pl.exvec[i];
    };
  13. in instantiation.cc
    #include <stream.h>

    #include <iostream>
    using namespace std;
  14. in candidates.h
    #include <stream.h>

    #include <iostream>
    using namespace std;
  15. in main.cc
    #include <stream.h>
    #include <fstream.h>
    #include <new.h>

    #include <iostream>
    #include <fstream>
    #include <new>
    #include <stdlib.h>
    using namespace std;

Soon we will add the modified version of the source code online that should be able to compile by just issuing make stan.