Syllabus



Course Overview

15-121 is a continuation of the process of program design and analysis for students with prior programming experience (functions, loops, and arrays, not necessarily in Java). The course reinforces object-oriented programming techniques in Java and covers data aggregates, data structures (e.g., linked lists, stacks, queues, trees, and graphs), and an introduction to the analysis of algorithms that operate on those data structures.

Learning Objectives

Upon the successful completion of this course, students will be able to:

  • Write medium-sized (couple-hundred line) programs in Java to implement a solution to a specified problem by using a Java IDE (such as Eclipse)
  • Further develop and hone a sense of proper idiomatic programming style in Java
  • Decompose the solution into appropriate classes and implement those classes with appropriate fields and methods
  • Write a class that implements a specified interface
  • Choose between and implement a recursive or iterative approach to solving a problem as appropriate
  • Understand and implement the following data structures: dynamic array, linked list, binary search tree, heap, hash table
  • Be able to implement (or choose the appropriate Java implementation) of the following Abstract Data Types: list (array, ArrayList, LinkedList), stack, queue, priority queue, tree, set (HashSet, TreeSet), map (HashMap, TreeMap) or graph (adjacency list/matrix) to solve a specified problem
  • Analyze the Big O running time of an algorithm or method

Previous Iterations of the Course

Here are links to the course webpages for previous iterations of this course. You may find them helpful for sample quizzes and exams. However, please keep in mind that the course will change and evolve from semester to semester.


Topic Outline

This course will cover the following topics:

  • Introduction to the Java programming language
  • Object-Oriented Programming
  • Arrays and ArrayLists
  • Efficiency and O-notation
  • Linked Lists
  • Recursion
  • Java Interfaces and Iterators
  • Stacks and Queues
  • Searching and Sorting
  • Trees (including Binary Search Trees)
  • Priority Queues and Heaps
  • Sets, Maps and Hashing

Prerequisites

15-112, Fundamentals of Programming and Computer Science


Grading and Submission

Grading Policy

 Course Component   Points 
Homeworks35%
In-Class Assessments60%
Attendance5%

Letter Grade Assignment
I will use standard grade percentages as follows:

  • [90, 100]: A
  • [80, 90): B
  • [70, 80): C
  • [60, 70): D
  • < 60: F

The Academic Integrity Quiz
In order to receive a grade in the course, students must take, and pass with a 90% or higher, a short quiz on the course academic integrity policy. This quiz happens in class on the first Thursday of the semester. (It isn't a big deal, just show up and do it.) If a student misses this for an excusable reason, they can contact the instructor to take it at a later date. A student who does not receive a passing grade on the grade can retake it as many times as needed.

The 60% Rule
You must receive a 60% or higher (calculating using the appropriate weightings above) on in-class assessments in order to receive a D or higher in the course.

Attendance
Attendance (worth 5% of your final grade) is graded out of 50 points. You lose five of those points for every absence or tardy in class.

Late Submission Policy
In an ideal world, I would be able to support varying submission schedules so that all students could work at their own pace. Unfortunately, this is impossible. I need you to submit assignments on time so that I can promptly give feedback to all students, to support the learning process.

However, I understand that life can sometimes get in the way. Therefore, I provide 3 grace days for homework assignments. These can be used to submit homeworks up to 24 hours late with no penalty. You may only use one grace day per homework. I strongly urge you not to use these grace days immediately; try to save them for unforeseen events.

Once you run out of grace days, late submissions will receive a score of 0.

Regrade Requests
We occasionally make mistakes while grading (we're only human!). If you find a mistake which you would like corrected:

  • If the graded item was returned on Gradescope, use the Gradescope regrade request feature.
  • If the graded item was returned some other way, please contact the instructor.

In both cases, include all relevant details for your regrade request.

Regrades must be requested within two weeks of the time when the contested grade was released.

Note: Regrade requests will result in the entire problem being regraded, not just the incorrectly graded part.


In-Class Assessments

Number of Assessments
Your in-class assessment score will be determined by six, 50-minute assessments. These assessments occur during class time and are scheduled at the beginning of the semester. Each assessment contributes equally to the student's in-class assessment score.

Topics Assessments
Each assessment covers a different set of topics:

  1. Programming Basics in Java; Arrays; Classes and Object Oriented Programming
  2. Files; Arrays of Objects; Array Lists; Inheritance
  3. Linked Lists; Stacks, Queues
  4. Binary Search Trees; Priority Queues; Heaps
  5. Hashing; Sets; Maps; Things to Override in Your Own Classes; Comparators/Comparable
  6. Searching & Sorting; Graphs

Making Up Assessments
If a student misses a scheduled assessment, no make up assessment will be given. Instead, the student can take the assessment during the final exam slot at the end of the semester.

Retaking Assessments
During the final exam slot, students may retake up to two assessments. There are numerous reasons that a student might want to retake an assessment; here are some examples:

  • The student missed an assessment due to illness, family emergency, university sponsored trip, oversleeping, etc.
  • The student performed poorly on an assessment and wants to try and do better.
Important notes on retakes:
  • When a student retakes an assessment, the score on their retake replaces their original score for that assessment.
  • The retake assessments are new assessments on the specified topics.
  • A retake assessment replaces the earlier score for that same assessment. For example, if a student retakes Assessment 2, then the score is used to replace their original score for Assessment 2. They cannot retake Assessment 2 and have it replace the score for Assessment 3.
  • Students must sign-up for retake assessments. After the grades for Assessment 6 have been released, a sign-up form will be sent. Students who do not sign-up before the deadline will not be permitted to take any retakes during the final exam slot.


Ethics and Cheating


Classroom Etiquette

Electronics
Research has shown that devices can greatly detract from student learning. Therefore, students may only use electronic devices in lecture during learning activities which involve those devices. Any exceptions to this require explicit permission in writing from the instructor.

Notes may still be taken, of course, but should be done with pen and paper. This policy is meant to help all students focus, as electronic devices are distracting not only for the user, but also for the students surrounding them.

Recording
Students may not record audio or video of lectures or recitations without explicit permission in writing from the instructor. Violations will result in your failing the course. Exceptions will be granted in accordance with university guidelines for accessibility concerns, but even then such recordings may not be shared publicly or privately and must be deleted at the end of the semester.

Attendance
Your regular, on-time attendance of class is important for your success. As such, class attendance is mandatory and graded as described in the grading policy. In addition, arriving late is not permitted. If you attempt to enter the classroom after class has started, you will be asked to leave. If you arrive late for an assessment, you will not be permitted to take the assessment or make it up.


Other

Diversity
It is my hope that students from a diversity of backgrounds and perspectives be well served by this course, that students' learning needs be addressed both in and out of class, and that the diversity students bring to this class be viewed as a resource, strength and benefit. It is my intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally or for other students or student groups.
This statement is adapted from The University of Iowa Department of Education.

Accommodations for Students with Disabilities
Carnegie Mellon University is committed to providing reasonable accommodations for all persons with disabilities. To access accommodation services you are expected to initiate the request and submit a Voluntary Disclosure of Disability Form to the office of Health & Wellness or CaPS-Q. In order to receive services/accommodations, verification of a disability is required as recommended in writing by a doctor, licensed psychologist or psycho-educational specialist. The office of Health & Wellness, CaPS-Q and Office of Disability Resources in Pittsburgh will review the information you provide. All information will be considered confidential and only released to appropriate persons on a need to know basis.

Once the accommodations have been approved, you will be issued a Summary of Accommodations Memorandum documenting the disability and describing the accommodation. You are responsible for providing the Memorandum to your professors at the beginning of each semester.

For more information on policies and procedures, please visit Assistance for Individuals with Disabilities on Scotty.

Take Care of Yourself
We all feel stress at different times and for different reasons, and when we do, it is good to reach out for support. Do your best to maintain a healthy lifestyle by eating well, exercising, getting enough sleep and taking some time to relax. Please know that you are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner, rather than later, can often help your situation from getting more complicated. If you or any of your CMUQ peers are experiencing academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support.

Our Student Affairs staff are here to help:

You can also visit the Ilona Wyers Student Lounge and connect with anyone on the Student Affairs Team. Consider also reaching out to a friend, faculty, staff, or family member you trust for help.

If you would like to speak to a trained professional for mental health support, day or night, call our ProtoCall hotline at 5554 7913, which is staffed by trained mental health care providers.

If the situation is life threatening, call 999.