Syllabus
- Course Overview
- Learning Objectives
- Topic Outline
- Prerequisites
- Textbook
- Grading
- Dropped Quiz Policy
- Regrade Requests
- Late Submission Policy
- Ethics and Cheating
- Accommodations for Students with Disabilities
- Take Care of Yourself
- Student Wellness
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
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
- Graphs and Graph Algorithms (if time permits)
Prerequisites
15-112, Fundamentals of Programming and Computer Science
Textbook
There is no textbook for this course.
Grading
I will use standard grade percentages as follows:
- [90, 100]: A
- [80, 90): B
- [70, 80): C
- [60, 70): D
- < 60: F
The total points possible are allocated as follows:
- 40% Homework
- 15% Quizzes
- 20% Midterm Exam
- 25% Final Exam
Dropped Quiz Policy
In order to reward improvement, I will replace one quiz score that is immediately followed by two higher scores. So, if you have a quiz that goes very badly, but your next two quizzes are each better than that bad quiz, I will replace that low quiz with the higher of the two scores immediately following it. If you have multiple “bad” quizzes that meet the criteria, I will replace the one that maximizes your point gain.
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 on Autolab, 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.
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.
Ethics and Cheating
Refer to the course academic honesty policy.
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 https://scotty.qatar.cmu.edu/qword/student-affairs/office-of-health-and-wellness/assistance-for-individuals-with-disabilities/.
If you have a disability and require accommodations, please contact Amie Rollins, Director of Health and Wellness at amier@andrew.cmu.edu or Dr. Salaha Khan, Psychologist Counseling and Psychological Services at salahak@qatar.cmu.edu. If you have an accommodations letter from the Disability Resources office, you are encouraged to discuss your accommodations and needs with Catherine Getchell getchell@cmu.edu, as early in the semester as possible. She will work with you to ensure that accommodations are provided as appropriate.
Take Care of Yourself
Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.
If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, I strongly encourage you to seek support. Counseling and Psychological Services (CaPS-Q) is here to help: call 4454-8525 (8:30am to 4:30pm, Sunday through Thursday) or email student-counselling@qatar.cmu.edu. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night at 5554-7913.
If the situation is life threatening, call 999.
Student Wellness
It is important for undergraduates to recognize that university life presents different pressures and stressors, including personal, social, emotional, physical, financial, mental and/or academic. As a student, you may experience a range of challenges that can interfere with your learning such as sleep deprivation, anxiety, feeling down, difficulty concentrating and/or a lack of motivation. I urge you to make health and wellness your priority during your time as a student at CMU-Q. When you take care of yourself via sleep, nutrition, physical activity and stress management, research shows your focus improves and your ability to retain information increases. Contact Student Affairs to learn more about wellbeing initiatives:
- Student Affairs 24/7 Emergency Line: +974 5554 7913
- Counseling and Psychological Services-Qatar (CaPS-Q): +974 4454 8525
- Health and Wellness Office: +974 4454 8680 or book an appointment via Health Connect
- Student Life Office: +974 4454 8545