Faculty of Mathematics, University of Belgrade Ivanjica 2010
Faculty of Mathematics, University of Belgrade Ivanjica 2010 [email protected] 1/35 Vladimir Filipovi Expiriences in defining projects for the course Software Development at Faculty of Mathematics in Belgrade Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] Outline
About Software Engineering curricula guidelines and capstone projects About course Software development Projects in course Software development Analysis of Projects in course Software development at Faculty of Mathematics in Belgrade 2/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010
[email protected] Software Engineering Guidelines for creating Software Engineering curriculum  Curriculum designers and instructors must have sufficient relevant knowledge and experience and understand the character of software engineering.  Curriculum designers and instructors must think in terms of outcomes.  Curriculum designers must strike an appropriate balance between coverage of material, and flexibility to allow for innovation.  Many SE concepts, principles, and issues should be taught as recurring themes throughout the curriculum to help students develop a software engineering mindset. 3/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010
[email protected] 4/35 Software Engineering Guidelines for creating Software Engineering curriculum  Learning certain software engineering topics requires maturity, so these topics should be taught towards the end of the curriculum, while other material should be taught earlier to facilitate gaining that maturity.  Students must learn some application domain (or domains) outside of software engineering.  Software engineering must be taught in ways that recognize it is both a computing and an engineering discipline.  Students should be trained in certain personal skills that transcend the subject matter. Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected]
5/35 Software Engineering Guidelines for creating Software Engineering curriculum  Students should be instilled with the ability and eagerness to learn.  Software engineering must be taught as a problem-solving discipline.  The underlying and enduring principles of software engineering should be emphasized, rather than details of the latest or specific tools.  The curriculum must be taught so that students gain experience using appropriate and up-to-date tools, even though tool details are not the focus of the learning. Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected]
6/35 Software Engineering Guidelines for creating Software Engineering curriculum  Material taught in a software engineering program should, where possible, be grounded in sound research and mathematical or scientific theory, or else widely accepted good practice.  The curriculum should have a significant real-world basis.  Ethical, legal, and economic concerns, and the notion of what it means to be a professional, should be raised frequently.  In order to ensure that students embrace certain important ideas, care must be taken to motivate students by using interesting, concrete and convincing examples. Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected]
Software Engineering Guidelines for creating Software Engineering curriculum  Software engineering education in the 21st century needs to move beyond the lecture format: It is therefore important to encourage consideration of a variety of teaching and learning approaches.  Important efficiencies and synergies can be achieved by designing curricula so that several types of knowledge are learned at the same time.  Courses and curricula must be reviewed and updated regularly. 7/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] 8/35
Software Engineering Software Engineering Capstone Project Capstone project course is essential in a software engineering degree program. The capstone course provides students with the opportunity to undertake a significant software engineering project, in which they will deepen their knowledge of many Software engineering areas. This means development of significant software system, employing knowledge gained from courses. Includes development of requirements, design, implementation, and quality assurance. Students may follow any suitable process model, must pay attention to quality issues, and must manage the project themselves, following all appropriate project management techniques. Success of the project is determined in large part by whether students have adequately solved their customers problem. Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected]
9/35 Software Engineering Software Engineering Capstone Project Students should be expected to deliver one or several iterations of a software system, along with all artifacts appropriate to the process model they are using. These would likely include a project plan (perhaps updated regularly, and containing cost estimations, risk analysis, division of the work into tasks, etc.), requirements (including use cases), architectural and design documents, test plans, source code, and installable system. It is anticipated that this course will not have formal lectures, although students would be expected to attend progress presentations by other groups. The objective of the project would be to solve the customers problem, and the customer would therefore assist the instructor in evaluating the work. It is strongly suggested that students work in groups of at least two, and preferably three or four, on their capstone project. Strategies must be developed to handle situations where the contribution of team members is unequal. Faculty of Mathematics, Universty of Belgrade
Ivanjica 2010 [email protected] 10/35 Course Software Development Software development is elective course, that is held on study program Informatics, in last year of undergraduate bachelor studies. It is structured like Software Engineering capstone project course central activity is concentrated around projects. Course goal : Mastering in software development basic activities, as complex teamwork. Course content: Introduction to software evolution. Software requirements and software specification. Projecting and development of the software. Software maintenance. Management of the software projects. Humancomputer interface. GUI design, building and programming. Event-driven programming. Using of the API. Software tools and development environments. Software verification. Debugging. Testing. Test-driven development. Using RDBMS in programs. Application interfaces. Objectrelational mapping. Faculty of Mathematics, Universty of Belgrade
Ivanjica 2010 [email protected] 11/35 Course Software Development Literature*: 1. Horstmann Cay, Cornell Gary: Core Java 2, Volume II Advanced Features, Sun Microsystems Press - A Prentice Hall Title, 2005. 2. Crawford William, Farley Jim: Java Enterprise in a Nutshell, 3rd Edition, O'Reilly, 2005. 3. Evjen Bill, Hanselman Scott, Rader Devin, Muhammad Farhan, Sivakumar S. Srinivasa : Professional ASP.NET 2.0 Special Edition, Wrox Press, Birmingham, 2006. 4. Robinson Steven: C# 2nd Edition, Wrox Press, Birmingham, 2003. 5. McConnel Steve: Code Complete 2, Microsoft Press, 2004 Classes: 2+3+0 ECTS: 6 Grade: 40% group project presentation, 20% short quizzes, 40% oral exam (includes individual presentation of students work on the project).
Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] Course Software Development Software development course is built around the projects Real project for real client who intends to use the software in production. Students select their own project, any branch of software development Each project should create feasibility study and plan
Each project should create group presentations and reports At the end, project will be evaluated as a whole, and each member of the team will explain his/her part Project will be evaluated together with the client representative. 12/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] Course Software Development
Contact potential clients Gain idea of their expectations Estimate scope and complexity of the project Discuss business decisions If teacher is client, student can expect that expectations that client have are a little bit higher than expectations of regular client Assemble project team Post message to all students in the (in this case yahoo) mailgroup Advertise at the beginning of class 13/35 Faculty of Mathematics, Universty of Belgrade
Ivanjica 2010 vladaf[email protected] Course Software Development Projects Target must be a production system (not research) Client should be one or two designated people -- client should be prepared to meet with you regularly and attend the presentations Team Teams need many strengths -- organizational, technical, writing, etc.
Consider appointing a leader to coordinate the effort 14/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] 15/35 Examples of projects 1. Helpdesk System for checking network infrastructure 2. Bibliographic reference parser
3. Terrorist and Organized Criminal Search (TOCs) 4. Document flow and archive system EOS 5. Informational system supporting orientiring competitions 6. Advanced Windows Performance Monitor for more frequent sampling program execution data 7. Informational system for organizing PR and presentation activities on Faculty of Mathematics
8. Accounting system for small companies 9. Informational system for supporting small tourist agency 10. Informational system for supporting tractor service 11. Informational system for evidencing items in storages 12. Informational system for supporting scheduling medical appointments in the Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 Examples of project (1) [email protected] 16/35
Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 Examples of project (2) [email protected] 17/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 Examples of project (3) [email protected] 18/35 Faculty of Mathematics, Universty of Belgrade
Ivanjica 2010 Examples of project (4) [email protected] 19/35 Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] 20/35 Final remarks Curriculum guidelines for Software engineering that are marked with red color highly interfere with presented organization of the Software development course. During his lectures, teacher is concentrated on projectmanagement aspects of the course and teamwork
coordination and assistant is concentrated to coding aspects. Project are developed on same programming platform. If some team choose platform that is different to proposed one, that team is, to some extent, on its own. Team members that chose different programming platform also have obligation to know everything that assistant explains on labs. Course lasted one semester, but teams have almost a year to finish their work. Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 [email protected] 21/35 Final remarks Projects, project progress and project activities are discussed with teacher at regular intervals. Teacher also decided what should be done in the case of serious problem (e.g. client doesnt support project anymore, team members start to
fight among themselves, some team members decided to drop course at the end of semester etc.) Student from Informatics like that way of teaching. They create various software, that really help their clients. Teacher should put more effort to properly quantify work of team (sizes and characteristics of real projects are very different). Teacher should put more effort to properly quantify work of team members within team. Faculty of Mathematics, Universty of Belgrade Ivanjica 2010 Thank you! My e-mail address is [email protected][email protected] 22/35
The Affluent Society. American Abundance. ... Jack Kerouac wrote . On the Road. Charles Bukowski was famous for his drunken, crude poetry. African American Entertainers. African Americans struggled to find acceptance. Rock n' Roll singers faced fewer obstacles.
The Liquid Drop Model Treats the nucleus as a collection of interacting particles in a liquid drop. The total binding energy, the semi-empirical mass formula is The volume term (av) indicates that the binding energy is approximately the sum of...
Kinetic Letters is a programme which teaches children how to form letters correctly, quickly and with confidence. As handwriting becomes more fluent, children think less about handwriting allowing more time to think about the content of writing.
Dreigiau Dinas Emrys Ap Cymraeg ail iaith ac adnodd ar-lein i athrawon a disgyblion (11-18 oed) yw Dreigiau Dinas Emrys. Seren Iaith 2 Bach Gwella sgiliau ieithyddol oedolion a phobl ifanc Cymru. Stwnsh Gelli di fynd â hwyl Stwnsh gyda...
Using Moles to Count Atoms Because chemists often deal with large numbers of small particles, they use a large counting unit—the abbreviated mol. Mole -the SI base unit used to measure the amount of a substance whose number of particles...
FALSIFIABILITY. Many theories state what should happen if the theory is correct, but good theories state what cannot happen if the theory is correct. The degree to which a theory makes such "risky predictions" is the theory's falsifiability. More falsifiable...
Biological Molecules Part 2 Lipids-Phospholipid Phospholipids Lipid with a group Usually a neutral fat with a phosphate on one of the fatty Found in cell (phospholipid bilayer) Polar end in high water concentration area cytoplasm or fluid Phospholipids 3:12 Hydrophilic...
Create independent learning opportunities through the use of one. Like a mindmap, but a little more logical. Allows students to increase their selectivity in independent study. Use of colour and symbols can be used. As a homework they are an...
Ready to download the document? Go ahead and hit continue!