CS 211: Object Oriented Programming
George Mason University Department of Computer Science
Fall 2018 - 004 - 10:30-11:45am Tue/Thu - L004 Exploratory Hall
Fall 2018 - 006 - 3:00-4:15pm Mon/Wed - 178 Enterprise Hall
Instructor: Ivan Avramovic
Email: iavramo2-at-gmu.edu
Hours: 12:00-1:00pm Tue/Thu, 4609 Engineering Building

Assistants: see Piazza
Prerequisites: CS112 (C or better) and access to a Java-capable computer
Format: Lecture plus weekly lab
Textbooks:
CS 211 Lab Manual, available for free download from https://cs.gmu.edu/~marks/211/textbook/
zyBooks Programming in Java, available online at https://learn.zybooks.com/ (access using the sign-in code GMUCS211AvramovicFall2018)
(Optional) Reges and Stepp, Building Java Programs, 3rd ed., available online at https://practiceit.cs.washington.edu/

Webpage: https://mason.gmu.edu/~iavramo2/classes/cs211f18.html
Piazza: Piazza will be used for all official announcements and online discussion; any information discussed on Piazza will be assumed to be known to students.
Blackboard: Blackboard will be used to provide and submit assignments, as well as to view grades.

Outcomes

  1. An understanding of basic object-oriented (OO) programming concepts and principles.
  2. An ability to apply basic object-oriented principles and techniques in the development of software systems using a specific programming language.
  3. An ability to effectively develop software systems using both basic command line tools and sophisticated integrated development environments, and to understand the advantages and limitations of each.
  4. An ability to successfully perform debugging operations and techniques.
  5. An ability to perform software development in both individual and team environments.
  6. An understanding of programming-related references/resources available to software developers and the ability to use them effectively - both in ongoing projects and in the acquisition of new technical skills.
  7. An understanding of how acquired programming skills facilitate success in upper level CS courses and in various professional environments.
Coursework Description

Grade Distribution

MaterialWeightDrop policy
zyBooks5%lowest 15 subsections
Labs (weekly)10%lowest two
Programming projects (5-7)40%none
Midterm exams (2)20%-
Final exam25%-

Grading Policies

Emergency Tokens

Grading Scale

Grade A+AA- B+BB- C+CC- DF
max 9791 898781 797771 6959
min 989290 888280 787270 60

General Policies

Tips

Honor Code

Unless specific instructions are given to the contrary, programming assignments are an individual effort, no group work is allowed. In addition to code, this includes the sharing of test cases, pseudocode, or approaches, receiving assistance in debugging code, as well as the use of external Internet sites. Both the GMU Honor Code and the CS Department Honor Code apply in this class. Any use of a direct contribution on any program, homework, quiz, or exam will be reported as a violation of the honor code.

Special Accommodations

Students who have a right to accommodations due to disabilities or other conditions should discuss this with the instructor as soon as possible. Accommodations will follow the recommendations of the University's Office of Disability Services.

Schedule

WeekDateTopic(s) and Lab Text readingzyBooks readingLabNotes
week 1Introduction; Basics; Flow control, Sections 1,21-4Exercise-1
Thu, Aug 30E1 assigned
week 2Arrays; Input/Output, Sections 3-55,6Quiz-2
Mon, Sep 31-4 dueLabor Day, no class
Thu, Sep 6E1 dueProject 1 assigned
Fri, Sep 7Q2, sec 215/216
Mon, Sep 10Q2, sec 217/218
Tue, Sep 11Q2, sec 213/214/219/220
week 3Classes; Objects; Methods; Fields, Section 67,8Exercise-3
Mon, Sep 105,6 due
Thu, Sep 13E3 assigned
week 4Inheritance; Polymorphism; Dynamic dispatch, Section 79Task-4
Mon, Sep 177,8 due
Thu, Sep 20E3 dueProject 1 due
Fri, Sep 21T4, sec 215/216
Mon, Sep 24T4, sec 217/218
Tue, Sep 25T4, sec 213/214/219/220
week 5Exercise-5
Mon, Sep 24Review, sec 006
Tue, Sep 25Review, sec 004
Wed, Sep 26Midterm 1, sec 006
Thu, Sep 27E5 assignedMidterm 1, sec 004; Project 2 assigned
week 6Abstract classes; Interfaces; Packages; Enums, Sections 8,910Exercise-6
Mon, Oct 19 due
Thu, Oct 4E5 due
Thu, Oct 4E6 assigned
week 7Exceptions; Command line args; Javadocs, Sections 10,11,1311,12Quiz-7
Mon, Oct 810 dueColumbus Day, no class
Tue, Oct 9Monday sections meet
Thu, Oct 11E6 dueProject 2 due; Project 3 assigned
Fri, Oct 12Q7, sec 215/216
Mon, Oct 15Q7, sec 217/218
Tue, Oct 16Q7, sec 213/214/219/220
week 8Unit testing, Section 12Exercise-8
Mon, Oct 1511,12 due
Thu, Oct 18E8 assigned
week 9Generics, Section 1413Task-9
Thu, Oct 25E8 dueProject 4 assigned
Fri, Oct 26T9, sec 215/216Project 3 due
Mon, Oct 29T9, sec 217/218
Tue, Oct 30T9, sec 213/214/219/220
week 10Exercise-10
Mon, Oct 2913 due
Wed, Oct 31Review, sec 006
Thu, Nov 1E10 assignedReview, sec 004
week 11Recursion, Section 1514
Mon, Nov 5Midterm 2, sec 006
Tue, Nov 6Midterm 2, sec 004
week 12Sort & search, Section 1615,16Quiz-11
Mon, Nov 1214 due
Tue, Nov 13Project 4 due
Thu, Nov 15E10 due
Fri, Nov 16Q11, sec 215/216
Mon, Nov 19Q11, sec 217/218
Tue, Nov 20Q11, sec 213/214/219/220
week 13Sort & search, Section 16
Mon, Nov 1915 dueProject 5 assigned
Wed-FriThanksgiving, no class
week 14Lists; CollectionsExercise-12
Sun, Nov 25E12 assigned
Mon, Nov 2616 due
week 15Stacks & queuesQuiz-13
Sun, Dec 2E12 due
Mon, Dec 3Q13, sec 217/218
Tue, Dec 4Q13, sec 213/214/219/220Project 5 due
Wed, Dec 5Review, sec 006
Thu, Dec 6Review, sec 004
Fri, Dec 7Q13, sec 215/216
exam week
Mon, Dec 17Final exam, sec 006, 1:30-4:15pm
Tue, Dec 18Final exam, sec 004, 10:30-1:15pm