User Tools

Site Tools


haas:vita2017

Instruction

A common query to me by others is, “So how was your semester/academic year?”, which I find the best response to be (for the past few years): It has simultaneously been the best and worst semester/year ever. The good students keep getting better, and the bottom tier students keep getting worse. Any appreciable middle tier continues to evaporate.

The issue with the poor students is not behavioral, it is with deficiencies in aptitude; they lack: basic writing skills, computer literacy/file management skills, mathematical reasoning skills, reading comprehension, and time management skills, among others. Just a few examples:

  • For the first time, I've had students apprehensive/complaining about a project/process because it required them to utilize the remainder of a division. It was claimed this concept was never taught to them in their prior educational experiences.
  • I witnessed students unable to follow a step-by-step list of directions, both descriptive and in specific steps. On a few occasions I had the “privilege” of sitting next to the student watching them unable to follow from one bullet point to the next.
  • For many students, reading apparently is an outdated trend. A favorite game of mine is to hide important clues in a project that are frequently asked as questions. The frequency of those questions being asked remains unchanged (if it hasn't increased).
    • I've also scored “fake” accolades from many of these same students that, when they ask me questions that I specifically address on project documentation, I will copy/paste or recite the relevant line(s) to them, and they believe I've just given them some secret/special clue.
    • Other times I tell them a direct answer is in the project instructions, and sometimes even point them to a specific page. I had one painfully notable case where a student stared at a page for at least 15 minutes, unable to answer their question. Finally, upon having enough, I pointed to a line they glossed over a couple dozen times. I wish I was making this stuff up.
  • I've seen a student, lacking any sort of file management skills whatsoever, lose a previously completed (and successful) submitted project, and wasted a few hours recreating it poorly so they could use some of the concepts in another task. When I discovered this, I pointed to a file listing on their screen and said “It is right there”.
  • Various “gimmie” tasks I've made as part of beginning-of-semester “getting started” projects are ignored, only to have those avoiding students sheepishly come to me halfway through the semester pleading with me to dig them out of the hole they've admitted they've created by not following instructions from the start.
  • Quite a few, clueless as to a concept presented in class weeks ago, get a handout after extensive struggling. Not 5 minutes later, they plead for help, hitting a wall: it ends up being the EXACT same thing I helped them with 5 minutes ago. I'll tell them this, even pointing out the exact line number where they deployed the solution. They demonstrate an inability to resolve this, let alone having learned anything.
    • I had a couple students where this was a serial offense. This wasn't just a one-time hang-up, it was perpetual. They clearly had not gained anything. Some even expressed embarassment for not remembering, yet they continued to perform the same omission again and again.
    • Some of it can be attributed to sleep deprivation. I had a number of students who were chronically sleep deprived (either due to undisciplined college party/late night gaming lifestyles, or worked a night shift job). But, nothing was ever done to ameliorate the deficiency. They resorted to the age old “memorize/regurgitate/brute force” shallow methodology they had used throughout their educational experiences, wondering why it wasn't working for them now.
  • Students are unable to perform various basic math tasks (isolate the one's place from any given number, obtain the remainder). Some of these individuals are currently taking Calculus II. Very dependent upon the calculator, yet embarassingly are unable to demonstrate conceptual understanding of these simple concepts.
    • I've even taken the time to explain these concepts, for the benefit of the doubt; the next class, these same individuals demonstrate the same deficiencies in knowledge.
    • They do not come in for help (until it is too late), they do not seek out tutoring (until it is too late), and some even seem to think that admitting/claiming “I messed up, I'm sorry” is somehow a panacea from doing actual corrective work.
    • An alarming and increasing trend is that, for a number of students, when they don't understand something, or think it is challenging, will simply try to ignore it and hope the scary thing goes away (despite the fact that the next project builds on the current one, so the “scary” things become even scarier). Nevertheless, the cling to their belief that if they just wait it out, the problem will just vanish.

With that said, the good students are amazing. Just some examples of their impressive feats:

  • after introducing a concept in class, the following class day will come in with a proof-of-concept script or program that they spent some time hacking on to do some specific action of interest (unrelated to any example I covered in class).
  • related to the above, some of the functionality required far deeper evaluation of technical documentation to isolate particular feature sets or capabilities. I've had students reading through system and library call API documentation and being successful in their task.
  • the questions and conversations are delightfully fluent. You can tell they picked up and understood the concept being taught. They are relating it to their own perceptions and experiences, they are playing with it, they are writing sample programs to test the concept.
  • They delve into prior semester content and concepts to help and assist them, revisiting and further mastering material from prior semesters.
  • Many of these good students, while some themselves are tutors, frequently come in for help, and even seek out other tutors to bounce ideas off of. They use the whiteboard, they discuss concepts, they critique implementation approaches. And the brainstorming that goes on is absolutely incredible. Truly inspiring to be around.
  • They not only complete assignments, but they frequently submit them well in advance of the deadline. Any specification-related questions are asked early on in the process (even the first day the assignment is given out), so you know they're prioritizing class work and their education.
  • They will reach for a book or perform a more sophisticated concept search on the internet. They're not interested in answers to copy; they're seeking commentary and examples elucidating a particular idea so they can gain deeper understanding. Sometimes, their questions aren't about the concept, but about how they can more strategically pose their query to isolate and locate better source material.

The widening gap between the bottom and top tiers is concerning. Sometimes I wonder how I can best accommodate everywhere, where on one side I have people who need to be hand-held through computing an average, where on the other I'll have people coming in saying “This concept looked neat, I used it in a program to take a derivative of a number, because it seemed like a fun thing to do.”

Some course-specific points related to instruction:

  • In general:
    • further integration into my data collection and reporting infrastructure. This allowed for convenient class-wide analysis of metrics, as well as per-student access to their data to view course progress.
    • all syllabi for courses taught in a given semester see updating (they are generated from templates integrated into my content management system, so any changes made tends to impact everything).
    • more quantitative/rubrick-oriented data points, especially related to assignment evaluation, which is tying nicely into my course assessment efforts.
  • CSCS1320: C/C++ Programming
    • further refining and optimization of projects to dovetail into follow-up courses
    • updating of material to reflect changes in student capabilities
    • various anti-cheating strategies employed (ie making projects “un-google-able” for those seeking to just copy and paste answers without thinking).
      • my projects tend to be this way by default, but the longer I run with a theme, the more information about it tends to be recorded/discovered (ie prime number algorithms)
      • I frequently locate existing code samples on the internet, look for implementation patterns, and alter my project specifications so as to require students to conceptually understand the concept (they can still reference the on-line examples, but they will not be as useful to them barring a viable understanding, which is as it should be).
    • so many seem to come in with pre-conceived notions of what the class should be about. As I cover the basics, they realize how “mathematical” and “logical” these computer things are. For those who want to “do video games”, this is an eye-opening, if not sobering experience for them.
  • CSCS1730: UNIX/Linux Fundamentals
    • it is interesting how overall class personalities change from semester to semester. In the fall, I had students who had trouble following literal bullet point directions. In the spring, I had a preponderance of students who were rather computer illiterate. The difference is that the deficient students in the fall largely did little to correct their ways, where the spring students actually demonstrated desire for improvement, doubled down on their classwork, came in outside of class, and made marked improvements (not only in their particular class standing, but computational literacy in general).
    • UNIX continues to be “the best class they've ever taken”. Where they may be struggling or confused by concepts in other classes, UNIX often solidifies and clarifies things for them, allowing them to succeed not just in my class, but in their other classes. It doesn't happen immediately, but as the semester drags on, more and more come to the realization of how profound and valuable the course is for them.
    • I've had specific requests for MORE of a certain theme of projects, which I call “puzzle boxes”, which require a sort of creative problem solving and applying of skills in order to solve.
  • CSCS2330 Discrete Structures
    • some great longer-term exploration of concepts under various themes, including:
      • prime number computation
      • data encoding/decoding
      • file compression/decompression
    • activities requiring basic logic (bitwise ANDing/ORing) continue to be a challenge. A lot of attention is then spent on covering and exposing students to these important concepts, but resistance remains strong (they'll still try to avoid it when they can, even reverting to longer math algorithms just to avoid short and concise logical solutions).
    • I gave weekly logic puzzles (logic grids, word math, sudokus), which were largely met with disdain and loathing, but those who hunkered down and worked through them saw the following benefits:
      • they developed better critical thinking and reasoning skills
      • they ceased being “the first solution that comes to mind is my solution”-type implementors. They would increasingly evaluate their solutions and pursue other ones if the current one was deemed inadequate.
      • their indirect reasoning skills improved dramatically (the realization of secondary and tertiary details, or “side effects”, as a result of performing some primary action).
      • some even grew to enjoy the puzzles, and starting picking them up as an extra-curricular recreational habit.
  • Future considerations:
    • I am tempted to roll out some iteration of the weekly puzzles into my other classes. They work particularly well in Discrete, but are certainly applicable everywhere.
    • I am exploring other numeric manipulation problems as potential project themes, to move away from an increasingly familiar “prime number computation” theme (good and important, but many examples abound on the internet).
      • abundant, perfect, weird, and deficient numbers (greek numerology) is increasingly looking like an excellent multi-concept umbrella for Discrete.
    • instead of prime numbers, tweaking the specification a little bit. What about numbers that have exactly TWO sets of factor pairs (one and itself, plus another– this would include some squares, and require some specific algorithmic considerations). I am calling them “secondary numbers”, and this would end up being a viable theme to explore in both CSCS1320 and CSCS2330 (at the very least).
    • data visualization. I continually toy with this idea, implementing it here and there. I'd love to work it in as more of a base-level topic.
    • more “multi-solution” projects. Require not one solution, but (at least) two. I've dabbled in this in various classes with great success, and a wider deployment seems in order.

Advising

  • Due to the comfortable atmosphere of the room and interacting with students, many would come to me with concerns related to challenges in other classes. This has led to some early interventions, including dropping of classes to ensure success, changing programs to align with better identified student interests, etc.
  • I’ve instilled a desire that “earlier is better than later” with respect to signing up for classes. I was getting questions about fall courses 1-2 weeks before registration even started.
  • With registration underway, many an advising experience began with “are you free any time today?” to which the timing was right, enabling me to say “how about right now?”. So many of my advising experiences came about this way.
  • I presented at both the Fall 2016 and Spring 2017 CCC Open House events.
    • I actually saw some of the fall attendees act on their interest and took classes with me this spring semester.
    • The spring open house turn-out had even more enthusiasm, including people in attendance who were already scheduled and signed up for classes.
  • I recruited a new student through indirect means: when the student was browsing the internet with his father investigating class/school options, they (especially the father), was taken by my apparent style and philosophy, and told the student he needed to speak to me. After our initial conversation, both student and father showed up the next day and we discussed programs and I got him set up into Computer Science (they really liked what they saw, and heard, and experienced).

Professional Development

  • I attended the 2017 GREAT Day at SUNY Geneseo
    • attended a talk on bilingual code switching (which demonstrated to me many interconnections of Computer Science and Linguistics, and lent consideration to certain approaches of concept presentation).
    • attended a talk on applications of GIS, which turned out to include some nice applied problem solving strategies for ekeing out additional insights from data sets. I've toyed with the idea of using GIS as a theme in some projects, and seeing it “in action” by its prime audience was most insightful.
    • among many others, sampled some posters/student projects on topics ranging from Discrete Structures to Financial Algorithm Modelling to Soundscape analysis. All in all, a very enlightening day, refueling many Computer Science interdisciplinary insights and giving me some new project ideas and concept presentation strategies/themes.
  • wrote a suite of command-line math operation tools (pipemath), which was directly utilized in a project by students (making them go through the entire software build process– download, read instructions, compile, install, use).
  • wrote a suite of measurement unit conversion tools (unittools), which was also directly utilized in a project by students (similar software lifecycle process encountered). Additionally, it offered some students an opportunity to further bridge both their CSCS1320 and CSCS1730 classes together, seeing how the two classes and concepts covered therein were not two isolated entities.
  • wrote a very feature-rich prime number computation tool (pncX), sort of a culmination of many of the in-class efforts, complete with extensive command-line arguments, file processing, process forking and threading. I then stripped it down and placed the skeleton in a repository for my CSCS2730 class to develop some important collaborative development skills on in completing the implementation.
  • exploring patterns of factor pairs of numbers (prime, secondary, tertiary, etc.) and potential visualizations therein. My efforts so far are already hatching ideas for future CSCS1320 and CSCS2330 projects (at least), with areas spanning from output specification, algorithm implementation, algorithm optimization, and visualization.
  • My “French relearning” efforts seem to have finally taken off from the plateau I've hit this last year (constant effort, less perceptible advances- par for the course in language learning).
    • Reading: increased ability to read operating instructions, text.
    • Writing: more related to grammar/structure of the language, I've made many subtle connections with respect to word roots and verb conjugations by composing/translating ideas/sentences into French as a means of practice or interest.
    • Listening: a tangible improvement in listening comprehension skills in French. Able to pick out more words, even unfamiliar ones, and increasingly able to backprocess them in follow-on contemplation.
    • Grammar/Structure: this has always been my primary focus, if not interest, and directly applicable to Computer Science. I've had many insights, especially pedagogical, as I realize something new and can map it to my students encountering new material, optimizing my presentation methods to be better suited for them. Word roots and language patterns reach a level of near infinite fascination for me, as they are insightful on so many levels (and informative of overall language structure, idea encapsulation). In many ways it ties into the value of solving a problem in multiple ways- it leads to a deeper understanding of algorithm development.
  • Maintaining the lab systems, addressing the contemporary security issues of the day, and incorporating new functionality (much of it requested by top-tier students seeking added resources for exploring course concepts).
  • My development efforts, along with preparing new/updated projects, has had me revisit and become more acclimated with various development tools, including: Makefiles, version control/repositories.

Service

  • Presented various department student awards at the 2017 Student Awards Luncheon
  • Attended 2017 Computer & Information Science Advisory Board meeting
  • Assisted Institutional Advancement / Communications by playing the Geneseo Knight mascot for a CCC vs. Geneseo video during the 2017 SUNY Mascot Madness competition
  • Maintain Lab46, the public UNIX shell box that Computer Science and IT students utilize for much of their coursework and explorations (now celebrating its 18th year)
    • there were a few zero-day and local root exploits this year, requiring quick and immediate maintenance
    • there have been at least two power outages experienced on campus, requiring maintenance
  • Maintain R108, the Computer Science/IT lab. This includes student workstations, project machines, servers, and network infrastructure.
    • As stated above, zero day/local root exploits required some priority maintanence to ensure secure and continued operations.
    • Power outages similarly required some dedicated time (unravel file server synchronization issues).
    • The file server this past year has been experiencing some odd performance degradations. No errors, merely unanticipated high load and stalling performance. I ended up building a new one and deploying it, and performance issues resolved.
    • The classroom workstations (pods) that were upgraded to a customized Debian 9 Linux continued to be upgraded through this year. Two different system images have emerged, as I've “bulked up” one table with more resources/multimedia capabilities for more advanced project work.
  • Provided continued support and administration of cluster resources to Dr. James McLean for his physics particle simulations at SUNY Geneseo.
    • this is a continuation of activities related to the Armor Dynamics grant back in 2008. I've been maintaining the cluster for this project ever since.
    • in addition to general cluster administration, there has been increasing logistics of late as we deal with not only data backups, but drive replacements and RAID rebuildings.

Teaching and Curricula Objectives

Objective Anticipated Completion
instantiate N-ary factor pair explorations into CSCS1320 project sequence possibly summer 2017, aiming for fall 2017
instantiate N-ary factor pair explorations into CSCS2330 project sequence possibly summer 2017, aiming for fall 2017
instantiate abundant/perfect/deficient number explorations into CSCS2330 project sequence possibly summer 2017, aiming for fall 2017
continue my efforts to revive CSCS1460/CSCS2460, and retiring CSCS1320 slow-going, but I'm increasingly seeing support in pursue this
general enhancements/evolutions/progressions of my data/content management efforts always on-going
in CSCS2320 or CSCS2330, explore the implementation of a graph and/or hash table project(s) assuming we get that far, fall 2017

Advising Objectives

Objective Anticipated Completion
keep doing what I'm doing; I seem to be plenty accessible to students for advising efforts (both my own and those who are not my official advisees) on-going

Professional Development Objectives

Objective Anticipated Completion
continue my French relearning endeavors the true aspiration of knowing a language is to never stop using it; ideally I'd love to create content, but in general, on-going insights from being multi-lingual (it really is the gift that keeps giving)
explore agriculture and carpentry, both as a developed skill but as a theme for concept presentation some students come from agricultural and carpentry backgrounds; it may be helpful to have deeper insight into these areas for encapsulating concepts in examples
explore Calculus from a philosophical point-of-view this keeps popping up on my radar; I've just not had the opportunity to delve into it. With an increasing number of students being plug-n-chug calculator centric, I feel I need to expose them to the conceptual underpinnings of calculus, especially to aid in algorithm development
explore the haskell programming language Haskell is a functional programming language, and my endeavors have yet to really dig into this paradigm. Like French, it could offer up increasing insights and approaches to solutions

Service Activity Objectives

rebuild Lab46 an activity I perform every few years to keep software up-to-date; depending on software release schedule
update infrastructure to Debian 9 or similarly modern system whenever I get to it - not critical, but long term useful as current software ages
general content management system enhancements on-going, functionality generally implemented as needed
haas/vita2017.txt · Last modified: 2017/05/17 08:56 by 127.0.0.1