150 likes | 255 Views
Experiences after three years of teaching “Development of Software Applications” . Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia. Course description.
E N D
Experiences after three years of teaching“Development of Software Applications” Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia
Course description • Obligatory for students enrolled in study module “Software Engineering” (the 3rd year of study) • cca 90 enrollments each year • Minimal theory, required to determine practice • elaborates software engineering concepts, principles and techniques. • studies approaches to the development of end user applications, including: • requirements analysis and specification • design and construction of software components • programming techniques (using C#) • documentation • implementation and maintenance of applications
Competencies (Aims) prepare students for development of complex interactive applications, particularly database applications provide a knowledge for successful design, construction and implementation of software systems students will be able to formulate the software requirements and to develop, implement and maintain quality software built upon different software architectures.
Students requirements • Teamwork (5-6 students per team) • Combined team and individual effort • Each member develops every part of: • Window application (GUI, BLL, DAL) (C#) • Web application (ASP.NET C#) • Mobile application (for Pocket PC) • Web service • Report (Crystal Reports) • Help and documentation • Criteria for homework and exam usually published at the beginning of each lecture cycle
Software requirements • Microsoft Visual Studio (2005, 2008) • Microsoft SQL Server (2005, 2008, Express) • Microsoft Team Foundation Server (2005, 2008) • All documents and source code must be uploaded to TFS before deadline • Homeworks: end of the working week • Exams: two working days before final evaluation
Grading scheme • To pass, a student must collect at least 50% from each component • Can repeat 1 or 2 components* • Brings some grumbles but has also advantages • Grades are distributed by Gaussian distribution
Correlation between final gradeandcoursecomponents* • Exams mostly consist of previous homework • Explains high correlation between homework and final grade • *Only students that successfully passed are included • 2008: 87/101 = 86% • 2009: 73/94 = 78% • 2010: 60/77 = 78% • Students mostly give up in the first third of the semester
Correlation between final grade and previous courses • 175 of 185 distinctstudents attended this course in last 3 years • Correlation with students average grade: 0,51
Noted problems • In contrast with all previous courses • “What are we supposed to do? Tell us in details” • “How can we write an initial project plan when we don’t know all details?” • Students focused on technology, not the project goals and tasks • Too much work for 4 ECTS • Comparing to some other (easy) courses? • Lecture materials are not adequate? • Opposite thinking: too many slides vs. too few materials to learn • Teamwork: Accelerator or nightmare? • students interfere with each other • Bad attitude to Microsoft • cannot be solved, but only few students complains • Enormous teaching assistants time effort
The most notable changes through years (1/5) • Interview with “customer” held 1 week earlier • Students assistants • write tutorials • help in labs • addition to usual consultations • draw attention to problems using own experience
The most notable changes through years (2/5) • 13 home assignments “reduced” to 6 • Same extent and scope • Less pressure on students and teaching assistants • Less overhead for teaching assistants • Deadline moved from Sunday 23:59 to Friday 23:59 • Big psychological effect • Assignments announced in advance* • *announced at least at the beginning of each cycle • Students can manage their schedule in a more flexible manner • No homework in thelast week of each cycle
The most notable changes through years (3/5) • Common database server • One database per each team • Solved most of the merge and dependency problems • Table definitions and data in common place • Testing eased • No need to upload and set database for test • No need to change connection strings • Drastically reduced time for reviewing process
The most notable changes through years (4/5) • Automated project builds (using TFS) • Build definition created manually for each homework/exam • 1 week before deadline • takes 5-10 minutes of assistant’s time each week • Two builds per day (8h, 16h) • Build every 30 minutes in last 24 hours before exam • Build results sent by e-mail • Zip with executables copied to web server • Can be downloaded and tested anywhere • Build failed == 0 points?
The most notable changes through years (5/5) • Obligatory labs (2h) are now time feasible • Homework review in front of student • Task checklist • No complains afterwards • No lengthy e-mails with explanations • Build failed? => “Fix it now…if you can/know ”
Conclusion • New software features, previousexperience, feedback from questionnaires, student assistants => • Reduced pressure • Assignments clearly highlighted • Materials extended with tutorials • Has to be updated every 2-3 years to reflect technology changes • Team integration eased • Reviewing effort decreased • Achieved stable grading scheme • Good feedback from alumni