Friday, November 12, 2010

A Quarterly Reflection - "It was the best of times, it was the worst of times"

...Not really, it was all the best of times; I just needed a clever title.

Alex here, with a different kind of blog entry.

Week 10 has ended, and we're all getting ready to break for a much needed thanksgiving vacation. Before we go home though, we thought that we'd share with you our reflections and thoughts about our work this quarter. So, here is...

My Reflection:


There has been so much exposure to new technologies and practices for me this quarter, that I cannot possibly lump all of my thoughts into one category. Because of this, I present to you...categories!

The Technical Aspects:

This project has introduced me to a large variety of technical aspects, most of which have to do with the Mac platform and the iOS. I had barely any experience using Macs before, never mind developing on then; I have to admit that I'm now considering making my next laptop a Macbook Pro©®™. Developing solely for and with Apple technology gave me exposure to and knowledge of the following:
  • General- and good- use of the Mac OS.
  • Using iOS devices, such as the iPad.
  • Working with an editor designed for Mac OS and iOS development: Xcode.
  • Developing and working around a set of pre-established usability and style guidelines (iOS has strict 'rules' for these things).
  • Learning and developing with the Objective-C programming language.
  • Developing for the iPhone SDK
  • Hailing Steve Jobs as my new master.
Admittedly, I do still need work on hailing Steve Jobs; Apple has sent me a cease and desist stating that I may not hail Mr. Jobs unless I am wearing all white and shiny things (please don't hurt me, I only joke!).

In all seriousness though, I have learned a great deal. Developing for the iPhone SDK (the software development kit that Apple provides for creating apps for the iPhone, iPod Touch, and iPad) has given me practice in many areas of Software Engineering. These include:
  • Working with high-level class relations in a large, complex software system.
  • Designing and working with appropriate software patterns for our system.
  • Pooling resources to teach myself concepts previously foreign to me.
  • Advanced and extensive use of the MVC and Delegate design patterns.
  • Efficiently sharing information among multiple logic files and GUI files (related to the above).
  • The creation of a real-world requirements document, with requirements that keep in-mind the SDK and framework that was being worked with.
  • Following a complex project time line.
  • Creating and maintaining various documentation relating to specific and generalized portions of development.
The only chance that I have had to practice the skills in this list was in my "361 Software Engineering" course, which is the most basic SE course at RIT. I really enjoyed that course, and working on this project has given me a chance to harness my enjoyment for high-level work and research and gear it towards something that is (in my opinion) a great and worthy project.

The Professional Aspects:

I have also gained a substantial amount of experience working on a large project in a team environment. This has been very valuable to me. As I mentioned previously, the only Software Engineering experience I have had was in my sole class at RIT. Granted, that course did cram a huge amount of knowledge into a ten week quarter; however, I work best in teams, and my major (Computer Science) is not very team-oriented.

The team working on Access Lecture is great; we all have certain strengths and know how to play to them to get things done effectively. It is also great to be able to talk-out ideas with each other, and receive immediate feedback on how they may be improved or how the problem could be approached from a different angle. The result of this so far, has been the development of a series of prototypes that I am confident none of us could have done on our own; That is when you know that you have a good team surrounding you, and I consider myself fortunate.

Additionally, I have been getting some amazing exposure to research practices and what the research part of Computer Science is like. This is very relevant to me, as I have plans to pursue a Masters degree in Computer Science so I can begin to work towards more research-oriented jobs. Then, depending on what life brings my way, I may consider going for the title of Dr. Alex (I'm getting a tad ahead of myself here!). My point being: I am interested in CS research and everything related to it, and my work on Access Lecture has given me a much better understanding of what a research project is like on my field.

Personal Aspects:

The goal of Access Lecture hit more than close to home with me. During my K-12 years, I had consider trouble in math and science courses due to not being able to see the board. This caused me to fall behind, and not excel as much as I could have. I tried current 'solutions' to the problem, but none of them were adequate.

I am nearly certain that if I had been given access to a project such as AL, that I would have been much less discouraged and done much better in certain math and science courses. This makes me even more excited to be working on this project; I have a strong belief that this project has the opportunity to help many students who are in similar situations to mine, and may even help me when all is done!

In Conclusion:

If you're still reading, then I commend you greatly. In exchange your patience, here is a picture of my dog :). His name is Clyde, and he's the best thing in existence; he accepts all challengers of that title.
























Until next quarter...

- Alex

Looking back at the quarter.. that flew by...

It was really a good learning experience, a new platform and awesome team members. Developing application in a completely new language presented its own challenges from simple constructs to a whole new framework! Initially, it was really difficult to get accustomed to the language syntax. Another highlight for me would be the chance to learn more about accessibility feature, its importance and how easily it could be overlooked; even the smallest of a feature like color could make all the difference in better use of the application!

But what is really important is the motive of the application that we are developing. Though the final output is a far away thing at the moment but it would indeed prove to be a good education companion for students who are visually impaired.

This quarter was more of a phase that was devoted to learning a new language and a new platform and accumulating knowledge about the domain and the application. We sure will be able to apply all these in the next quarter as we move towards the actual phase of developing the product. All the team members are really excited with what we have got this quarter and even more excited to get started for the next!

--
Abhishek

Week 10 & Reflection for the Quarter

Hello everyone!

Week 10 is officially over and so ends our first quarter working on the Access Lecture project.  It feels like it went by really fast. Over the past 10 weeks, some of the main tasks we completed were...
  • Conducting interviews and surveys with our focus groups
  • Establishing the applications functional and nonfunctional requirements based off of those responses
  • Familiarizing ourselves with the basics of Objective-C, XCode, and ios development
  • Working on mock-ups of the applications user interface (look at last weeks entry to see pretty pictures)
Looking back at the initial project time line, we are pretty much on par with where we want to be for the start of the next quarter!

For the next quarter, which will encompass December, January, and February, we will be
  • Conducting usability tests with students and follow-up interviews
  • Looking into wireless api's and conducting research to see if we can work with the Mimio api's and datafeed
    • Eventually we (the Access Lecture team, not necessarily the current members) will possibly develop new hardware, but for now we want to focus on the software and so it makes sense to work with the already existing Mimio.
  • Draft the design document
  • And start developing/testing for the initial release...
    • For the initial release we want the iPad to be able to receive transmitted data (the marker strokes) from the mimo, and display that data on it's screen.
What we've done on the project so far has been pretty interesting, and I think that what we have in store for next quarter will be even more exciting to work on.

We will update you guys in a few weeks when classes & work resumes.

-Lindsey

Friday, November 5, 2010

Week 9 - Did you know that an anagram for "insane" is "A Nines"?

Coincidence? I think not! Week 9 has indeed been insane. Any RIT student will tell you how dreaded week 9 really is, but it's been a pretty intense week for Access Lecture as well. The good news is that what follows from the insanity is plenty of information to report on AL. Also, we have pretty pictures for everyone this time around!

As usual, here is a brief summary of what we accomplished this week:
  • Developed prototypes for all of the UIs .
  • Created a set of preferences, including how they will be selected.
  • Created/obtained two sets of icons to represent various program functionality. One of these sets is an outline only version, while the other set is full color. We will offer the option to choose between the sets.
  • Met once more with Chris, and had a great hands-on workshop on UIViews and delegates.
First off, UI development. We have developed user interfaces for the following screens:
  • Home screen (splash screen)
  • Board view (viewing a lecture, past or present)
  • Preferences
  • Saving a lecture
  • Loading a lecture
  • About/Help views
Here are some previews! Note that these are mock-ups only and are not final; They are just meant to demonstrate our concepts and design philosophy!


This is the main core of the app; here you can see whiteboard notes drawn in real-time and select various tools and actions. We currently offer the options to save, write your own notes, select a portion of the screen and save it, invert the colors, and zoom in and out. The "GL View" is where the notes will be drawn. Additionally, there are links to the preferences and home screen in the top right and left corners respectively. Note that this particular screenshot shows the outline mode for icons. There is an additional option for full color icons.

( Icons were modified from a free set at http://pixel-mixer.com/ )








This is the preferences screen. No, we won't really be having cities in California as preferences, that table is just Apple's placeholder. We plan to have the settings selection work by listing all the settings in the table on the left, and have the gray view on the right update with options accordingly. The example shown here shows color mapping.











Finally, here we see our home screen, pretty graphic and all. This is very straight forward.















So, those are a few rough rough rough drafts that we can show off. Our next step is to finalize these views (we have many changes to make), and then to finally make these views functional! We have been working diligently on deciding on proper preferences, methods of preference selection, and view switching. We currently have a dummy-app which simply lets you toggle between three views using a button, which applies the same principle that we will want to use in our actual app.

Next week should prove to be very interesting; things are really getting rolling here!

Until next week...

- Alex