General Course Info


  • Instructor: Prof. Dietz [dietz (at) american.edu]
  • First Class: Tue Jan 15
  • Time/ Location: Tue/Fri 8:10am-9:25am, DMTI 109
  • Office Hours: T/F 11-noon, W/Th 10-noon
    DMTI 208 G

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:

Software Development Fundamentals
To be able to design and implement a Java program to model a real-world system, and subsequently analyze its behavior.
Programming Languages
To know and use basic Java programming constructs for object-oriented problem solving (e.g., classes, polymorphism, inheritance, interfaces).
Algorithms and Complexity
To appreciate the role of algorithms and data structures in problem solving and software design (e.g., objected-oriented design, lists, files, searching and sorting)
Software Engineering
To develop programming skills that can serve as a foundation for further study in computer science.
Social Issues and Professional Practice
Social implications of computing in a networked world and the impact of social media on individualism, collectivism and culture.

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.

Course Schedule

Readings should be completed after each lecture. All readings are from the Liang text unless stated otherwise.

Week Mon Tue Wed Thur Fri
1 Jan-15 Welcome and Introduction to Java
Read Ch 1.1 - 1.10.4
Jan-18 Elements of Java Programming
Read Ch 2
Submit P0
2 Jan-22 Selections
Read Ch 3
Jan-25 Math Functions
Read Ch 4
3 Jan-29 Loops
Read Ch 5
Feb-1 Methods
Read Ch 6
Submit P1
4 Feb-5 Arrays
Read Ch 7 & 8
Feb-8
Exam Exam 1

5 Feb-12 Objects and Classes
Read Ch 9
  Feb-15 Object-Oriented Thinking
Read Ch 10
6 Feb-19 Inheritance and Polymorphism
Read Ch 11
Feb-22 Abstract Classes
Read Ch 13
Submit P2
7 Feb-26 JavaFX
Read Ch 14
Mar-1 Events and Animation
Read Ch 15
8 Mar-5 UI Design
Read Ch 16
  Mar-8
Exam Exam 2

9 Mar-12
Break Spring Break
Mar-15
Break Spring Break
10 Mar-19 Recursion
Read Ch 18
Mar-22 Generics
Read Ch 19
Submit P3
11 Mar-26 Data Structures
Read Ch 20
Mar-29 Sets and Maps
Read Ch 21
12 Apr-2 Algorithms
Read Ch 22
Apr-5
Exam Exam 3

13 Apr-9 Sorting
Read Ch 23
Apr-12 Hashing
Read Ch 27
Submit P4
14 Apr-16 Graphs
Read Ch 28
Apr-19 Weighted Graphs
Read Ch 29
15 Apr-23 Binary Search Trees
Read Ch 25
Apr-26 Adelson-Velsky & Landis (AVL) Trees
Read Ch 26
Submit P5
16 Tuesday May-7 08:10AM-10:40AM
Exam Final Exam (recheck here!)

Syllabus

Required Textbook

Title: Introduction to Java Programming and Data Structures, 11th Comprehensive Edition
Author: Y. Daniel Liang
ISBN-10: 9780134670942

Grading

Component Weight
Class Participation 20%
Attendance 10%
HW Projects 30%
Exams 30%
Quizzes 10%

Class Participation

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.

Use of Computers and Cell Phones in Class

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.

Attendance

Students are required to attend all lectures. If you need to miss class for any reason, you are allowed two excused absences - no questions asked. Prolonged absences must be discussed with the instructor and are not guaranteed to be excused.

Students who are late to class and miss the quiz will receive half credit for attendance on that day.

HW Projects

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.

Late Submission

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. There is no need to let me know when you are using them, they will be applied automatically as needed. 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.

Exams

Exams cover the material from the lectures, projects, and reading. While not necessarily cumulative, each exam will require understanding many of the concepts covered in the preceding exams. Exams consist of multiple choice, short answer, and long answer questions. Each exam, including the final, is weighted equally.

Exams are typically curved based on class performance. After you are handed back your graded exam, you will have an opportunity to return it with corrections for partial credit on missed questions.

Quizzes

A short five-minute quiz is administered at the beginning of each lecture. Each quiz consists of two questions from the previous lecture or reading. You have the option of answering either question to receive full credit.

Students begin the semester with a 100 quiz score. For each daily quiz in which they are not able to answer either question, this score will be reduced by -3. On any day that a student successfully answers both of the quiz questions, the score will be increased by 3 points. If you have a 100 already, and can successfully answer both questions, you can effectively "bank" the +3 for a later day in which you are unable to complete the quiz.

Letter Grades

Range Letter
>=93 A
>=90 A-
>=87 B+
>=83 B
>=80 B-
>=77 C+
>=73 C
>=70 C-
>=60 D
<60 F

Students with Disabilities

If you wish to receive accommodations for a disability, please notify me with a letter from the Academic Support and Access Center. As accommodations are not retroactive, timely notification at the beginning of the semester, if possible, is strongly recommended. To register with a disability or for questions about disability accommodations, contact the Academic Support and Access Center at 202-885-3360 or asac@american.edu, or drop by the ASAC in MGC 243.

Academic Support

All students may take advantage of the Academic Support and Access Center (ASAC) for individual academic skills counseling, workshops, Tutoring, peer tutor referrals, and Supplemental Instruction. The ASAC is located in Mary Graydon Center 243. Additional academic support resources available at AU include the Bender Library, the Writing Center (located in the Library), the Math Lab (located in Don Meyers Technology and Innovation Building), and the Center for Language Exploration, Acquisition, & Research (CLEAR) in Anderson Hall. A more complete list of campus-wide resources is available in the ASAC.

Acknowledgments

Course design by Alex Godwin at American University. Assignments and ideas on this syllabus build from the work of many other instructors in computing, especially Donna Dietz and Adam Knapp at American University, John Stasko at the Georgia Institute of Technology, and Dave Reed at Creighton University. This course utilizes in-class POGIL materials that builds on the work of Clif Kussmaul at Muhlenberg College and Tammy VanDeGrift at the University of Portland.