Schedule / Material

Prerequisite review (January 25)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Homework:

  • First, sign in to CodeLab and access the area for our course. Here is some information about CodeLab. 
  • Assignment 1: due February 1 at 6pm
  • Assignment 2: due February 5 at 11:59pm

Command line (February 1)

How to practice using the Unix/Linux command line:

  • Running commands on your local machine:
    • For Linux and macOS: you can use the built-in Terminal. Another option is to install Git Bash.
    • For Windows: although Windows comes with something called the Command Prompt, it is not as powerful as the Linux command line. To mimic the real thing, you may install Git Bash or WSL (Windows Subsystem for Linux).
  • Using the Linux computers on campus:
    • Computers running Linux are available in the WEB (West End Building, the red two-story building near Ocean Avenue).
    • Username and password information is here
    • You can connect to these machines remotely from your own; follow the instructions here (not written by me).
      • Note for Windows: you do not really have to download the program as the instructions say. You should be able to use SSH directly in the Command Prompt as in the Mac Terminal.
  • In the browser: for any operating system, you can use Replit’s console (or shell), which is a Linux command line. 
  • Note: many IDEs, such as IntelliJ IDEA and Visual Studio Code, allow you to open a command line (they may call it a “terminal”) within the IDE.

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

  • Commands to know: echo, cat, mkdir, touch, cd, rm, rmdir, ls, pwd, mv, cp, javac, java. Also (these are used together with commands): .., <, >, *, ?, {}, &&
  • Summary of some basic commands

Homework:

  • Assignment 3: due February 8 at 6pm

Objects and references (February 8)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Homework:

  • Assignment 4:

Classes (February 15, 22)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Homework:

  • Assignment 5: 
  • Assignment 6:

Exam 1 (March 1)

Inheritance, polymorphism, and the Object class (March 8, 15)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Videos:

Homework:

  • Assignment 7: due on March 22 at 6pm on CodeLab

ArrayLists (March 22)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Homework:

  • Assignment 8: due 4/2

Exceptions (March 29)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Video on exceptions (continuation from class)

Homework:

  • Assignment 9: due 4/25

Interfaces, lambda expressions (April 19)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Video on Comparators and lambda expressions (continuation from class)

Homework:

  • Assignment 10: due on 5/3

Exam 2 (April 26)

Collections (May 3)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Homework:

  • Assignment 11: on CodeLab

Recursion (May 10)

Resources:

Class material (Click on “Show code” and then choose from the files on the left)

Homework:

  • Assignment 12:  on CodeLab

JavaFX (Optional)

Resources:

Network programming (Optional)

Resources

Final Exam (May 17 at 6:00)

  • The final exam will be cumulative. 
  • All exam questions will be similar to homework questions (assignments 1-12) or questions from previous semesters, which you can find above in the areas for exams 1 and 2.  
  • It may be helpful to review exams 1 and 2 with their solutions, posted above.
  • Below are exams from previous semesters. Do not assume that this semester’s exam will be similar to these. But they may nevertheless be helpful.
  • Q&A recordings: part 1, part 2