Negatives:
- very high variation in workload based on the week, some weeks are brutal
- you cannot front-load work, as assignments are released weekly; this was really unfortunate
- group project is stressful and rushed; grading can be harsh if unlucky
- one assignment is worth 15% of your grade, but can end up really hurting you grade
- TAs can be quite unhelpful and are paranoid of information being shared on Ed, that would otherwise be helpful. The information sharing environment is the complete opposite of KBAI or HCI. One TA in particular really ground my gears with their unhelpful responses...
- assignment requirements are horribly written, vague, and inaccurate. You need to read Ed posts to correct and clarify blatantly wrong info in the requirements
Positives:
- you will have some super chill weeks
- course content is relatively straightforward
- learning git is extremely helpful, but should have been more in-depth
- you are guaranteed to get a B, but not an A; an A is achievable if you don't get screwed over by A6 or your group
In Depth Review
This class is not quite as easy as people make it out to be, especially for those who are not strong in Java or android development. There seems to be a lot of experienced android/java developers exaggerating the lack of effort needed for this class.
For background, I have my BS in CS, and I consider myself an experienced coder, albeit I primarily code in just Python. There are weeks when you do barely any work, and other weeks you are drowning. Here's a breakdown of how the semester went for me.
A1 - A3: minimal work, as things are straightforward. shouldn't be more than 4 hours a week if you watch the lecture content and read Ed posts for tips.
A4: You need to code a real, but very simple android app. I personally find android development an awful, awful experience. This assignment isn't terrible, but the pain comes from setting up android studio / IntelliJ, and just slogging through the buggy/slow parts of android studio and relearning Java if you're not familiar with it. 2 hours if you're comfortable with android, upwards of 10 hours if inexperienced.
A5: requirements are light, but the sheer ambiguity of it all will leave you spending more time than you might think. could spend 1 hour, could spend 5+. This is also only worth a whopping 2% of your grade, so don't pull your hair out.
Group Project Weeks 1 and 2: the first two weeks aren't too crazy, just prepping documents and planning your application. Should be about 5 hours of work max, each week.
Group Project Weeks 3 and 4: the course is poorly planned here, and expects 4-5 students of varying skill-levels to code a full-on android application. This is a hot mess and very stressful, as you're relying on 3-4 other people to somehow write code that will all work together in the span of 2 weeks. This was the most intense and stressful part of the semester, and my group was a bunch of ANGELS who were skilled, nice, and prompt. I can't imagine how bad this would be with a bad group.
A6: a horrible, horrible assignment worth 15% of your grade, and many people get a grade ranging from 40-70 because of trick questions. I knew ahead of time the assignment was full of trick questions and tried my best, but still landed at a 64. If you want an A, be prepared to do well on everything else so you have leeway on the assignment. I spent about 8 hours on this assignment.
Individual Project D1: another painful part of the semester where you have to learn how to use a TSL generator, which entails learning the syntax behind laying down constraints to generate a concise set of test cases to test an application. This was not fun at all, because TSL generator syntax is hard to pin down to do exactly what you want it to do. the lecture provides a decent example, however. Then you need to write up 50-90 test cases in Java. This was 12+ hours of work.
Individual Project D2: Assuming you wrote good test cases in D1, and your test cases from TSL had decent coverage, this week is really light. I spent about 2 hours this week.
Individual Project D3: Here you just need to code basic Java programming (no android development, thank god). Depending on your Java comfortability, this could be 3 hours, could be 10+. I spent about 6 hours, a lot of which I continued to relearn java.
Individual Project D4: another quick week, you just refactor your code from D3. I spent about 3 hours. Others reported 1-2 hours.
Grading: grading was fair and returned reasonably promptly... until the group project, which took about a month for them to give back, leaving you blind in where you stand academically. A6 also took about a month to get back, which sucked more with a stingingly low grade. D2, D3, and D4 all give autograder scores immediately, thankfully. Additionally, grading of the project really seemed to be based on luck. My group got a 95, but other groups with seemingly fine implementations got 60-80 range. My advice is to put together really good documents, or else they will slash points hard.
Overall, this class started pleasant, had an awful middle stretch, but ended with a soft landing in the last 3 weeks. Poor assignment requirements, strict/rude TAs, and the inability to front-load work make this class unenjoyable.
In comparison to other classes, this is pretty easy and light, but by no means is it a complete walk in the park.