LnRiLWZpZWxke21hcmdpbi1ib3R0b206MC43NmVtfS50Yi1maWVsZC0tbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRiLWZpZWxkLS1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRiLWZpZWxkLS1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS50Yi1maWVsZF9fc2t5cGVfcHJldmlld3twYWRkaW5nOjEwcHggMjBweDtib3JkZXItcmFkaXVzOjNweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwYWZlZTtkaXNwbGF5OmlubGluZS1ibG9ja311bC5nbGlkZV9fc2xpZGVze21hcmdpbjowfQ==
LnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lci50Yi1jb250YWluZXJbZGF0YS10b29sc2V0LWJsb2Nrcy1jb250YWluZXI9ImNlODg0MDE5NzQ3ZjQ2YzBmMTAwZWY5MWI0MDk1OGNjIl0geyBib3JkZXItcmFkaXVzOiA1cHg7cGFkZGluZzogMjVweDsgfSAudGItY29udGFpbmVyIC50Yi1jb250YWluZXItaW5uZXJ7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtY29udGFpbmVyLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iNzkxNTVmMTI5Mzk4MTNkNzQ5MzFkOTk2MzRkMjllNDYiXSB7IGJvcmRlci1yYWRpdXM6IDVweDtiYWNrZ3JvdW5kOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7cGFkZGluZzogNXB4IDM1cHggNXB4IDM1cHg7IH0gLnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lci50Yi1jb250YWluZXJbZGF0YS10b29sc2V0LWJsb2Nrcy1jb250YWluZXI9IjhlODg0NGUyZjFiMzIxOWE4YWM2NjJhMzgyMWNmY2E4Il0geyBwYWRkaW5nOiAyNXB4OyB9ICAgLnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lci50Yi1jb250YWluZXJbZGF0YS10b29sc2V0LWJsb2Nrcy1jb250YWluZXI9IjViMDQ3MWM0OWIxZDM0YzZkODFkYmI0NmUzYjJjY2YzIl0geyBwYWRkaW5nOiAyNXB4OyB9IC50Yi1ncmlkLC50Yi1ncmlkPi5ibG9jay1lZGl0b3ItaW5uZXItYmxvY2tzPi5ibG9jay1lZGl0b3ItYmxvY2stbGlzdF9fbGF5b3V0e2Rpc3BsYXk6Z3JpZDtncmlkLXJvdy1nYXA6MjVweDtncmlkLWNvbHVtbi1nYXA6MjVweH0udGItZ3JpZC1pdGVte2JhY2tncm91bmQ6I2QzOGEwMztwYWRkaW5nOjMwcHh9LnRiLWdyaWQtY29sdW1ue2ZsZXgtd3JhcDp3cmFwfS50Yi1ncmlkLWNvbHVtbj4qe3dpZHRoOjEwMCV9LnRiLWdyaWQtY29sdW1uLnRiLWdyaWQtYWxpZ24tdG9we3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1jZW50ZXJ7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpjZW50ZXJ9LnRiLWdyaWQtY29sdW1uLnRiLWdyaWQtYWxpZ24tYm90dG9te3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWNvbnRlbnQ6ZmxleC1lbmR9IC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJjNWJiOGIzYzMwY2MzOWExMzllNTNiZWY3NjMwZDdhMyJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMC41ZnIpIG1pbm1heCgwLCAwLjVmcik7Z3JpZC1jb2x1bW4tZ2FwOiAzMnB4O2dyaWQtcm93LWdhcDogNDRweDtncmlkLWF1dG8tZmxvdzogcm93IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAyKSB7IGdyaWQtY29sdW1uOiAyIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49IjQ2ZGNkMGU3MjI5ZDMwZTI4NmNkNDE0ZTE0NmYyNjRlIl0geyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7Ym9yZGVyLXJhZGl1czogNXB4O3BhZGRpbmctcmlnaHQ6IDM1cHg7cGFkZGluZy1sZWZ0OiAzNXB4O2Rpc3BsYXk6IGZsZXg7IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49IjQ2ZGNkMGU3MjI5ZDMwZTI4NmNkNDE0ZTE0NmYyNjRlIl0gcCB7IGZvbnQtc2l6ZTogMThweDsgfSAgLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijk0MzBmNTg3NTEwMzg3NTI4ZDI4ZGI2MWNmYWQxNDJhIl0geyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7Ym9yZGVyLXJhZGl1czogNXB4O3BhZGRpbmctcmlnaHQ6IDM1cHg7cGFkZGluZy1sZWZ0OiAzNXB4O2Rpc3BsYXk6IGZsZXg7IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijk0MzBmNTg3NTEwMzg3NTI4ZDI4ZGI2MWNmYWQxNDJhIl0gcCB7IGZvbnQtc2l6ZTogMThweDsgfSAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODFweCkgeyAudGItY29udGFpbmVyIC50Yi1jb250YWluZXItaW5uZXJ7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gIC50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtcm93LWdhcDogMjRweDtncmlkLWF1dG8tZmxvdzogcm93IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0gID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDFuKzEpIHsgZ3JpZC1jb2x1bW46IDEgfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW4udGItZ3JpZC1jb2x1bW5bZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbj0iNDZkY2QwZTcyMjlkMzBlMjg2Y2Q0MTRlMTQ2ZjI2NGUiXSB7IGRpc3BsYXk6IGZsZXg7IH0gIC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbi50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSI5NDMwZjU4NzUxMDM4NzUyOGQyOGRiNjFjZmFkMTQyYSJdIHsgZGlzcGxheTogZmxleDsgfSAgIH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkgeyAudGItY29udGFpbmVyIC50Yi1jb250YWluZXItaW5uZXJ7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gIC50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtZ3JpZC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iYzViYjhiM2MzMGNjMzlhMTM5ZTUzYmVmNzYzMGQ3YTMiXSAgPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSkgeyBncmlkLWNvbHVtbjogMSB9IC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbi50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSI0NmRjZDBlNzIyOWQzMGUyODZjZDQxNGUxNDZmMjY0ZSJdIHsgZGlzcGxheTogZmxleDsgfSAgLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijk0MzBmNTg3NTEwMzg3NTI4ZDI4ZGI2MWNmYWQxNDJhIl0geyBkaXNwbGF5OiBmbGV4OyB9ICAgfSA=
Course Description
This course conveys 10 important object-oriented (OO) properties with an acronym called MICE OR PIGS. The understanding of these 10 vital properties will help you realize the characteristics of OO programming languages, learn to apply OO design and development API, utilize formal notations for software design, and achieve software reuse. You are going to take advantage of CASE tools to facilitate fast software development. Besides, you apply the learned object-oriented design knowledge to specialize in 2D computer graphics and graphical user interface design, and practice simple 2-tier network programming.
This course orientation introduces me (the instructor) to you. Please take advantage of the virtual office hours (appointment only between 9:00AM ~ 5:00PM Eastern Time), emails and discussion forums to resolve your questions. The Canvas website will be the portal to view course materials and submit your work. The course progression and submission due dates are detailed in the course schedule. To be successful, please conform to the schedule without delay.
Prerequisite: CMPSC 122 (Intermediate Programming)--Introduction to the object-oriented programming, recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, and trees), the basics of algorithmic analysis, and an introduction to the principles of language translation.
Overview
SWENG 311 has a strong focus on design. The main goal is to learn object-oriented (OO) design utilizing the Java programming language as the learning tool. The programming exercises aim at guiding you to apply the understanding of design.
Course Outline:
Module 1 – OO Technology Module 2 – Intro to Java Module 3 – Classes, Objects, and Data Types Module 4 – Fields, Methods, and Parameters Module 5 – Control Statements Module 6 – Arrays and ArrayLists Module 7 – Information and Implementation Hiding Module 8 – Inheritance Module 9 – Polymorphism Module 10 – Class Relationships Module 11 – Data Streams and File I/O Module 12 – Exception Handling Module 13 – Multi Threading Module 14 – Generics Module 15: Final Project
Learning Goals
By the end of this semester, you will …
- employ the principles of object-oriented design and its merits on software re-usability.
- interpret encapsulation, state retention, inheritance, polymorphism, and generics in object-oriented design.
- apply the concept of data types, classes, objects, attributes, operations, and messages.
- demonstrate how to perform information hiding and sharing using access modifiers, overriding and static variables.
- show how to implement constructors and operations, and define interfaces, abstract operations and classes for generalization / inheritance purposes.
- demonstrate how to design and develop client / server programs, and concurrent applications.
- operate software tools to do design, implement systems, and generate API documents.
- practice the formal UML notations to draw class diagrams and the static relationships among classes.
- employ GUI designs, printing control, graphics, and file I/O.
- produce Exception classes for errors control at compile time and run time.
- apply APIs and double buffering technique for graphical development and applications.
Course Requirements and Grading
1. Grading Policy
Required (Graded) Discussion Forums |
5% |
Due by the end of each module, 11:59 pm Thursday (your own post); 11:59 pm Sunday (replies to others) |
Mid Term 1 |
14% |
The end of Module 6–Check your course schedule |
Mid Term 2 |
15% |
The end of Module 10–Check your course schedule |
Final Exam |
18% |
Dates to be announced |
Quiz |
8% |
Due by the end of each module, 11:59 pm Saturdays |
Labs / Assignments |
30% |
Due by 11:59 pm on Sunday |
Final Project |
10% |
Due by 11:59 pm of Module 15. |
2. Grade Assignments
A > 92.5 |
A- 88.5 – 92.5 |
B+ 84.5 – 88.5 |
B 80.5 – 84.5 |
B- 76.5 – 80.5 |
C+ 72.5 – 76.5 |
C 68.5 – 72.5 |
D 64.5 – 68.5 |
F < 64.5 |