Introduction to COM379 - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Introduction to COM379

Description:

The purpose of COM379 (Advanced Object Oriented Design) is to prepare an ... be knowledge-guided perception (apperception) structured knowledge, not analysis ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 24
Provided by: harry8
Category:

less

Transcript and Presenter's Notes

Title: Introduction to COM379


1
Introduction to COM379
  • COM379 (Part-Time)
  • University of Sunderland
  • Harry R Erwin, PhD

2
Purpose
  • The purpose of COM379 (Advanced Object Oriented
    Design) is to prepare an advanced beginner for an
    entry-level programming position in an
    organization that uses object-oriented design.
  • This module corresponds to CS111o and CS112o in
    the ACM model curriculum. For further
    information, see http//www.acm.org/sigcse/cc2001
    /cc2001.pdf

3
Responsibility
  • Dr. Harry Erwin is the Module Leader for COM379
    at the University of Sunderland. You will see I
    in these presentations from time to time. Thats
    Dr. Erwin speaking based on his experience. Mr.
    James Malone and Mr. John Murray will be the
    section leaders for this class.
  • My primary research areas are computational
    neuroscience and auditory neuroethologyHow bats
    do it.
  • I also have 35 years of experience as a software
    systems engineer (mostly at TRW) on
    high-reliability systems. I supervise final
    year/MSc projects and PhD research in intelligent
    systems, security, and software engineering.
  • E-mail harry.erwin_at_sunderland.ac.uk or
    herwin_at_theworld.com

4
Objectives
  • Be able to synthesize and document an
    object-oriented design using object-oriented
    analysis and design techniques.
  • Develop an awareness of the development processes
    that underlie OO development.
  • Learn the principles of designing and
    constructing Engineered Interactive Interfaces
    (GUIs).
  • Develop a critical awareness of the concepts of
    event driven and client server application
    development.
  • Choose and implement appropriate OO solutions
    from problem descriptions, using a toolkit.
  • Critically appraise, evaluate, and implement
    designs using Java.
  • Understand current development practices and
    environments.

5
On Programming
  • When you interview for a position as an
    entry-level programmer/analyst, youll find that
    employers expect you to be able to program
    fluently.
  • Programming is not an easy skill to learn, but is
    the foundation for everything else we teach.
  • Mastering programming is like mastering the
    pianopractice is the key to your success.
  • So plan to practice programming several hours a
    week. Work on your own projects if ours are not
    interesting.

6
On Practicing
  • Ref Philip E. Ross (2006) "Secrets of the Expert
    Mind", Scientific American, 295(2)46-53, August
    2006.
  • Expertise has turned out to be knowledge-guided
    perception (apperception)structured knowledge,
    not analysisand that is the result of intensive
    training, not talent.
  • However, what matters is not experience per se,
    but "effortful study, involving continually
    tackling challenges just beyond one's competence.
  • Plan on doing this if you want to make the most
    of my modules.

7
Mistakes are Good
  • You learn by your mistakes.
  • As you continue to practice you will make
    mistakes. You will identify these mistakes and
    you will correct them. As a consequence you gain
    experience. You can then draw upon this
    experience and produce better quality code
    quicker.
  • However, without initial practice none of this
    will happen hence, when called upon to produce
    code you will simply make mistakes.
  • Make your mistakes when practicingwhen they
    dont matter.

8
Tools
  • We will use the following
  • Java 1.5 or 5.0
  • Eclipse 3.2
  • JUnit 3.8.1
  • Abbot 0.12.0
  • webct.sunderland.ac.uk for communication,
    discussions, and submitting coursework.

9
Scope of the Module
  • Terminology
  • Theory
  • An Object-Oriented Programming Language (Java)
  • Object-Oriented Methodology
  • Design Patterns

10
Outline
  • 48 Lectures
  • 24 Tutorials
  • 1 TCT (1 hour midterm)
  • 2 Projects
  • 1 Comprehensive Examination

11
Texts
  • Key texts that students are strongly encouraged
    to buy
  • T. Lethbridge and R. Laganière, 2001,
    Object-Oriented Software Engineering,
    McGraw-Hill, ISBN 0-07-709761-0.
  • D. Flanagan, 2002, Java in a Nutshell, fourth
    edition, O'Reilly.
  • http//www.patterndepot.com/put/8/JavaPatterns.htm
    (a free download!)
  • Support texts students should have access to
  • Texts in the OReilly Nutshell series (Java
    Foundation ClassesJava EnterpriseJava
    ExamplesUML in a Nutshell).
  • I. Graham, 2001, Object-Oriented Methods, 3rd
    edition, Addison-Wesley. A post-graduate text for
    advanced students.
  • Gamma, et al., 1995, Design Patterns,
    Addison-Wesley. Also advanced.
  • Other texts, papers, and websites will be cited
    from time to time.
  • Cetus Links http//www.cetus-links.org/

12
Lecture Topics
  • Java 2 (1.4.2 SDK) (6 lectures)
  • Definitions
  • Theory (concepts and principles)
  • Methods (41 methodology)
  • Design Approaches
  • Patterns

13
My Informal Marking Criteria
  • A first is supposed to mean that the student is
    qualified for an entry level position and can
    safely work on high-reliability applications.
  • An upper second is supposed to mean that the
    student is qualified for an entry level position
    andwith experiencemight safely work on
    high-reliability applications.
  • A lower second is supposed to mean that the
    student is qualified for an entry level position.
  • A third is supposed to mean that the studentwith
    additional programming practicecan reach entry
    level qualification.

14
Course Marking
  • Two elements coursework and examination, each
    counting half.
  • Programming projects are 80 of the coursework
    mark. It is possible to earn more than 80 marks
    on a project.
  • The TCT counts 20 of the coursework mark. It has
    three purposes
  • To reward early engagement with the module
    materials
  • To provide early warning of problems with the
    lecture material
  • As practice for the comprehensive examination
  • Coursework and exam marks must be at least 35,
    and the module mark must be at least 40 to pass.

15
Project Marking
  • Deliverables include
  • A zipfile with the code required to run the
    project. This must compile and run with Eclipse
    3.0 and the Java 1.4.2 SDK. No proprietary
    extensions allowed!
  • A sample compilation and run of the project.
  • Program documentation, including a listing.
  • Marking (over the semester)
  • 45 marks for design
  • 30 marks for documentation
  • 25 marks for critical assessment
  • The marking standard is based on what is expected
    of a fully competent entry-level programmer. Your
    tutors should be consulted for any questions.

16
Delivery Standards
  • There will be a standard way of delivering code
    and artifacts as solutions to your assessments.
  • Details of these standards will be provided prior
    to delivery of your assessment work and you MUST
    adhere to these.
  • Non-compliance will lose marks.
  • The use of standards is strongly supported and
    adopted throughout the software industry and it
    is important that you can demonstrate the
    discipline to abide by standards imposed upon you.

17
Design
  • 5 marks for successful compilation of a program
    designed to meet the project requirements by the
    Java 1.4 SDK.
  • 5 marks for successful execution of the program
    in that environment.
  • Up to 10 marks if most of the project
    requirements are met.
  • Up to 10 marks additional if all requirements are
    met.
  • Note that you must evaluate any requirements
    deficiencies in the status report.
  • Up to 10 marks for good object-oriented design.
  • Up to 5 marks for effective and complete use of
    comments and appropriate names in the code.
  • These marks will be distributed between the first
    and second deliveries of the project(s) to
    maintain the appropriate balance.

18
Documentation
  • Up to 5 marks for your status report, evaluating
    overall success or failure and lessons learned.
  • Up to 10 marks for documentation of your
    requirements and their traceability to the
    design
  • o Traceability showing how each requirement is
    met by your design.
  • o A test report showing how the requirements are
    met
  • Up to 15 marks for documentation of your design
  • o Overview of your architecture and design,
  • o Structural and behavioral diagrams,
  • o Written descriptions of each class,
  • o Any necessary algorithm documentation (NS
    diagrams, PDL, flow charts, or similar)
  • o A sample compilation and run of the project
  • o Program listing.
  • These marks will be distributed between the first
    and second deliveries of the project(s) to
    maintain the appropriate balance.

19
Critical Evaluation
  • Up to 25 marks for a critical evaluation of a
    specific question as it applies to your project.
  • These marks will be distributed between the first
    and second deliveries of the project(s) to
    maintain the appropriate balance.

20
Fairness in Marking
  • During marking, projects will be checked to
    determine if there is evidence for collaboration
    or cheating.
  • The mean coursework mark is expected to be about
    65. Note that that students will be able to earn
    more than 80 marks on projects for
    professional-quality work.
  • The comprehensive examination will be designed
    for a mean mark of about 50 and a standard
    deviation of about 18, so that passing the module
    is controlled by examination performance.

21
Collaboration
  • The following are permitted
  • Cooperation in developing an understanding of the
    requirements. What we dont understand, we
    explain to each other.
  • Cooperation in the diagnosis of bugs and problems
    as long as the helper does not provide code
    solutions.
  • These are pedagogically valuable and allowed.
  • The following are not allowed
  • Collaboration in developing project documentation
    and figures. Write your own report!
  • Collaboration in designing and coding the
    project. Come up with your own design and write
    your own code!
  • As long as similarity remains at or above the
    subsystem or pattern level, not extending into
    the detailed design and code, it will not be
    penalized as collaboration.

22
Allowed External Sources of Code and Design
  • Code provided by the instructor,
  • Code generated by tools,
  • Code from the key texts
  • Code from the reference texts
  • Code from http//www.patterndepot.com/put/8/JavaPa
    tterns.htm, including the supporting materials
  • Code from Gamma, et al., Design Patterns.
  • You must cite your use of this material in the
    code module where it is used.

23
Questions?
Write a Comment
User Comments (0)
About PowerShow.com