Week 1: Getting Started with JES and Digital Imaging

This week, we got started using JES, a Jython/Python IDE for students to learn how to process and transform digital images. It has been a while since I have coded anything in Python, aside from a few leisure electronics projects that use CircuitPython. It was a little bit like coming home since Python is the first programming language I understood, as I had to learn it for my computational linguistics courses. There’s a bit of nostalgia attached to Python.

I learned how to use several of the built-in functions in JES, such as makeImage to create a Picture object out of specific image file, given its path. A Picture object is an abstraction of an image file. It represents data related to the image such as:

  • a list of all of the image’s pixels (retrievable with the accessor function getPixels)
  • the image’s height (accessed by getHeight)
  • the image’s width (accessed by getWidth)

There are mutator functions that can modify the state of a Picture object such as:

  • repaint, updates/redraws an opened Picture object to reflect changes to its state
  • addText, which takes five parameters–reference of the Picture object, the x and y positions of where to start adding text, the string of text itself, and the Color the text should be.

Each pixel of an image is also represented as a Pixel object

We used the getColor accessor to get the RGB values of a particular pixel and the setColor mutator to change the RGB values of a pixel. These functions were instrumental in building our own functions that would produce different effects, such as the ones illustrated below:

Original photo (CSUMB landscape)

Grayscale version produced by betterBnW() function

Negative version produced by makeNegative() function

No struggles or difficulties this week!

Week 0: CST 205

I am excited about this course because, while I have previous experience with Python through my graduate studies in computational linguistics, that experience was largely based on text processing using Natural Language Toolkit (NLTK).

As a wordy linguist, I have limited knowledge of image processing, so it is thrilling to be able to learn something new. I am looking forward to being able to create some multimedia projects using Python and working together with my great team.

The only challenge I (continuously) face is juggling my full-time teaching job with coursework. Because I am well-organized and a responsible worker, I know I can continue to overcome this challenge and produce some great work. It helps when the work you do (both in career and in academia) is something you value and love.

Week 8: Wrapping Up

8.1 Video project reviews


This team did a great job covering an extensive amount of information and adding in related imagery. The presentation is very well researched. The quality of the video production was acceptable given that it was  collaborative effort done remotely. My only qualm is the variation in audio quality due to the different equipment being used. The third reader did an especially great job using expression in his voice, which helped maintain my attention. Because all group members participated in the narration of the video, team work is evident. Overall, the presentation is appropriate to an audience of technology professionals.

While the visual style of this video is different and the presentation is much shorter, the explanations seem to be the same and not focused towards a different, more general audience. I would have liked to have seen a change in tone and diction as evidence that this team was aware of their audience as a more general crowd.

blockchain and cryptocurrency

This team produced a professional looking video with great vocal expression. The ideas conveyed were detailed and the diction was appropriate for an audience of technology professionals. The example scenarios with accompanying visuals made the presentation engaging and easy-to-follow. However, if I were to judge the evidence of team work on narration alone, I would say that it seemed unbalanced since the first narrator explained the most and the last narrator had the shortest part.

This team’s second video seems to just be a shorter version of their first. There is no indication that it is meant for a different, more general audience. Not only are the diction and tone of the video the same, but the visual style is the same as well. Changing these three aspects would make the video much more engaging for a general audience.


As a person who has been in the teaching profession for the past four years, this video seemed pretty well targeted towards people, such as superintendents and policymakers, who could do something about bringing computer science into public schools. They provide convincing evidence to fund such programs. The only thing that could be improved is more graphical support and more practice with narration to make it more fluent and expressive.

This video is super engaging because of the visuals. I would definitely show this to an administrator or teacher to convince them why students should have the opportunity to learn to code in a public school. This is especially important since CS is not a core subject in California and is not viewed with priority when budgets go into deficit.


Our team has done an amazing job communicating and collaborating remotely. In the beginning, we decided to create weekly agendas and to ensure we stuck to them out of respect for everyone’s time. We held conference calls via Google Hangouts consistently on Saturdays at 11am, and if anyone had a meeting conflict, we communicated and reached a resolution (this only happened once because I had a work training and we resolved to meet on Sunday instead). Every week, a different team member kept meeting minutes, which are all saved on our Team Drive for our reflection and reference.

Teamwork has always been divided fairly, with each team member contributing their fair share. I feel like, if we keep the good work up, we will be successful all the way through our capstone project!

Here are the two videos we produced for our final presentations on Quantum computing:

Week 7

7.1 Collaborative Video Production

This is perhaps the busiest week in CST 300 since we have two major projects to worry about–the final draft of our ethics paper and two videos on a selected topic for two different audiences. Our group met on Google Hangouts after Monday’s meeting with the professors to discuss our plan of action. Each group member is supposed to research our topic–quantum computing–and to compile a list of resources and ideas for both videos. We have been sharing some resources over Slack since our next meeting will not be until Sunday. We are also investigating an online collaborative tool like theplot.io to storyboard our videos before we start production. We also discussed how we would approach production and editing. For voice overs and other content, we plan on uploading content to a shared folder on Google Drive. Since Cody has access to great video editing software, he will likely be in charge of editing content together.


This week focused on presentations since we will soon be submitting two video presentations on a topic of our choice.

Life After Death BY PowerPoint

In this comical video, “corporate comedian” Don MacMillan gives a whimsical account of some of the top mistakes people make when putting together a PowerPoint presentation. It is important to make your slides visually appealing–the font size and color should be legible and too many distracting animations should be avoided. When it comes to text on a slide, less in more. A presenter should not put everything he or she plans to say–the slides should support the speech with visual aids and important key terms, avoiding jargon that may be unfamiliar to the audience.

toastmasters international public speaking tips

Toastmasters provides tips for a variety of public speaking contexts and purposes. Many of their tips are similar to those shared by MacMillan. Of using visual aids, Toastmasters implores the presenter to keep text to a minimum and to rely on supportive visual aids that are relevant to what is being said. PowerPoint slides should never be read verbatim and the presenter should always face the audience. Successful speeches arise from preparation, and preparation comes with practice and patience. Even if a presenter makes a mistake in speech during the actual presentation, he or she should not pause to apologize, but should simply move on. It is also important to speak clearly and with passion to engage the audience.

20 Great Examples of PowerPoint Presentation Design

Carly Stec, Senior Content Strategist on HubSpot’s Content Acquisition team, stresses that although we are presented with a lot of choices when it comes to putting together a PowerPoint presentation, we need to be mindful of our choices so that we do not wind up with a presentation that is illegible, distracting, and ineffective. Stec provides 20 examples of PowerPoint presentations that employ a consistent color scheme, legible text that does not dominate each slide, and supportive use of visual aids. Some unique features that some presentations used were tables of content to manage an information-heavy presentation and subdued graphic backgrounds that still allowed for visible text. Stec reinforces the idea that there are definitely wrong ways to design a presentation, there is no one right way–you can still be creative as long as you make mindful decisions.


This video is an example of a whiteboard animation video, which is typically used to illustrate complex information. The presenter draws out visual aids that support the presenter’s speech. The video speed is adjusted to match the pacing of the recorded speech. In this case, not only great speaking skills are needed, but artistic ability as well.

7.3 TED Talk Presentation Evaluations

Reshma Saujani is the author of the upcoming title, Brave, Not Perfect : Fear Less, Fail More, and Live Bolder (2019), and the founder and CEO of  Girls Who Code, a nonprofit organization which aims to support and increase the number of women in computer science. In her February 2016 TED talk, Teach Girls Bravery, Not Perfection, explains how she took a chance and ran for Congress, despite being told how likely she was to fail. She uses this story to introduce the stark difference in how boys and girls are traditionally raised. Boys, she claims, are raised to be risk-takers while girls are raised to be perfect. This difference, she claims, leads girls to avoid challenges, which contributes to the underrepresentation of females in STEM. This is supported by the fact that most females will only apply for STEM positions if they meet 100% of the qualifications, while males will apply even if they only meet 60% of the qualifications. Saujani uses a passionate tone to convey to her audience how important it is to teach girls it is okay to fail in order to develop perseverance and courage. She implores each audience member to tell every young woman they know that they should be comfortable with imperfection and to help them use that imperfection to drive their passions.

Massimo Banzi co-founded Arduino, an open-source programmable microcomputer that has enabled makers to create their own inventions. In his 2012 TED talk, How Arduino is Open-Sourcing Imagination, explains how 3D printers have led to a third industrial revolution. More importantly, he argues, there is another revolution being driven by open-source technologies. He reveals that the 3D printer he was speaking about is actually open-source and powered by an Arduino microprocessor. Because of this, virtually anyone could build this 3D printer or any other innovation a person might dream up. Because Arduino is open-source, this has led to others creating their own boards based on its architecture. Banzi supports his presentation with videos of a diverse array of projects developed by people all over the world, demonstrating how the Arduino has enabled people to find novel solutions to their problems. Banzi injects intermittent humor and humorous project examples into his presentation to keep his audience engaged.

Week 6

6.1 Capstone Ideas

Out of the four members of Team SCSI Logic, three of us mentioned developing a game. Cody would like to create a simple multiplayer game, Nathan is inspired to create a simple game with an inspirational message, and I had the idea of developing a coding game. As we gain more experience and get a better sense of what is feasible for a capstone project, I am sure that we will be able to hone in on a more specific vision.

6.2 CST 300 Final Project

Our team came up with a number of great ideas for our final video presentation project, but we all seem most interested in tackling  quantum computing. We are all extremely excited about learning more about it. Cody also has access to some great video editing software so that we can hopefully make our presentation as professional as it is engaging.

6.3 Career development

The CSUMB Career Development website provides access to a number of resources to connect both current students and alumni to the resources they need to plan their career. Career workshops and job fairs are offered for on-campus students, but any student can take advantage of the online Career Guide–a comprehensive document that covers everything from exploring majors, to nailing an interview. There are also tips on how to network and model resumes and cover letters.

In other news, I successfully finished a project that necessitated 3D printing, electronics, and programming. I used an Adafruit Circuit Playground Express to send PWM signals to four 10mm  LEDs to create a fading effect. The program is written in CircuitPython.


View this post on Instagram


Success! #bowsette #adafruit

A post shared by Sara Kazemi (@velocipedal) on