CSE 11 Programming Assignment 2

Due Date: Tuesday, April 12, 10:00PM Pacific Time

Learning Goals

Collaboration

Different assignments in this course have different collaboration policies. On this assignment, you can collaborate with anyone in the course, including sharing code. In your submission, give credit to all students and course staff who helped you with this assignment by noting their name and how you used their ideas or work. Note that using someone’s work without giving credit to them is a violation of academic integrity.

You can download the starter code for this assignment here:

https://github.com/ucsd-cse11-sp22/cse11-pa2-starter

You will write all your code and comments in ExampleTweets.java.

Submission Checklist

You will submit two files to the PA2 assignment:

Problem 1

In this programming assignment, you will be using tweets as data and representing them using objects. The choices we make will be similar to those in many social media posting platforms. You will be making two classes for implementation and one example class for testing your implementation. Altogether, you will create 3 classes in one file, and around a dozen objects.

User

The class User represents users, the authors of Tweets.

Note: To get information about the user (when creating user objects) you will have to go to their profile and see how many followers they have and then instantiate a new object with that value.

An example user

Tweet

The class Tweet represents a single tweet.

An example Tweet

ExampleTweets

The ExampleTweets class is for testing your own implementation.

In order to test your classes and methods, find four real tweets from twitter.com with the following properties:

You may find these accounts useful and relevant for finding fun Tweets:

(If you can’t go to Twitter for some reason, let us know via Piazza or email and we’ll help you out – you may be able to complete the assignment with another social media example).

In your test class ExampleTweets, you will construct User objects and Tweet objects corresponding to these four tweets you found. In your test file ExamplesTweets.java, you will call each method you write at least twice using the objects you constructed to build these examples. Since there are 5 methods, you should have at least 10 method calls total to test your work, and every method should be called at least twice. For each tweet you found, write a comment before the line where you construct it with:

For checking off your work, you should have:

A submission checklist can be found here

Practice Screencast

For the take-home exams, you’ll be recording a screencast that demonstrates your programs. The last part of this PA has you practice with this.

You will record a short video of no more than 2 minutes (a hard constraint!). Include the following (these are also what we will check for in grading, including length):

We’ve made a short tutorial demonstrating how to make a screencast with Zoom:

Screencast Tutorial

The associated video that was created is here:

Example Result

You don’t have to make your screencast with Zoom, but Zoom is UCSD-licensed software that you have access to, so we offer the tutorials with that in mind.

Please do reach out if you run into issues with this, and try something out early so you know if it will work or not for you – you’ll need it for the exam!

Grading

There are multiple oppurtunities to get feedback for PA2. By submitting before the deadline, you will receive feedback after it is graded shortly after the dealine. You may also submit to the Late/Resubmit for PA2 up to 3 times after the deadline to earn additional feedback.

For more information about the grading policy, visit the course syllabus.