The 9th Computer Science Advisory Board (AB) meeting at California State University Channel Islands took place on May 13, 2022, 1:00-2:00pm, followed by the Capstone Showcase in the Sierra Hall lobby.
The chair of the AB is Chris Meissner (photo left), who introduced the meeting. As there were construction closures on campus, some AB members did not make it to the meeting, but were able to attend the Capstone showcase which followed immediately 2:00-3:00.
Michael Soltys, the chair of the department of Computer Science, gave a short update on the department including the enrollment numbers:
|Computer Science||Information Technology||Mechatronics Engineering|
Professor Jason Isaacs is going to be sending an email to the AB to review the Program Educational Outcomes (PEOs), which is one or the roles of the AB for ABET accreditation. The last time the PEOs were examined was at the 3rd AB meeting in November 2018.
Eric Kaltman discussed his work on revamping the Minor in Gaming, a popular minor with students; and a great way of attracting students to the Computer Science department. The slides of the presentation are given at the end of this page.
Timur Taluy from FileYourTaxes gave a presentation on his company, its recent fast growth, and mentioned how CI students were hired over the years, both as interns and permanent employees, and about the deployment of AWS cloud technology (which we teach at CI) to meet the sudden spikes in demand (especially around tax day every year) without making permanent capital investments in hardware infrastructure.
most Important: CaPstone Showcase
Slides on games minor
Slides of Prof Eric Kaltman on the revamped Games Minor.CSUCI_Business_Advisor_Meeting_2022
In 2008, I attended a conference in Athens, the 4th Conference on Computability in Europe (CiE), where my student Craig Wilson and I presented a paper that was fun to write, as it examined the algorithmic complexity of a strategy game called Chomp.
Chomp is a two-player strategy game played on a rectangular grid made up of smaller square cells, which can be thought of as the blocks of a chocolate bar. The players take it in turns to choose one block and “eat it” (remove from the board), together with those that are below it and to its right. The top left block is “poisoned” and the player who eats this loses.
This fun paper, turned out to be one of my most cited works, and how the Wikipedia page dedicated to chomp cites it in its references: Chomp – Wikipedia.
The paper itself was first published in the conference proceedings, and then in the journal Theory of Computing Systems, 48(3):680-692, 2011:
My abstract: In this talk we are going to examine Data Analytics in the Cloud. In particular, we will demonstrate the data flow for Analytics and Machine Learning, starting with sourcing data (structured, semi-structured and unstructured), pipelining it in both batch mode and streaming, storing it in a Data Lake, and finally making it available to Machine Learning and Business Intelligence. We will illustrate this complex engineering process with examples from Amazon Web Services (AWS).
If you have some driving to do, I recommend 4 great podcasts that cover fun and important developments in computer science. The first two are interviews with creators of programming languages; the last two, with creators of communication environments:
- David Heinemeier Hansson, the creator of Ruby on Rails
- Matt Mullenweg, the creator of WordPress
- Jason Citron, the creator of Discord
In this episode of ACM ByteCast, Rashmi Mohan hosts David Heinemeier Hansson, cofounder and CTO of Basecamp. In addition to his work on this popular project management application, he is also the creator of the open-source web framework Ruby on Rails, used by some of the best-known technology companies, such as Twitter, Shopify, GitHub, Airbnb, and Square, and more than a million other web applications. He is also a prolific author of multiple bestselling books on building and running a successful business, as well as a Le Mans class-winning racecar driver.
David recounts discovering Ruby in the early 2000s and using it to create Basecamp, work which spawned Ruby on Rails. He dives into the process of creating Basecamp, whose aim was to solve the problem of communication with clients, as well as building a self-sustaining community with Ruby on Rails. He also explains his personal approach to open-source software, one of his passions. David also looks back on lessons he learned in business school—including the marketing aspect of technology—and how he applied these lessons to building his own business. He also reveals his experience with remote work and what he’s most excited about for the future.
Matt Mullenweg turned his early passion for blogging into a flourishing business and an unshakeable idea: that users should be able to share and tweak the code that powers their websites, and that most of those tools should be free to use. As far back as college, Matt was collaborating with far-flung fellow-coders to make blogging less clunky and more elegant and intuitive. Around 2005, he pitched the idea for WordPress.com to his bosses at CNET, but they turned him down, so he launched the idea on his own, eventually tucking the service into a nascent umbrella company called Automattic. Today—after many twists and turns—the company has nearly 2000 employees and a valuation of $7 billion; and WordPress powers more than 40% of the websites on the internet.
During his early career, Jason Citron stepped away from two stalled businesses and pivoted—twice—to something far more successful. The second time he did it, he created one of the most popular social media platforms in the world. It started at age 13 when Jason had a “holy crap” moment, discovering he could make his own video games. His first video game company morphed into a social platform for gamers, and after he sold it, he couldn’t resist launching another. When that business failed to get traction, he again re-imagined it as a digital space for gamers to gather, and in 2015, Discord was born. Today, the platform has 150 million monthly users, and is a gathering place not just for gamers, but for anyone who wants to connect with friends.
Last week I took and passed the AWS Solutions Architect – Professional certification. As to be expected, this is a challenging exam that assumes detailed familiarity with the AWS cloud. However, it is also a very satisfying exam precisely because it goes in depth.
The difficulty is not conceptual, in that the questions reflect the knowledge a computer scientist ought to have; that is, given enough time each question can be answered with strong familiarity with the AWS cloud domains: compute, databases, storage and – especially – networking. The challenge of the exam is twofold: the questions are detail oriented; for example, that Router 53 requires a Type A record for a CloudFormation distribution, but a CNAME record for RDS. And, as there are 75 questions and 3 hours, each question can take at most 2 min and 15 sec. It takes me about 1.5 min to read the question and the answers carefully, and so 45 sec are left to make a decision where one answer is perhaps the outlier, but the other 3 answers are all correct, except that one of them is ideal give the phrasing of the question (e.g., optimize cost or performance efficiency). The point is that the exam tests in depth familiarity with a wide range of services.
How to study for this exam? I am interested, professionally, in the process of exam preparation. I looked briefly at an array of online courses related to this certification: Udemy, TutorialsDojo, O’Reilly, Cantrill and A Cloud Guru. I am impressed by the quality of the materials: videos, slides, tutorials, labs, practice exams. Unfortunately, I was able to set aside very little time to prepare for this exam, and watching long videos was not an option. I preferred to read white papers and AWS console documentation.
One of my favorite books in Computer Science is an old classic: An Introduction to Programming in Emacs Lisp, by Robert J. Chassell. This is such an enjoyable text; yet, the author admits that one of the reviewers of that book wrote the following:
I prefer to learn from reference manuals. I “dive into” each paragraph, and “come up for air” between paragraphs.
I find myself in the same place now, where I have to regularly absorb vast amounts of information, and I prefer succinct presentations without pedagogical aids; just the essential material to be ingested quickly without distractions. That is how I prepared for this exam, using the AWS white papers and other technical documentation.
Programming in Go, the open-source language, is the most in-demand skill; the cybersecurity talent shortage continues to intensify; and Silicon Valley companies continue to offer the highest salaries, even to their remote workers. And the average U.S. salary for software engineers in 2021 was $156,000 annually, up 1 percent from 2020.
Those are a few of the takeaways from Hired’s 2022 State of Software Engineers report. The online employment-marketplace firm looks each year at its own data; this time around, the assessment included 366,000-plus interactions between companies and software engineers. Hired also conducted a survey of more than 2,000 software engineers to fill in additional details.
My computers in the 1980s
My first computer was a ZX Spectrum+ 48K. I begged my parents to buy one (we were living in Madrid at the time), and finally one day we went to a big supermarket, called Continente (similar to Costco), and we bought this little beauty. It was connected to a TV (we had a black and white at the time), and beside a 48K RAM, the storage was a tape recorder from which I loaded games like Saboteur or Commando. The tape made a sound similar to the gentle purrs of modems that would come some years later.
However, it was not gaming that intrigued me, but programming, in Basic. A friend of the family in Madrid, who studied Mathematics at Cambridge, showed me how to write a subroutine that displayed a spiral computed with trigonometric functions. He new the math, and I knew the Basic commands, and together we created a spiral that I diligently stored on a tape (all tapes with hand written labels, grouped by categories on my shelf – I am 14 at the time).
The families with money had Commodore 64, which was a much better computer. However, whether Spectrum or Commodore, we all had the same challenge: where does one find instructions to write software? Basic was, well basic, but it was possible at the time to write assembler code for these machines, which was needed to write actions games. There were some magazines with code, but it was not unusual to spend a day copying code from a magazine, only to be disappointed at the end; the code was buggy and didn’t work. Adults failed to see the potential, and viewed computers as big calculators with games on them; it wasn’t obvious that these trinkets were ushering a new mode of information exchange.
Finally, at the end of the 1980s, this time in Toronto, we got an Atari, which was really a first personal computer that wasn’t just for hobbyist. It had a word processor, and a graphics application (an early Photoshop called Calamus). The programming language was more advanced, and portable 8 inch floppy disks were an improvement on tape-based storage.
It is true that scarcity brings clarity. These simple computers allowed one to concentrate on the computing essentials (there was little else), and the frugal computing power and memory required inventiveness. The original games for these computers were clever, and therefore complex to write, but managed to create an attractive simulacrum of adventure with little storage and less computing power. They were the perfect toy.
There’s no shortage of software developer jobs right now and employers are on the lookout for Python, Java and SQL coders in particular, hiring data indicates – with Go also catching the eye of recruiters.
Developer training platform CodingDojo scoured job ads on careers website Indeed to find out which programming languages are in highest demand in 2022.