The Crow team recently concluded a four-day workshop series, Methodology Workshop for Natural Language Programming. The workshops, led by Crow researcher and software developer Mark Fullmer, were designed to equip our team members with the fundamental coding and programming skills needed to construct our own programs and troubleshoot problems we encounter in existing scripts. By obtaining a functional knowledge of programming, we can meet our goals to make Crow sustainable and increase team member contribution to corpus- and interface-building tasks. At the end of the week, we expected all Crow members to (1) build a working vocabulary of coding terms; (2) progress past the introductory threshold of programming; and (3) better understand and articulate programming challenges we encounter as we integrate our corpus and repository.
To maximize our learning and productivity during the rest of the week, Mark led the Crow team in an assessment of our current programming skills, identifying what threshold of competency each person wished to achieve by the conclusion of the workshops, and establishing a framework for researchers to form their own personal learning objectives. Mark gave us a checklist of coding tasks to measure against our current programing knowledge and help us compare our progress against a list of definable expectations. Talking over the tasks we were already performing in Crow revealed the varying levels of coding experience among team members, and Mark encouraged us to pick and choose workshops that we would find most useful. During our brainstorming, we created a running document listing the different aspects of programming we found most difficult and specific problems we had encountered. Crow researchers continually updated this document and others throughout the workshop, and we’ll be sharing them soon.
After evaluating our programming competence and articulating our short and long-term goals for the workshops, Mark gave us a preview of the week’s work. The three mantras for the rest of the week were: (1) text processing is recursive and will almost always require future modification; (2) code is an inherently disposable entity that we use to accomplish a specific task; (3) if it isn’t documented, then it doesn’t exist in code.
Participation by our collaborators at Arizona was facilitated by Google Hangouts on Air, a fabulous tool which also records videos of the workshops we can review, edit, and post online.
Over the next month or so, we’ll offer a series of posts which recap the workshop and help us think about ways to develop it into a resource which the Crow community can use as we work together to build the Crow web interface.