CMSI 2120
Exam 2 Preparation

When

November 16-20, 2022.

Scope

Lists, Algorithm Analysis.

Ground Rules

You will take the exam on BrightSpace; it will be multiple choice with a 90 minute time limit. You MAY use books, notes, and web searches to look things up. You will not be spied on: there is no browser lock down and hence no need to hide a mobile device in a bag of potato chips. However, you MAY NOT solicit answers in any way. There is to be no asking for help, no posting on forums, no communication with other humans or intelligent bots in any way; you can only “look things up.” You also MAY NOT post answers or help any other test taker either. You are bound by an honor code to follow these rules.

The exam becomes available at 3:30pm America/Los Angeles time on November 16 and becomes inaccessible at 10:00pm on November 20. You may complete the exam within any 90 minute period in that window.

Review of the Course Learning Objectives

Step one of your preparation is to remember the learning objectives from the syllabus. Please review them now.

To meet these objectives throughout the course you must gain an understanding of what data types and data structures are all about, and how we can use existing data types in Java and construct new data types in Java.

What We Have Learned So Far

We began the course with a look at why “Data Structures and Algorithms” is considered a field of study, and some of the main components of the field.

We then learned how to write simple Java programs. We went through a Java bootcamp and then learned the basics of Java in an more academic context.

Next was a deep dive in to stacks and queues, where we covered at least two implementations of each. You wrote your own implementations for homework, in which you used arrays, but created new arrays when you needed more or less space. You then learned how to make two kinds of lists from scratch: (1) a mutable type, doubly linked, with a header node, and (2) an immutable singly-linked version, known as a persistent list. We then learned about the field of algorithm analysis, and spent time with the notions of asymptotic time and space complexity, in which you became friends with Big-O, Big-Theta, and Big-Omega.

Format of the Exam

An ideal assessment of your understanding of data structures concepts would take place through an oral exam. However, given the the number of students, this assessment will be on your recognition and evaluation of concept expression in the form of multiple choice and similar questions.

At some point during the exam window, find the quiz on BrightSpace and take it. You will have 90 minutes to complete it. Upon submission you should receive feedback and your score will be recorded in the gradebook.

How to Study

Review your answers and my answers to the first two homework assignments.

Do the problems relevant to the material within the scope of the exam.

Keep in mind that our (world’s) knowledge culture is far more literary than oral, so read, or reread all applicable course notes. Where it makes sense to, follow linked references from the notes. Also make sure you are “fluent” with JShell! You may find yourself with exam problems for which you may need to try out some code. Before you start the exam, have a window with JShell running.

If Java still feels mysterious to you, a LinkedIn Learning course might get you feeling better.

You have to put in the time for effortful self-study. Although the exam is open resources, you will not have time to look everything up. Those who come in with a strong comfort level with the material will finish on time. I am assessing your fluency and your proficiency with the material, not your Google-Fu.