Course Outlines ACIT 2515 200910 - BCIT School of ...

weaverchurchSoftware and s/w Development

Aug 15, 2012 (4 years and 10 months ago)

313 views


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

1
?



Course Outline


School of Computing and Academic Studies

Program: Computer Information Technology

Option: First Year

ACIT 2515

Software Design and Data Structures


Start Date:


January 2009

End Date:


April 2009

Total Hours:

60

Total Weeks
:

15


Term/L
evel:

2

Course Credits:

4

Hours/Week:

4

Lecture
:

2

Lab:

2







Prerequisites


is a Prerequisite for:

Course No.

Course Name


Course No.

Course Name

ACIT 1515

Object Oriented Programming

ACIT3900

ACIT 4850

Computer Projects Practicum I

Integrative Pro
gramming &
Technologies




Course Description (required)

Continues the introduction to object
-
oriented programming begun in the Object Oriented Programming course, with
an emphasis on application design, data structures, and software engineering.





Evaluation

Assignments

30%


Comments:

Labs

25%



Midterm Examination

20%



Final Examination

25%



TOTAL

100%






Course Learning Outcomes/Competencies

Upon successful completion, the student will be able to:




Specify and design software for a m
edium
-
sized standalone software product using a software
requirement specification, an object
-
oriented design methodology, and appropriate design notation.



Use an enterprise
-
class development environment and related tools



Design, implement, test and debug
programs that use large
-
scale APIs.



Describe and contrast standard data structures, including queues, linked lists, sets and maps.



Describe a multi
-
tiered modern OO application design



Demonstrate appropriate design and implementation of a small domain mode
l



Demonstrate appropriate design and implementation of a small business model



Demonstrate appropriate design and implementation of a small graphical user interface



Demonstrate appropriate design and implementation of a data access package for storing objec
t data in a
legacy database




Course Outline



(cont’d.)


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

2
?



Verification

I verify that the content of this course outline is current.




Jim Parry


Nov 27, 2008

Authoring Instructor


Date


I verify that this course outline has been reviewed.







Program Head/Chief Instructor


Date


I verify that this co
urse outline complies with BCIT policy.







Dean/Associate Dean


Date



Note: Should changes be required to the content of this course outline, students will be given reasonable notice.






Instructor(s)

Jim Parry

Office Location:

SW2
-
124

Office P
hone:

604
-
432
-
8464

Office Hrs.:

T.B.A.

E
-
mail Address:

jim_parry@bcit.ca






Learning Resources

Required Software:



NetBeans

development environment, version 6.5; free download from
www.netbeans.org



Java SDK v6, f
ree download from java.sun.com



Recommended Text:



Objects First with Java (fourth edition)
, by David J. Barnes & Michael Kölling; Prentice Hall 2008;

ISBN 0
-
13
-
606086
-
2

Course Outline



(cont’d.)


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

3
?



Information for Students

(
Information below can be adapted and supplemented as ne
cessary.
)


Assignments:
Late assignments, lab reports or projects will
not

be accepted for marking. Assignments must be done on an
individual basis unless otherwise specified by the instructor.

Makeup Tests, Exams or Quizzes:

There will be
no

makeup tests
, exams or quizzes. If you miss a test, exam or quiz, you will
receive zero marks. Exceptions may be made for
documented

medical reasons or extenuating circumstances. In such a case, it
is the responsibility of the student to inform the instructor
immediat
ely
.

Ethics:
BCIT assumes that all students attending the Institute will follow a high standard of ethics. Incidents of cheating or
plagiarism may, therefore, result in a grade of zero for the assignment, quiz, test, exam, or project for all parties invol
ved
and/or expulsion from the course.

Attendance:

The attendance policy as outlined in the current BCIT Calendar will be enforced. Attendance will be taken at the
beginning of each session. Students not present at that time will be recorded as absent.

Il
lness:

A doctor’s note is required for any illness causing you to miss assignments, quizzes, tests, projects, or exam
.
At the
discretion of the instructor, you may complete the work missed or have the work prorated.

Attempts:

Students must successfully co
mplete a course within a maximum of three attempts at the course. Students with two
attempts in a single course will be allowed to repeat the course only upon special written permission from the Associate Dean
.
Students who have not successfully completed
a course within three attempts will not be eligible to graduate from the
appropriate program.

Course Outline Changes:

The material or schedule specified in this course outline may be changed by the instructor. If
changes are required, they will be announc
ed in class.




Course Outline



(cont’d.)


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

4
?



Assignment Details

Planned out of class work hours:

1
-
2 hours for every timetabled hour

Assignments: Five, roughly every two weeks, due on Sundays 11.59pm.

Lab Exercises: Weekly, due at the end of lab, with built in hours for working on assignments.


Assignment #1


Multi
-
tiered application design; due end of week 3

Given a problem statement, produce the first cut of an n
-
tier application design.

Produce entity relationship diagram, class diagram, sequence diagram.

Tool: NetBeans, with UML modeling plu
gin

Assignment #2


Domain model implementation; due end of week 5

Complete the design of the domain objects for the problem: attributes and behaviours.

Produce design class diagram, and implement the domain classes as JavaBeans in a NetBeans project.

Gene
rate & simply flesh out unit testing for the domain package.

Tool: NetBeans (code generation, test generation, build/test scripts)

Assignment #3


Business tier implementation; due end of week 8

Incorporate use case handling into the project, and build a r
oot data model.

Update the class & sequence diagrams; implement the control and model packages.

Tool: NetBeans (refactoring, UML modeling)

Assignment #4


Presentation tier implementation; due end of week 12

Mock up a user interface to handle the use cases

identified.

Refine the use case descriptions.

Implement the view package, incorporating a main window and appropriate dialogs.

Tool: NetBeans (Matisse GUI builder)

Assignment #5


Data tier implementation; due end of week 14

Design and implement a data pa
ckage, to provide for storing and retrieving the application state using a legacy database.

Apply appropriate facade and adapter design patterns to ensure a smooth and elegant transition/translation between an object
model and a
a relational data model.

To
ol: NetBeans (refactoring, database plugin)


The intent of the group of assignments is to guide the student through “proper” design and implementation of a
complete small application. All of the assignments will pertain to the same application, and the go
al is to have a
functional application by the end of the course.


Most design decisions will have already been made, and these will be explained in the assignment handouts. The
student will have to complete the design, making low
-
level choices, and then im
plement the resulting completed
design. Lab exercises will provide workshops to lead the student through the techniques needed to implement each
assignment.


Assignment solutions will be posted the day after the due date for any given assignment, for the s
tudents to learn
from and even perhaps adopt for their next assignment.
Course Outline



(cont’d.)


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch
_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

5
?

Schedule


Week of/

Number

Outcome/Material Covered

Reference/

Reading

Assignment

Due Date

1A

Application design

Review of ACIT1515 design lessons

Principles: high cohesion & low coupl
ing

Practices: 3
-
tier model

Conventions: JavaBeans

OFJ 1
-
8



2A

Use case realization

Principles: application partitioning

Practices: use case realization

Conventions: UML diagrams;

(NB)

#1

End week 3

2B

General OO design principles

Principles: inheritanc
e, polymorphism

Practices: cohesion & coupling

OFJ 8



3A

General OO design patterns

Principles: MVC

Practices: scope & typing

Conventions: design pattern writeups

OFJ 13

(DPC)



3B

Domain model design

Principles: abstraction

Practices: class design

Conv
entions: UML class diagrams

OFJ 9



4A

Design class diagrams

Principles: association

Practices: typing & interfaces

Conventions: UML collaboration diagrams

(NB)

#2

End week 5

4B

Domain model data structures

Principles: abstract classes

Practices: UML mod
eling

Conventions: UML class diagrams

OFJ 10



5A

Java collection framework

Principles: aggregation & composition

Practices: sets & maps

Conventions: Java API

(DPC)

(tutorial)



5B

Use case controllers

Principles: MVC

Practices: use case controller class
es

Convention: command pattern

(DPC)

#3

End week 8

6A

Enforcing business rules (exceptions)

Principles: Exception mechanism

Practices: exception triggering and
handling

OFJ 12

(DPC)

(tutorial)



Course Outline



(cont’d.)


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch
_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

6
?

Week of/

Number

Outcome/Material Covered

Reference/

Reading

Assignment

Due Date




6B

Managing object collections

Principles: Data structur
es

Practices: queues, linked lists, maps

Conventions: Java API

(DPC)

(tutorial)




7A

Business tier design patterns

Principles: cohesion, business rules

Practices: use case realization

Conventions: facade & observer patterns

(DPC)




7B

Concurrency (thre
ads)

Principles: concurrency

Practices: threads, synchronization

Conventions: Java API

(DPC)

(tutorial)



8A

Business tier issues

Principles: cohesion

Practices: root domain model

Conventions: UML class diagram &
packaging

(DPC)




8B

Midterm

Previous ye
ar's midterm available for
practice




9A

Presentation tier design

Principles: MVC, view

Practices: containers & components

OFJ 11

(tutorial)

#4

End week 12

9B

Frames & menus

Principles: GUI containers

Prac
tices: windows, menus, mnemonics

Conventions: Java Swing API

OFJ 11

(tutorial)



10A

GUI components

Principles: user interaction, UI models

Practices: buttons, sliders, text

Conventions: Java Swing API

OFJ 11

(tutorial)



10B

GUI event handling

Principle
s: observer pattern

Practices: listeners, adapters

Conventions: Java Swing API

OFJ 11

(tutorial)



11A

GUI layout

Principles: hinted layout

Practices: CardLayout, GraphPaperLayout

OFJ 11

(tutorial)

#5

End week 14

Course Outline



(cont’d.)


C:
\
Program Files
\
neevia.com
\
docConverterPro
\
temp
\
NVDC
\
8903D7E6
-
AB2D
-
4047
-
A796
-
978967B09C11
\
weaverchurch
_de1e1232
-
9394
-
4e63
-
b685
-
1e9fcea4c27e.doc

03/13

Format02

7
?

Week of/

Number

Outcome/Material Covered

Reference/

Reading

Assignment

Due Date

Conventions: Java Swing API

11B

Dialogs

P
rinciples: user interaction

Practices: dialogs, data transfer, option
panes

Conventions: Java Swing API

OFJ 11

(tutorial)



12A

Wiring the GUI to the model

Principles: MVC, event handling

Practices: controllers

(DPC)

(tutorial)



12B

Tabular data models

Principles: tabular data representation

Practices: TableModel, JTable

Conventions: Java Swing API

(DPC)

(tutorial)



13A

Tree data models

Principles: tree data representation

Practices: JTree, TreeModel

Conventions: Java Swing API

(DPC)

(tutorial)



13B

Data tier design patterns

Principles: n
-
tier design

Practices: adapters, object state

(DPC)



14A

Simple I/O

Principles: streaming I/O

Practices: streams, readers, properties

Conventions: Java I/O API

(tutorial)




14B

Choosing data structures wisely

Pri
nciples: data representation

Practices: collections, n
-
tier design

Choosing algorithms wisely

Principles: data manipulation

Practices: collections, cohesion




15

Final exam week





Note: The lecture schedule is a guideline only.


Note: In the referenc
e/reading column, “OFJ” refers to the text
Objects First With Java
, (NB) refers to online
tutorial material on the
NetBeans

site, (DPC) refers to online readings from the Java
Design Patterns Catalog
, and
(tutorial) refers to assigned readings from the onl
ine
Java Tutorial
.