Unfortunately, Eclipse encountered problems when I tried to complete an installation unrelated to JFLAP last night, and I had to reinstall Eclipse on my laptop. I didn't realize until I tried to update the JFLAP project with the shared repository version that I needed to reinstall the SVN plugin I was using! It took several tries and a little assistance from Julian, due to a few details I had forgotten, but it's back up and running, thankfully. I spent the later morning and earlier afternoon reading up on Swing online as a refresher, concentrating on JTable since that will be most useful for building parse tables specifically and for other uses once we're working on the GUI.
Since Ian and I weren't sure what direction to take with the sets/languages now that we've done the basic set operations/properties and a string generator, I emailed Professor Rodger so we could discuss how to proceed. She met with us in the afternoon and discussed more specifically what other features we should implement and what we should keep in mind in terms of visualizations in the future, which was very helpful in providing some ideas on what to work on next. I've started working on finite vs infinite sets, and am thinking about how to represent and perform operations with infinite sets...
previous day | next day | return to calendar
I continued working on finite and infinite sets, and also refactored some of the set and language operations methods in the morning. I've created an abstract JFLAPSet class (since Set and AbstractSet wouldn't really be optimal names...) that both FiniteSet and InfiniteSet subclass, but it's hard to conceptualize all the differences in their implementations at this stage. FiniteSet is fairly straightforward, but I'll definitely need to go back and look at InfiniteSet some more, hopefully after a day or two when I can re-approach it with a clear mind and fresh perspective. I finished up reviewing JTables with some test coding with basic applications to CYK Parse Table, then decided to work on an "exponent" feature. Essentially, it would be useful and interesting to be able to generate languages like a
previous day | next day | return to calendar
I spent most of today continuing to work on the "exponent" feature. I keep wondering if there's a better name for it, although I honestly don't remember ever reading one either from class or on the Internet, because it's not quite an exponent in the mathematical sense... Anyway, I've created a separate class that essentially concatenates multiple exponentiated symbols together, and also tracks the unique symbols being used to ensure that for languages like a
During lunch, we had a presentation from Professor Raluca Gordon for this week's undergraduate research lunch series. Her research concerns bioinformatics and biostatistics, and she's actually affiliated with four departments at Duke, including the Institute for Genome Sciences & Policy and the Department of Biostatistics and Bioinformatics in addition to Computer Science. Professor Gordon's talk was about methods for detecting patterns in genomic data; not all genes are expressed in the same cell or used to make protein, so computational modeling is used to find particular patterns. Although some of the algorithmic approaches that she discussed seem pretty interesting, my biology background is limited so this talk wasn't quite as intellectually appealing to me personally, even though I could easily see why the topic would be of larger interest.
Julian also talked to me and Ian about the GUI side of things this morning, and once he's done developing the interface, we'll be doing a lot of refactoring to map the model to a modified version of the previous interface. We'll probably be working on this for the end of this week and into next week, and even though Swing itself can be quite frustrating, I admit I'm pretty excited to work more with the JFLAP view and user interface.
previous day | next day | return to calendar
This morning, I read up on more Swing as well as the java.awt package and experimented with my own basic code to learn more about visualization in Java, specifically for Venn diagrams for the set theory. While simply drawing shapes is relatively straightforward, it'll definitely be much trickier to track things like the areas of intersection, where exactly labels can be positioned, etc. This is certainly something to think about from many perspectives, although I don't expect to be doing any real coding on this until the Model is fully developed and the new framework for the GUI is in place.
Professor Rodger met with us early this afternoon to look over what we've been doing and to provide more details on various projects that we should work on next. In addition to sets as applied to languages, the new set theory aspect should also support more general numerical sets, including special sets like Fibonacci, prime, positive even or odd integers, etc. I've started developing a common interface for this and implementing methods in subclasses (we decided that there should be some predefined number sets like those mentioned above, so I've created an abstract superclass with general set or property methods that each one should implement). This should overall be fairly straightforward, but I think it'll be interesting to have a new tool in JFLAP.
previous day | next day | return to calendar
I continued working on the number sets today, which included a fair amount of refactoring. Previously I had separate methods for generateFirstNumbers() and generateMoreNumbers(), where the first method would be called the first time any numbers were being added to a new set, and the second method for any subsequent calls to add additional numbers. This seemed somewhat duplicate and also rather confusing to use, and after I'd pulled out a couple of special cases to just have one number-generating-and-adding method, I'm honestly not sure why I initially thought splitting them up in the first place would have any utility. I spent pretty much the rest of the day developing and testing additional subclasses and thinking about a few cases like whether even and odd numbers should include negative numbers. Fibonacci set is also a special case because of the repeated 1 in the sequence 1, 1, 2, 3... I think it's best to just make it a set to be consistent with the data structures used elsewhere, but I decided to check with Professor Rodger just in case.