Download presentation
Presentation is loading. Please wait.
Published byLuke Joel Lane Modified over 9 years ago
1
Introduction to CSE301 CSE301 University of Sunderland Harry R Erwin, PhD
2
Purpose The purpose of CSE301 (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 http://www.acm.org/sigcse/cc2001/cc2001.pdf
3
Responsibility Dr. Harry Erwin is the Module Leader for CSE301 at the University of Sunderland. You will see ‘I’ in these presentations from time to time. That’s Dr. Erwin speaking based on his experience. My primary research areas are computational neuro- science and auditory neuroethology—‘How 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@sunderland.ac.uk or herwin@theworld.comharry.erwin@sunderland.ac.uk herwin@theworld.com
4
Objectives Upon successful completion of this module, students will have demonstrated 1.Understanding of methods of object oriented (OO) analysis and design using an appropriate notation. This is demonstrated by the projects and the examination. 2.Understanding of professional development processes appropriate to the various stages of OO development. This is demonstrated by all elements of assessment. 3.Fluency at the level of an advanced beginner in a programming language suitable for object-oriented development. This is demonstrated by all elements of assessment. and the ability to 4.Critically evaluate and choose from a range of approaches to developing OO software. This is demonstrated by the examination. 5.Critically evaluate alternative OO designs as potential solutions to particular software requirements. This is demonstrated by the first and second projects and the examination.
5
On Programming When you interview for a position as an entry-level programmer/analyst, you’ll 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 piano— practice 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. There is also a recent article in New Scientist reporting the same results Expertise turns out to be knowledge-guided perception (apperception)—structured knowledge, not analysis—and is usually the result of intensive training, not talent. What matters is not experience per se, but “effortful study”, involving continually tackling challenges just beyond one's competence. Plan on effortful study and interacting with your tutors 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 practicing—when they don’t matter.
8
On Mentoring Most people can’t judge their level of competence, so that’s where good teachers and mentors come in. Find someone who will give you an objective view of how well you are doing. Don’t worry about how well you’re doing in comparison to others—just be concerned that you are making progress.
9
How do you decide what to do in a module? Some people follow the rules. Others try to do what comes naturally. Yet others set goals for themselves and work towards them.
10
Goals and Practical Values Most goals require work—practise—for you to become excellent. There is a technical term for the things you practise to reach a goal—they’re virtues (Latin virtus; Greek ἀ ρετή). For example, Aristotle identified four practical virtues that he believed led to a happy life.
11
Aristotle’s Practical Virtues Courage Justice Temperance Prudence
12
Tom Wright’s List of Academic Virtues Honesty Patience Care Confidence that it all makes sense in the end
13
Goal Exercise Take out a piece of paper Start by writing down a goal you have in this module –What do you want to be able to do in five years? To be a programmer-analyst? To be an academic? To make lots of money? To have a family? To be happy? Now list four virtues whose practise will lead to that goal.
14
Discussion
15
Tools We will use the following: –Java 1.5 or 5.0 –Eclipse 3. 2 –JUnit 3.8.1 –webct.sunderland.ac.uk for communication, discussions, and submitting coursework.
16
Scope of the Module Terminology Theory An Object-Oriented Programming Language (Java) Object-Oriented Methodology Design Patterns
17
Outline 48 Lectures 24 Tutorials 1 TCT (1 hour midterm) 2 Projects 1 Comprehensive Examination
18
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, 2005, Java in a Nutshell, fifth edition, O'Reilly. –http://www.patterndepot.com/put/8/JavaPatterns.htm (a free download!)http://www.patterndepot.com/put/8/JavaPatterns.htm Support texts students should have access to: –Texts in the O’Reilly Nutshell series ({Java Foundation Classes|Java Enterprise|Java Examples|UML} 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/http://www.cetus-links.org/
19
Lecture Topics Java 5.0 (1.5 SDK) (~6 lectures) Eclipse 3.1 and JUnit Definitions Theory (concepts and principles) Methods (4+1 methodology) Design Approaches Patterns
20
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 and—with experience—might 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 student—with additional programming practice—can reach entry level qualification.
21
Course Marking Two elements: coursework (3 vivas+exam each semester) and theoretical examination, each counting half. Both marks must be at least 35%, and the module mark must be at least 40% to pass.
22
Tutorials You will meet weekly with your tutors. Your tutors work with you on your projects.
23
Final Year Projects The members of the Hybrid Intelligent Systems Group usually sponsor some final year projects. These may involve: –Intelligent robotics, –Artificial intelligence, –Biological systems, and –Anything else we’re interested in. Our track-record developing MSc and PhD students is very good. See me or Stefan Wermter.
24
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.