CS 1331 Introduction to Object-Oriented Programming
- Christopher Simpkins, simpkins@cc.gatech.edu
IMPORTANT: You must email me from your official Georgia Tech email address, that is, the email address listed for you in the official course roster. I use your official email address to create email filters. Please understand that professors are slow or unresponsive to email because we are drowning in email. If I don’t respond within 48 hours just send me a gentle reminder. Do not send me messages in Canvas.
Course Description
CS 1331 teaches students how to develop object-oriented solutions to computational problems. Students learn fundamental concepts of object-oriented programming, basic object-oriented design principles, further develop the programming skills learned in previous courses, write medium-sized object-oriented programs in a modern programming language, and – as the first course required for computer science majors and minors – get a deeper introduction to the field of computer science.
Learning Outcomes
By the end of this course students will be able to define, describe and recognize examples of the principles of:
- statically typed variables;
- structured programming;
- fundamental object-oriented language features (encapsulation, inheritance, polymorphism);
- ad-hoc polymorphism, run-time polymorphism (subtype polymorphism) and compile-time polymorphism (generics);
- exception handling;
- event-driven programming principles as they apply to graphical user interface (GUI) programs;
- basic GUI program design;
- recursive definitions of algorithms and data structures;
- “Big-O” run time analysis of algorithms;
- basic algorithms for searching and sorting; and
- basic data structures for linked lists, stacks, and queues.
Students will also be able to write, debug and predict the behavior of programs that use these principles in programs composed of up to 20 major abstractions (e.g., classes) in up to 20 source files.
Requirements
Grading
- Homeworks: 20%
- Exams: 60%
- Final Exam: 20%
Grade Cutoffs: A: 90, B: 80, C: 70, D: 60
Assignments
6-10 homework programming assignments, three in-class written exams, and an in-class written final exam.
Academic Integrity and Collaboration
We expect academic honor and integrity from students. Please study and follow the academic honor code of Georgia Tech. You may collaborate on homework assignments, but your submissions must be your own. You may not collaborate on in-class programming quizzes or exams.
Due Dates, Late Work, and Missed Work
-
Homework assignments are due at 23:55 on the assignment’s due date. Multiple resubmissions are allowed, so submit early and often so you aren’t in a rush on the due date. Late submissions receive a 0.
-
Make-up exams are held at 11:00 on the Tuesday following the exam, unless otherwise announced. If the make-up exam room is not announced before the make-up day, report to the TA lab. Make-up exams are only given to students with special circumstances such as serious illness, hospitalization, death in the family, judicial procedures, military service, or official school functions. Provide us with a copy of your letter from the registrar in advance for official school functions. For other excused absences you must provide documentation to the Dean of Students’s office (in the “flag” building near the ice cream cone statue) within one week of your return from illness/activity. The Dean of Students’s office will verifiy your excuse and send your instructors a notice. The Dean of Student’s office will also send instructors a request for flexibility in cases which don’t fall within the official excuesed absences listed above but warrant considertation. An any case, if you believe you should be excused from a scheduled exam and don’t have an excuse from the Registrar, see someone in the Dean of Students’s office. Excusal from coursework or make-up opportunities are granted at the sole discretion of your instructor.
Regrades
To contest any grade you must submit an official regrade form to the Head TA within one week of the assignment’s original return date. The original return date is the date the exam was first made available for students to pick up or the grade was posted online in the case of homework assignments and programming quizzes. Note that a regrade means just that – we will regrade your assignment from scratch, which means you may end up with a lower score after the regrade.
Class Participation
Lecture attendance is required. Some information may be presented in lecture and nowhere else. It is your responisibility to attend lecture regularly and pay attention.
Course Outline
- Week 1 - Week 5: Element of Programming in Java (values, variables, control structures, classes)
- Week 6 - Week 8: Fundamentals of Object-Oriented Programming (inheritance, polymorphism)
- Week 8 - Week 14: OOP Case Studies (Java collections framework, Java GUI programming)
- Week 15 - Week 16: Algorithms and Data Structures
Prerequisites
At least one of:
- Undergraduate Semester level CS 1301 Minimum Grade of C
- Undergraduate Semester level CS 1315 Minimum Grade of C
- Undergraduate Semester level CS 1321 Minimum Grade of C
- Undergraduate Semester level CS 1371 Minimum Grade of C
Course Materials
- Required software: Latest Java 10+ SDK, available from Oracle
- Official textbook: Introduction to Java Programming, Comprehensive Version, 10th Edition by Y. Daniel Liang, ISBN-10: 0133761312, ISBN-13: 978-0133761313
- Course websites: all course materials will be on the public web site at https://cs1331.gitlab.io/. All student grade information will be on the course’s T-Square site.
Note that the textbook is useful, but not required. We provide extensive lecture notes, example code, and programming exercises on the course web site.
Non-Discrimination
The Institute does not discriminate against individuals on the basis of race, color, religion, sex, national origin, age, disability, sexual orientation, gender identity, or veteran status in the administration of admissions policies, educational policies, employment policies, or any other Institute governed programs and activities. The Institute’s equal opportunity and non-discrimination policy applies to every member of the Institute community.
For more details see http://www.policylibrary.gatech.edu/employment/policy-nondiscrimination-and-affirmative-action