CS 211: Object Oriented Programming
George Mason University Department of Computer Science

Spring 2019


1. Course Basics

1.1 Prerequisites:

CS112 (C or better) and access to a Java-capable computer

1.2 Format:

Lecture plus weekly lab

1.3 Webpage:

https://mason.gmu.edu/~iavramo2/classes/cs211s19.html

1.4 Textbooks:

1.5 Instructors:

Name:

Ghada Alnifie

Ivan Avramovic

Email:

galnifie-at-gmu.edu

iavramo2-at-gmu.edu

Hours:

12:30–2:30pm Thu

10:30-11:30am Tue/Thu

Office:

ENGR 5309

ENGR 4609


1.6 Assistants:



1.7 Lectures:

#

Day

Time

Location

Professor

001

TR

10:30 – 11:45 am

ENGR 1101

Alnifie

002

MW

1:30 – 2:45 pm

PLANET 129

Avramovic

003

TR

12 – 1:15 pm

ENT 178

Avramovic

005

TR

3 – 4:15 pm

PLANET 131

Alnifie

H01

TR

3 – 4:15 pm

PLANET 131

Alnifie



1.8 Piazza: used for all official announcements and online discussion; any information discussed on Piazza will be assumed to be known to students.


1.9 Blackboard: used to provide and submit assignments, as well as to view grades.



2. Course Information

2.1 Course Description:

Thorough treatment of programming according to object-oriented principles. Introduces classes, interfaces, inheritance, polymorphism, and single dispatch as means to decompose problems. Covers intermediate programming techniques including error handling through exceptions, arrangement of source code into packages, and simple data structures. Intermediate debugging techniques and unit testing are covered.

2.2 Course 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.



3. Coursework



4. Grading Procedures

4.1 Grade Distribution:

Material

Weight

Drop policy

zyBooks

5%

lowest 15 subsections

Labs (weekly)

10%

lowest three

Programming projects (5-6)

40%

none

Midterm exams (2)

20%

-

Final exam

25%

-


4.2 Grading Policies:

4.3 Emergency Tokens

4.4 Honors Section Differences (Sec H01)

During some lectures, additional material will be mentioned with some reading associated with it. Students in H01 are expected to do these additional readings and master those topics as they may appear on the H01 tests and final exams. Each programming project will have an "Honors Problem" which honors students must complete. These problems may reflect the additional topics covered in lecture and often be more difficult than other portions of the project. Grading projects for honors students will be out of total points available including the honors section: each project will have 100 points plus an honors section, frequently worth up to 20 points. In such cases honors students will be scored e.g. as X / 120 for a score of X on a project with 120 points. For example, an honors student who turns a project in on time and receives a 99 on it will get 99/120 = 82.5% for the project. Late projects will have the standard class late policy.

4.5 Grading Scale

Grade

A+

A

A-

B+

B

B-

C+

C

C-

D

F

max

97

91

89

87

81

79

77

71

69

59

min

98

92

90

88

82

80

78

72

70

60



Tips



5. 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.



6. 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.