IT 206: Introduction
to Object Oriented Programming (Section 006)
Course Description:
Introduction
to Object Oriented Programming (OOP) is intended for students who want to
advance their basic programming skill to the next level by learning the OO programming
paradigm. This course is designed to teach the benefits of OOP, including
faster development, code reusability and less code maintenance. The course
accomplishes the goals through hands-on experience with a number of coding
assignments. Topics include, but are not limited to: OOP design, objects,
class, methods, inheritance, testing, debugging, graphical user interfaces
(GUIs).
Class Time:
Time: 10:30 am - 11:45 am
Days: Monday and Wednesday
Place: Engineering Building 5358
Contact Information:
Instructor: Irina Hashmi
Room: Engineering Building
# ENGR 5345
Office Hours: MTR: 12:00-
1:00 PM
Email: ihashmi@gmu.edu
Website:
http://mason.gmu.edu/~ihashmi/
GTA: TBA
Course Syllabus:
The syllabus is available here.
Outcome:
At the end of the course the student will:
·
Learn the importance of OOP programming
in solving IT related problems.
·
Understand the core concepts of OOP
through the Python programming language.
·
Understand when to use OO features and
when not to use them
·
Gain confidence in solving problems by
completing development projects of increasing
size and complexity.
Prerequisites:
A ‘C’ or better is required in the following subjects:
·
IT106
·
IT 102 or MATH 112 or MATH 125
Prerequisites are enforced by registration system and must
be completed prior to, not concurrently with, this course. If you are not sure
please contact the instructor.
Textbook:
·
Python
3 Object-Oriented Programming - by Dusty Phillips
·
Optional: free Python wiki: available here
·
Apart from the books there will be some occasional
readings. These will be posted on the class website as the semester progresses.
Course structure:
This will be an interactive and hands-on course. Class and
lab participation is compulsory because everything will be interlinked. The
class is designed in a way that if you attend class lectures and labs and
complete assignments you will succeed in the class. The course is composed of
both class lectures and lab lectures. The class will be held twice a week and
the lab will be once a week. The class lectures will be conducted by a teaching
professor and will emphasize understanding the core concepts of OOP through
presentations, demonstrations and discussion. The lab classes will be conducted
by a graduate teaching assistant (GTA or TA) and each will be divided into two
small modules: one in-lab practice assignment and one short review lecture. The
details will be uploaded in the class schedule. Students will be evaluated
through exams, quizzes and coding assignments and projects throughout the
semester. Students must attempt all the assigned work. These exercises will
help students to understand and get a good grasp on concepts and apply them to
their own areas of study.
Quizzes:
Anticipate bi-weekly quizzes. These are based upon
previously learned concepts. You should prepare for quizzes by understanding the
assigned reading and material presented in the respective course sessions and
labs. Quizzes are closed book and you are not allowed to help other. If you
miss a quiz at the beginning of a class, you can take it at the end of that
class.
Missed quizzes cannot be taken later unless there is an
unavoidable condition (documented) or pre-agreement with the instructor. One
lowest score will be dropped.
Assignments and
Projects:
Throughout the semester we will use computer the laboratory
to perform different types of coding assignments and projects. These exercises
will reinforce the materials covered in the lecture
portion of the course while also developing problem solving
skills. Unless otherwise stated by the instructor, all assignments are expected
to be an individual effort. Students are allowed to use their own computer
apart from university provided general purpose machines.
In-lab
assignments (ILA): At the beginning of each lab (unless
otherwise determined by the instructor) there will be one in-lab programming
assignment. The assignments will be simple small problems that will be based on
previous class and lab lectures. This will help you to better learn and
understand the concepts. If you cannot turn it in during the class time, you
will have a limited amount of extra time after the class to submit it,
depending on the difficulty level of the assignment. One lowest grade will be
dropped.
Bi-weekly
assignments (BWA): There will be programming assignments
that will be posted in Blackboard bi-weekly. These assignments will be based on
two or three key concepts learned in previous classes, lectures and practice
assignments. The assignments need to be submitted via Blackboard by the posted
deadline and will be given sufficient time to complete depending on the
difficulty level. One lowest will be dropped.
Final Project:
The class will have one final. The project will be based on the core OOP
concept. relevant to the OOP concepts. The project will help students to think
critically and independently, devise algorithms and convert that thought into
executable code for large, complex real-life problems.
·
All the assignments and projects MUST be submitted via Blackboard by
the posted deadlines.
·
All the assignments, both in-lab and bi-weekly, and project are
considered as individual effort unless otherwise stated by the instructor.
·
This class strictly enforces GMU honor code (please refer to Honor
Code section) and any violation will be taken seriously.
Miss policy:
You will have a total of two late dates to submit in-lab and bi-weekly assignments.
You will have 24 hours after the due date to use your miss policy. So if your assignment is due on Wednesday 11:50 PM then to
use the miss policy you must turn in the assignment by Thursday 11:50PM.
Students must turn in the final project by the due date since you will be given
enough time to plan and complete it. If you miss an exam for any condition,
including a documented medical excuse, a serious family emergency, or scheduled
university approved off campus event, you must arrange an alternate exam with
the instructor.
Tentative Grading Breakdown:
To
complete the course successfully you must attempt all the quizzes, assignments,
exams, and participate in both lecture and lab classes. Each component of the
course is weighted as follows:
Activity |
Percentages |
Class
participation/attendance |
5% |
In-lab assignments (ILA) |
10% |
Bi weekly assignments (BWA) |
20% |
Bi weekly quizzes (Q) |
10% |
Project |
15% |
Mid term |
20% |
Final |
20% |
Final grades
will be posted in the patriotweb and you will be able
to see your progress in blackboard. The grades will not be emailed to you. A
student with any hold will not be able to access the final grade or register
for the course until the Registrar has removed the hold. According to the
university policy you will have a one regular semester to adjust or question
your grade. After that time has passed a grade cannot be changed by the system.
Final averages are assigned a letter grade according to the following
conversion system:
Percentage |
Grade |
>= 98.0 |
A+ |
>= 92.0 |
A |
>= 90.0 |
A- |
>= 88.0 |
B+ |
>= 82.0 |
B |
>= 80.0 |
B- |
>= 78.0 |
C+ |
>= 72.0 |
C |
>= 70.0 |
C- |
>= 60.0 |
D |
<60.0 |
F |
Tentative Class Schedule:
*In-lab Assignment =
ILA, Bi-weekly Assignment = BWA, Quiz = Q
**
Please check patriotweb for your lab time
Week |
Date |
Topics |
Quiz |
Assignment |
Project |
Lab** |
|
||
1 |
Jan 22 |
Class intro, honor code |
NO LAB |
|
|||||
Jan 24 |
Review 106: Control structure and looping |
|
|||||||
2 |
Jan 29 |
Review 106: Data structure |
Lab Intro Python 3 |
|
|||||
Jan 31 |
Classes and objects |
Q1 |
|
||||||
3 |
Feb 5 |
Classes and objects cont. |
BWA1 |
ILA1 |
|
||||
Feb 7 |
Scope and visibility |
|
|||||||
4 |
Feb 12 |
Inheritance |
ILA2 |
|
|||||
Feb 14 |
Inheritance cont |
Q2 |
|
||||||
5 |
Feb 19 |
Module and Packages |
BWA1 DUE BWA2 |
ILA3 |
|
||||
Feb 21 |
Polymorphism |
|
|||||||
6 |
Feb 26 |
Case Study |
ILA4 |
|
|||||
Feb 28 |
Exception |
Q3 |
|
||||||
7 |
Mar 5 |
Python
Containers |
BWA2 DUE (Mar 6,
11:50 PM) |
ILA5 |
|
||||
Mar 7 |
Midterm exam study guide |
BWA3 |
|
||||||
8 |
Mar 12 – Mar 18 Spring BREAK! No Lab and lectures!!! |
|
|||||||
9 |
Mar 19 |
Midterm |
NO LAB |
|
|||||
Mar 21 |
Snow day, class meets May 8 |
BWA3 DUE BWA4 |
|
||||||
10 |
Mar 26 |
GUI |
|
Project
Released (April 2, 11:50 PM) |
ILA6 |
|
|||
Mar 28 |
GUI
|
Q4 |
|
||||||
11 |
Apr 2 |
OOP shortcuts |
|
ILA7 |
|
||||
Apr 4 |
TBD |
BWA4 DUE (Apr 8, 11:50 PM) BWA5 (released on the
day of BWA4 due) |
|
||||||
12 |
Apr 9 |
Unified Modeling Language (UML) |
ILA8 |
|
|||||
Apr 11 |
Comprehensions and generator |
Q5 |
|
||||||
13 |
Apr 16 |
Advanced topics, Final
project discussion |
|
ILA9 |
|
||||
Apr 18 |
Advanced
Packages (Numpy) |
BWA5 due (April 22, 11:50 PM) |
|
|
|
||||
14 |
Apr 23 |
Testing |
ILA10 |
|
|||||
Apr 25 |
Advanced
Topics (Pandas) |
Q6 |
|
||||||
15 |
Apr 30 |
Final
Exam study guide |
ILA11 |
|
|||||
May 2 |
Work
on Final Project |
Final Project Due
(May 6, Friday 11:50 PM) |
|
||||||
|
May 8 |
Review Class |
|
|
|
|
|
||
16 |
FINAL EXAM (Same location as lecture
class) |
|
Honor code:
In this
course you are expected to create your work on your own. Academic dishonesty
include representing someone else's work as own, copy past or current work as
part or as whole from friend, relative, book, article, Internet source,
colleague, relative, faculty member, or from stranger. Academic dishonesty can
be plagiarism, collusion or any sort of cheating. Since most of the assignments
and projects you will be working on your own time, it is expected that you work
independently unless otherwise instructed by the instructor. Submission of
assignments under your name indicates that you understand and agree to abide by
the Honor System and Code of GMU (http://oai.gmu.edu/the-mason-honor-code-2/).
Any violations of academic honesty (http://oai.gmu.edu/the-mason-honor-code-2/)
will be taken seriously.
Disability Statement:
If a disability or other condition affects your academic
performance, document it with the Office
of the Disability Services. Try to make arrangements early to avoid
any kind of problem during the semester and inform the instructor at least one
week before the semester starts.