Homework 4 – Wireframe – due November 12
Your objective in this homework is to acquaint yourself with conditional statements and loops, which enable you to write code that diverges and repeats. You will do this in the context of writing an application that produces a GIF of animated wireframe objects. This assignment is more involved and less easy to test in small […]
Half-homework 3 – Trutilities – due October 25
Your objective in this homework is to reason about data using logical and relational operators. Expressions built out of these operators yield true/false or yes/no answers, which can ultimately be used to steer our code one way or another. You will use operators to solve several disconnected problems that have no overarching story. Sorry again. […]
Half-homework 2 – Methods – due October 7
Your objective in this homework is to make code self-contained and reusable using methods. You will do this in the context of solving several disconnected problems that have no overarching story. Sorry. Breaking code up into methods has several benefits: it enables large problems to be decomposed into smaller, mind-sized bytes; methods with a distinct […]
Half-homework 1 – Maintenance – due September 23
Your objective in this homework is to acquaint yourself with the world of mathematical calculation using a programming language. Math in code is a little different than the calculator math you are used to in the following ways: Programmers make considerable use of variables, whose names tend to be longer and more meaningful. Numbers are […]
Homework 0 – The Git Sandwich
For homework 0, you gained access to your homework repository on GitLab, cloned it on your local machine, and pushed those local changes back up to GitLab. In this installment, you will learn to synchronize in the other direction—you will pull changes down from GitLab to your local repository. Pulling Suppose you’re home for the […]
Homework 0 – Updating SpecCheckers
Like you, your instructor is a human with finite supplies of time and energy. Errors inevitably creep into the SpecCheckers, whose JAR files are sitting in your cloned repository. Your instructor will fix the errors, but how do you get the fixes into your repository? A decade ago you would download the updated JAR files […]
Homework 0 – Goodbye, Pluto
Your task in this homework—which is worth no Blugolds—is to set up your repository and IntelliJ IDEA project and to acclimate yourself to the SpecChecker grading tools. GitLab You are probably used to two kinds of systems for editing and managing files. Some tools are installed on your local machine and edit files stored on […]
SENG 440: Lecture 24 – Finish
Dear students, Today we wrap up our course. Let’s recount what happened this semester. In week 1 we examined Kotlin, a language that many of us hadn’t used before—myself included. It seemed like the right thing to do, and that decision was recently validated by Android chief advocate Chet Haase at Google I/O: We’re announcing […]
SENG 440: Lecture 23 – CameraX
Dear students, Today we will create an app called Two-Face that allows the user to take a split image on the front-facing camera. The left half and right half are taken at separate times. We will use the new CameraX API that was just announced at Google I/O. Before I forget, here’s your final TODO: […]
SENG 440: Lecture 22 – Speech Recognition
Dear students, Today we will create an app called Recog that presents anagrams for the user to unscramble. But instead of typing, the user will speak the answer. We’ll use Android’s speech recognition facilities to make this happen. Next lecture we will explore the new CameraX API that was just announced at Google I/O 2019. […]