This course is a continuation of problem solving and object-oriented programming. There will be more emphasis on larger programs built from modules. You will be introduced to abstract data structures: stacks, queues, graphs, and trees and their implementations and associated algorithms. We will discuss elementary numerical methods and the construction of a simple graphical user interface (GUI).
In this class, you will learn about:
Academic integrity: Unless explicitly stated otherwise, you are expected to do your assignments and work collaboratively with your assigned teammate(s), but not share code with other teams in the class. It is not appropriate to find existing code, modify it and submit it as your own work. Code submitted for projects may be compared to existing databases of example student work to verify authenticity. Exams and quizzes will be an independent effort. If in doubt, confer with your instructor.
All students are expected to adhere to the American University Honor Code.
Readings should be completed after each lecture. All readings are from the Liang text unless stated otherwise.
|1||Aug-27 Welcome and Introduction to Java
Read Ch 1.1 - 1.10.4
|Aug-30 Elements of Java Programming / Selections
Read Ch 2 - 3.3
Break Labor Day
|Sep-6 Selections cont'd / Math Functions, Characters, and Strings
Read Ch 3.4 - 4.4
Read Ch 5
Read Ch 6
Read Ch 7 & 8
Exam Exam 1
|5||Sep-24 Objects and Classes
Read Ch 9
|Sep-27 Object-Oriented Thinking
Read Ch 10
|6||Oct-1 Inheritance and Polymorphism
Read Ch 11
|Oct-4 Abstract Classes
Read Ch 13
Read Ch 14
|Oct-11 Events and Animation
Read Ch 15
Break Fall Break
|8||Oct-15 UI Design
Read Ch 16
Read Ch 18
Exam Exam 2
|Oct-25 Guest Lecture
Read Ch 19
|Nov-1 Data Structures
Read Ch 20
|11||Nov-5 Implementing Data Structures
Read Ch 24
Read Ch 22
Read Ch 23
Exam Exam 3
|13||Nov-19 Sets, Maps, and Intro to Hashing
Read Ch 21, 27.1-27.4
Read Ch 28
|Nov-29 Weighted Graphs
Read Ch 29
|15||Dec-3 Binary Search Trees
Read Ch 25
|Dec-6 Adelson-Velsky & Landis (AVL) Trees
Read Ch 26
Exam Final Exam
It is expected that students will come to class, be prepared by doing the readings, and will pay attention and participate in discussions. Participation will be scored both by instructor review of the quality of work during in-class exercises and peer-assessment of your contributions to the group.
Any questions regarding general rules and regulations should first be directed to the American University Catalog. If you still have questions, please seek out the TA or Instructor during the posted office hours.
Educational research shows that taking notes by hand on paper will lead to better retention of material than taking notes by typing. Also, in the past classrooms have had issues with students not only not paying attention but also disrupting others during class-- by playing games, by accidentally clicking on a video with the sound on, etc.
If you have a laptop, you should bring it to class. Do not use it for in-class assignments unless you are directly advised to do so by the instructor.
Please do not use your cell phone in class.
Homeworks will be graded on a list of criteria (specified on the assignment) such as accuracy of code input/output, completeness, insight into technical issues, insight into social issues, etc. For each criterion, you will receive either a check plus, check, or check minus. Most criterion will receive a check. A plus means "you impressed me." A minus means the assignment is incomplete, incorrect, or sloppy in some fashion with respect to that criterion. Pluses and minuses are combined to give your grade for the assignment. For most assignments, you start out half way between a B+ and A-. One plus makes it an A-; one minus makes it a B+. These are general guidelines to let you know what to expect. Grading on specific assignments may differ.
All assignments will be submitted through the class Github system, which will be introduced in early lectures.
Assignments are due at 5pm on the specified date unless stated otherwise. Late assignments will be penalized at a rate of 3 pts (one grade step: A becomes A-) per day. Assignments more than one week late will not be accepted.
Over the course of the term, you have three "late days" where work may be late with no explanation needed. Please mark “Use my late days” on the first page of your assignment/paper if want to use your late days when you make late submissions. Use your late days wisely as different submissions have different weights. If you are working in a team for an assignment (as you will most often be) a late submission uses a late day from both team members.