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

Wed. May 9,

10:30 am – 1:15 pm

 

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.