Grad School Retrospective (2)

No Comments »

As I mentioned in my last post, I am taking some time to look back on my time in grad school. A list of course titles and descriptions doesn’t really speak to what I got out of the course, or what I put into it.

4. Application of Artificial Intelligence - This was the first elective course I took in my program. Much of the course time was centered on discussion, and there was a major project of our choice. I continued to focus on natural languages, and whether a machine could “learn” language in the same way a child could.
I had initially wanted to perform some first-hand research with children, but I wasn’t sure about my ability to gather, tag and analyze the amount of data that would be required. As well, I would only be able to observe the children’s output, I would have to infer how they arrived at such input. I decided therefore to focus my attention on accepted linguistic concepts like Universal Grammar and Principles and Parameters. As it turns out, the idea of “teaching” a machine in the same ways as a child was not a novel idea, and it has seen some success. This project was intended to serve as a starting point into more detailed research, for at the time I anticipated my capstone project would be related to natural language processing.

5. System Architecture and Engineering - I had been nervous about this course prior to enrolling in it, but it ended up being one of my favorites in the program. This course was the first to introduce us to Martin Fowler’s book “Patterns of Enterprise Application Architecture”, to which we’d end up referring in several more courses through the program. Immediately, I loved the idea of patterns: identifying possible solutions for common problems, without getting into the specific implementation details. The course clearly contrasted functional and non-functional requirements, and spoke to how different requirements complemented and conflicted with each other. It was for this course that I wrote the Critique of ‘the value of a usability-supporting architectural pattern in software architecture design’ paper. At the time I was working in the Design and Usability/User Experience department at LexisNexis, and as was noted in the paper, often usability is not an initial consideration in architectural decisions. In the few months following my taking this course (and enthusiastically talking about it to everyone who would listen), I was selected as the departmental representative on the newly formed “Architectural Advisory Board” at work. We reviewed new project concepts and identified any architectural implications from the standpoint of the department or organization we were representing. I completed this course heartily acknowledging that “I want to be an architect!”.

6. Project Management of Information Systems - This was the second elective in the program. I will admit that I enrolled primarily because of the instructor, Roger Engle. On the first day of class, every student was asked what they hoped to gain from the class. I was blunt when I stated that my perception was that project managers were really baby-sitters, and I wanted to have a better sense of what they really did. Over the next twelve weeks, I gained a much better appreciation of the role of project manager, and I will admit I even toyed with the idea of PMP certification. I believe that this appreciation has made me a better individual contributor and a better team member.

7. Issues in Database Management - I’ll admit, this was one of the courses I was least looking forward to. I’ve taken database courses before, but I don’t have a particularly strong background in them. This was another case, however, where it was an ability to grasp concepts and strategies that proved to be more important than a background in a specific technology. Indeed, many of my classmates often struggled with the theoretical aspects of the class. “but how do we do this in SQL?” they often asked. We were being introduced to general concepts or best practices, and often my classmates were unable or unwilling to look beyond what they had been exposed to. We looked at object-oriented database models unlike any that current exist in the industry. Because of the lack of immediate applicability, some students resisted even learning about such. In contrast, I held no strong convictions about “how things are” (and therefore, how they are meant to be) so I was more open to the suggestion of different conceptual models.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Grad School Retrospective (1)

2 Comments »

I officially received confirmation yesterday that all my coursework has been approved, and I’ll be graduating with my Masters in Computer Science degree (with a 4.0 GPA) on 05/11/2008. After several years of part-time study, I wanted to reflect on all I’ve learned through the program. Over the next few days, I’ll be posting about my courses and self-directed projects.

1. Analysis of Algorithms - this was my first class in the program, and I was initially concerned about my ability to succeed. Much of the course was intended to build on undergraduate courses in algorithms and discrete math, neither of which I had taken before. I spent the first few weeks trying to establish that foundation so that I could dive into the deeper level we were addressing in the graduate program. Although the course itself was tough, I was able to really understand the message behind the course. Whereas often undergraduate programs (and let’s face it, day to day work) focus on finding a solution to a problem, this course looked at finding an optimal solution (where viable). We learned to recognize certain types of problems to assess the benefits in working to optimize a solution.

2. Communication Strategies for Technical Professionals - It was in this course that I first met Roger Engle, who quickly became one of my favorite instructors of the program. Roger wasn’t teaching a class, he was teaching individuals, and he met with each individual to ensure his individual needs and expectations about the course was met. We did some writing and some presentations. I’m pretty sure that everyone came out of the class more comfortable and confident in his presentation skills, which was fantastic. One of our deliverables for the course was a whitepaper on a subject of our choice. I wrote about machine translation and natural language processing and generation.

While dramatic advances have been made in the area of natural language processing, the complimentary process of natural language generation is still in its infancy stage. The creation of unique, grammatical statements remains a human activity that can not yet be performed by computers in a meaningful way.

My first undergraduate degree was in Combined Languages (French and Spanish) with a minor in Linguistics. I selected this project because I was acutely aware of the challenges humans face in performing translations, and humans are able to “pick up” languages naturally! The idea that we can program a computer to such that it may generate meaningful, grammatically correct statements is quite ambitious. This project was really only scoped to illustrate how computers are not currently able to do perform such tasks.
My “experiment” was to use several online translation tools to translate a body of text to and from another language. We can not gauge how well the system was able to “understand” the input, but it is easy to verify that the output was often nonsensical and not grammatically correct.
One of the most interesting observations was when I translated the text to Russian and back to English. Some of the target text was not translated; in the middle of the Cyrillic output was “to and from following”. However, the original text had been “to and from the following”. Russian doesn’t have articles like English does, so I was really interested in the fact that the articles were dropped even though the fragment itself wasn’t translated. I wasn’t sure if this was simply a quirk of the translation program or if it was a sign of something more.

3. Theory of Computation - this course was incredibly theoretical, and incredibly interesting. Unfortunately, it is no longer offered at Franklin. We looked at computability, complexity and automata theory: what makes a problem easy or hard, what makes it solvable or not, and how we can apply mathematical models to computation. There were a few reasons I really enjoyed this class. One is simply that it was problem-solving. Because we were operating on a theoretical level, there was no way to really assess if our assumptions were right or wrong. Therefore, it was just about determining a plausible solution. Things were rule-based, which reminded me of Optimality Theory from my undergraduate linguistics classes.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

A mid-career crisis?

1 Comment »

After 8 years of various “web-” jobs (from Web Director (Jagged) to Web Designer (Maxim) to Web Master (Youthone) back to Web Designer (Common Sense Solutions) to Web Technician (Franklin University) to Web Developer (LexisNexis) to Senior Web Developer (LexisNexis) and now Senior Developer (Resource Interactive), I’m starting to think about a shift in my daily duties.

My earliest work on the web were all centered around fostering community and facilitating communication. I was a geocities community leader. I volunteered for the Open Directory Project (back when everyone thought human-powered search results were the way to go). I was on livejournal before they required invite codes. I worked for a not-for-profit that provided youth with online support and volunteer opportunities.

I waded through a bachelor of science in digital communication, a computer science certificate, a java 2 certification exam, and am nearly finished with my master of science in computer science degree. I definitely have a technical background. But in the end, I’m a liberal arts girl at heart and I just want to give users a kickass online experience, ensuring they can meet their needs in a way that best suits them.

At LexisNexis, I was in the User Experience team, so we primarily built prototypes and went out to usability testing and kept abreast on trends and best practices for providing an optimal user experience. Even as a developer, I attended weekly design reviews and had the opportunity to contribute to crafting the solution to usability challenges. My last year at LexisNexis, I was sitting on several boards and committees (Architecture Advisory Board, Branding and Identity Committee), and was the key Accessibility Contact. Everything was firmly with the users’ best interest in mind.

I can code. Some would say I do it well :) However, my interests really lay in how information is presented to the user. I’m fascinated by how people use technology to meet certain needs, and how we can best support them in their goals. I am working on that “Rich Internet Accessibility” paper, and the internet has been a great way for me to read up on other opinions, and connect with industry leaders. It’s also helped me to understand the challenges some people face. One article I found on the accessibility of social networks really struck me: one user stated that it was difficult for him to seek out a speaker at a conference to ask further questions, so he preferred to look them up online after the fact. It helped drive home the fact that the internet can really help people with disabilities, if we take the time to consider their needs. (Another great example is the short film “everything I can’t do in the real world, I can do with my Mac“).

In so much as I can contribute to delivering content in an accessible, usable fashion, I will do so. However, I feel as though I want to “move up” in the process, and suggest solutions or approaches, rather than coming in at the Implementation stage. It took me several months to really recognize that I have changed where I fit in the development cycle here at Resource. In the UX group at Lexis, yes, I was coding, but they were prototypes, early in the design phases. Now I work on the final production code, after certain major decisions have already been made.

One of the key reasons Resource is a leading interactive agency is our thought leadership. We do great work, particularly in our Insights phase. Certainly, our implementations are outstanding, but I am really yearning to return back to an ‘ideas’ role, rather than a ’solutions’ one. I have been the only female developer in the company since I was hired, and I can’t help but wonder if that’s somewhat natural: women as nurturers, giving birth to children and ideas and fostering the commuity, and men as providers and problem solvers, delivering on requests and meeting specific needs.

…Hmm.. perhaps that’s not the best thing to post in my technical blog, but I’ll leave it there all the same…

I am going to start doing some light Business Analyst work, with a longerish-term goal of getting into the field of Information Architecture. I think this will be the route I need to step away from specific implementations and focus on common problems (aha, I sense a return to my previous interest in patterns). Ultimately I believe it is the goal of what a site can help a user achieve, and how he feels doing it, that interest me, moreso than the specific details of how.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

More questions than answers

2 Comments »

Ah, the fun part of a research project: when you know just enough to be dangerous…

Trying to figure out the scope for my capstone, I’ve done some reading on WAI-ARIA, which seems to focus on helping making AJAXy-applications accessible via roles and states. However, we really work more with flash and flex at work, and I want to figure out how to push accessibility via those mediums as well. I came across a great resource at niquimerret.com, a girl geek who is passionate about both Flash and Accessibility. Perfect! I read a post she’d made on accessibility “bugs” in flash, and left her a long rambling comment on some of my questions about flash and accessibility. I figured I may as well leave it here as well in the hopes of garnering some additional responses…

One thing I was wondering about, and maybe you can offer some insight: WAI-ARIA mentions using live regions to make AJAX applications accessible. (AJAX live regions allows text to be spoken without giving it focus. This is good in that it means that users can be informed of multiple updates without losing their place within the content.) Is this something that could be coded into the Flash, perhaps at the actionscript level?

My other stumbling point is at which point this would need to be supported… obviously, the flash player would need to understand these roles/states, but is that enough, or would the browser also need to be aware of it? That is.. would flash on FF be “more” accessible than on IE? Or is WAI-ARIA really a browser thing, not a flash thing?

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Capstone time

No Comments »

Graduation is scheduled for May 11, 2008.. now I just have to complete my capstone project and I’ll be the proud holder of a Masters of Computer Science degree.

Up until last trimester, the capstone was like a thesis: the student selected a topic, found an advisor and did self-directed study. They recently changed the format to a more traditional class with an instructor and weekly assignments. I was fortunate enough to be allowed to be grandfathered into the old format.

I’m excited about this because it will afford me the opportunity to do some really indepth research into a topic of my choosing. The challenge? The selection of a topic! From what I understand, this was part of the rationale for the format change: students were having trouble finding a topic. My problem is the opposite: there are several topics I would want to write on!

I’ve mentioned in this blog for quite a while that I wanted to write my capstone on “usability-supporting architectural patterns”. I then started thinking about Accessibility in RIAs. I briefly considered doing some research on the Adobe AIR platform, which would have likely meant porting some existing web applications over to the platform to access their differences. Now, however, the term has started and Accessibility/RIAs it is!

The program chair will be overseeing my work, and while I have the general topic in mind, I’m not entirely sure yet what direction it will go in. I fear 12 weeks will simply not be enough to really touch on everything I want to look into. I suppose this is why academics work in the same field for years and years — one can’t really hope to condense everything into a matter of weeks (or a single document).

Some of my thoughts to incorporate into the scope of the project include:
– definitions of: WCAG, Section 508, ADA, RIA, AJAX
– if/how the guidelines apply to non-traditional web apps
– how to make RIAs accessible
– overview of existing testing tools for web accessibility
– ROI/rationale for caring about accessibility

Possibly: how SEO/Accessibility complement/contrast with each other

When I attended Access U last Spring, one of my key interests was in how to sell accessibility to an organization, and who was responsible for it. At the time, the development team I was working on was well informed in best practices wrt accessibility and compliance testing. However, now that I’ve started to fall into a realm of more rich interactive online experiences, there seems to less knowledge of what it means to be accessible, and in fact, the extent to which it is even possible. Obviously I want to sell it to my organization, but I first need to become informed myself as to what that means.

My long term organizational goal would be to sell accessibility to my company, so my capstone will help me to clarify what accessibility means in this new interactive online space. Once we know the “what” and “where” (and hopefully the “how”), we can identify the “who” (and the “how much”)?

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

since I can’t find a way to incorporate it in my paper…

No Comments »

I’m doing research for a short paper on RPC/SOAP vs REST and came across a great statement. Since I can’t figure out how to actually use it within my paper, I’m capturing it here.. ah, such fine research material…

…the Web Services visionaries imagine sending off a message that launches a cascade of asynchronously-queued long-lived transaction components being orchestrated through a constellation of distributed routers and value-adding agents. So far, this vision is way out there with the Semantic Web in terms of being a practical useful reality, and I’m fairly optimistic that both of them will deliver in their own time, and I’m pretty sure that neither is going to make it to first base without climbing in bed with the other, and furthermore I think that mixing baseball and sexual metaphors is just fine….

(from The SOAP/XML-RPC REST Saga, Chap. 51

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Want to be a computer scientist? Forget maths

2 Comments »

Co-worker and classmate Jonathan sent this article to me yesterday: Want to be a computer scientist? Forget maths and asked what I thought.

Jonathan took a ‘traditional’ computer science undergrad, so I don’t know if he’s aware that I never took discrete math as I went through my program. Did it hinder me at all? There’s not really any way to tell. In one of my java classes, they mentioned Big O Notation once, but I cruised through that one lecture none the worse. Heck, I was thankful not to have had to take math.

Then I got into my grad program and ‘Theory of Computation’ was one of the first courses I took. It also has turned out to be one of my favourites. I really enjoyed the theoretical aspects, the fact there was no definitive ‘right’ answer to the problems we looked at. (To be honest, I think that is why ‘traditional’ math never appealed to me, I’m not a fan of ‘the single best answer’.) What’s sad is that our MSCS program has actually retired the course, replacing this course of theory with the more practical “topics in computer science”: UML, patterns, etc. Who knows, perhaps the belief expressed in this article is more accepted than I would have thought.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Fall coursework..

No Comments »

Just signed up for my fall coursework:

  • COMP 655 - Operating / Distributed Systems
    This course covers the concepts and design of distributed computing systems and distributed application programming. Topics include: the basic concepts of distributed systems (e.g., transparency, heterogeneity, network process communication), CORBA and related OMG technologies, and front-end development tools.
  • COMP 671- Verification and Testing
    This course focuses on the issues of delivering high quality software, especially in large complex systems. Topics covered include testing strategies (black box, white box, regression, etc.), unit testing, system integration, system verification and support tools. It also will reinforce the need for requirements that are testable and traceable from the early design stages.

Then I just have my capstone, and I’ll have completed my degree! The end is in sight!

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us