Talk:Current MS Students

From CSWiki

Jump to: navigation, search

Contents

[edit] Project or thesis prospectus

[edit] What you are planning to accomplish

This project focuses on creating additional utility tools that are not necessary in java. Independent of the language itself. A unified collection of java tools to handle many tedious and basic task that were otherwise not implemented in java. One example would be java doesn't have multimap or the fact that Stack in java extends Vector defeating the purpose of lightweight containers. A Stack is no longer just a "Stack".

    • a feasibility-level description of your operational architecture. The description should be at the level of a UML 2.0 (or see and should include brief descriptions of
      • the major components of the system (both the ones you will write and the platforms, frameworks, and pre-existing components you are planning to use),
      • what their functions will be, and
      • how they are expected to interact.

[edit] Why this is academically interesting and challenging work

  • The intended audience is for any c++ programmer moving to Java that still wants some of the flexibility that c++ has minus garbage management. Also the Java community in general would benefit from this project. Boost is heavy supported in community and some of its subparts are part of tr1 c++ standards.

[edit] Previous work in this area

  • (Project) Discuss the framework(s) or other platform(s) that are relevant to this work, the platforms you will be using, and what you expect to add to these platforms to implement your project. An overview of this information should be presented in your feasibility architecture.
    • If there are platforms that are relevant to your project and you are not using them, explain why not.
    • If you are planning to implement a system that has been implemented elsewhere, discuss how your version will be different or why it is academically interesting to reproduce work that has already been done.
  • (Thesis) Provide an overview of the literature to the extent that you are familiar with it and a list of further readings you intend to examine.

[edit] What you anticipate to be the most difficult challenge(s) you will face

  • One of the most difficult aspect of this work is to decide what is not already in Java standards. Many of the boost stuff such as unordered container is basically the equalivent to HashMap in java.
  • Second difficulity is understanding math!!!
  • Another difficulty is the actual implementation. Although there is no thesis or formula to make , you still have to understand a lot of math background, in which case is one point where I happen not to be so strong at. Take for example boost random library. It has at least 4 different type of generator: mersenee twister, fibonnaci, shuffle output and linear congruential, quaternion numbers, rational numbers (they different from complex because although C++ already has complex numbers in standard, rational numbers
  • Explain how do you plan to overcome this/these challenge/s?

[edit] Your relationship to this work

  • My first encounter with boost is when I started reading articles about smart pointers and decided to use their shared_ptr and scoped_ptr library. I think of them as a semi-auto garbage collection. You still have your choice to decide when to take out the trash (release memory) but you have a janitor cleaning up after you. I also use boost progress and test library to display progress report of how fast certain algorithms are running in addition the use of tuples for holding graph output, and use of any with python to create a python version of whatever I had happened to write in other classes. Boost ublas and linear algebra were used in implementing a simple dead lock avoidance test library.
  • Discuss why given your background this work is interesting to you and why you have chosen to do it. This is a purely personal matter. Feel free to include as much or as little about your own interests and motivations as you feel comfortable sharing.
  • Explain why this is not just more of the same sort of work you have already done or material that is covered in courses.
    • If you are doing a project, describe what you expect to know and what you will be able to do after completing this work that you don't know and can't do now. (Don't forget that CS 491ab already required you to do a significant project on your own.)
    • If you are doing a thesis, discuss how you expect to grow intellectually by doing this work.
Personal tools