The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.

Slides:



Advertisements
Similar presentations
Service Engineering track at Politecnico di Milano Main goal: a curriculum in a mature area between informatics and telecommunications (networks) New study.
Advertisements

CS Body of Knowledge (ACM) Discrete Structures Programming Fundamentals Algorithms & Complexity Operating Systems Architecture & Organization Social &
CSTA K-12 Computer Science Standards (rev 2011)
Standards Alignment A study of alignment between state standards and the ACM K-12 Curriculum.
Assessment of Undergraduate Programs Neeraj Mittal Department of Computer Science The University of Texas at Dallas.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
Changes in the Curriculum of ETF Belgrade Dragan Bojić University of Belgrade Dragan Bojić University of Belgrade.
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
Department of Mathematics and Computer Science
© Copyright CSAB 2013 Future Directions for the Computing Accreditation Criteria Report from CAC and CSAB Joint Criteria Committee Gayle Yaverbaum Barbara.
Bachelor of Informatics at Humboldt University will start in 2009 Klaus Bothe 8th Workshop “Software Engineering Education and Reverse Engineering” Durres,
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
What is Software Engineering? And why is it so hard?
Teaching Software Engineering Through Game Design Kajal ClaypoolMark Claypool UMass LowellWPI.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Computer Science Department Program Improvement Plan December 3, 2004.
ABET The Complete Report on Your Course. ABET OUTCOME CHECKLIST.
Overview of the Rose-Hulman Bachelor of Science in Software Engineering Don Bagert SE Faculty Retreat – New Faculty Tutorial August 23, 2005.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
Mohammad Alshayeb 19 May Agenda Update on Computer Science Program Assessment/Accreditation Work Update on Software Engineering Program Assessment/Accreditation.
PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLS António José Mendes – University of Coimbra.
Web-based design Flávio Rech Wagner UFRGS, Porto Alegre, Brazil SBCCI, Manaus, 24/09/00 Informática UFRGS.
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
Yiangos Ktorides Cyprus Computer Society Computer Science at the Primary and Secondary Schools of Cyprus.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Management Information Systems
ABET’s coming to Rose! Your involvement Monday, Nov 5, 2012.
LEFIS W2 Posgraduate Workshop 1 LEFIS, WG 2 Postgraduate studies Meeting, Rotterdam.
Competence Analysis in the Two-subject Study Program Computer Science Jože Rugelj, Irena Nančovska Šerbec Faculty of Education Univesity of Ljubljana 1Beaver.
Structure of Study Programmes
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 190 Careers in Computer Science, Computer Engineering, and Computer Information.
Structure of Study Programmes Bachelor of Computer Science Bachelor of Information Technology Master of Computer Science Master of Information Technology.
Web Service Development Within Different Study Years Maja Pušnik, Boštjan Šumak Institute of Informatics, FERI Maribor.
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
ISECON Feinstein1 IM’ LATE FROM THERE TO HERE – FROM HERE TO THERE A FEW BITS AND BYTES David Feinstein Educator of the year 2004.
BUSINESS INFORMATICS descriptors presentation Vladimir Radevski, PhD Associated Professor Faculty of Contemporary Sciences and Technologies (CST) Linkoping.
Learning outcomes for BUSINESS INFORMATCIS Vladimir Radevski, PhD Associated Professor Faculty of Contemporary Sciences and Technologies (CST)
Bachelor’s Program in CIVIL ENGINEERING Duration of Studies: 8 terms Academic Degree to be Awarded Bachelor of Civil Engineering.
Computer Science Department 1 Undergraduate Degree Program Computer Science Chair Dr. Kurt Maly.
CSC 480 Software Engineering Lecture 1 August 21, 2002.
1 WORKSHOP ON COMPUTER SCIENCE EDUCATION Innovation of Computer Science Curriculum in Higher Education TEMPUS project CD-JEP 16160/2001.
The Balance Between Theoretical and Practical Work Within Electrical and Computer Engineering Courses Dr. Bahawodin Baha March Development Partnerships.
An Introduction to Software Engineering. Communication Systems.
Graduates for the 21 st Century - Perspective from Research Ian Diamond RCUK.
Major Disciplines in Computer Science Ken Nguyen Department of Information Technology Clayton State University.
1 Structure of Aalborg University Welcome to Aalborg University.
1 SWE 513: Software Engineering People II. 2 Future Experience What will you be doing one year from now? Ten years from now?
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
Implementation of Innovations at FSMN by Miroslav Ćirić & Predrag Krtolica.
CS Curriculum Changes Fall, BS Computer Science 2015 COMPUTER SCIENCE COURSES—64 Hours COMPUTER SCIENCE CORE (48 Hours) CS 258Intro to Object-Oriented.
College of Computer Science, SCU Computer English Lecture 1 Computer Science Yang Ning 1/46.
First week. Catalog Description This course explores basic cultural, social, legal, and ethical issues inherent in the discipline of computing. Students.
The Level-2 Projects for Course Clusters Haojun Sun College of Engineering Shantou University.
New Curricula Proposal at FSMN by Miroslav Ćirić & Predrag Krtolica.
EXPERT SYSTEM WEEK 1. C ATALOG D ESCRIPTION Knowledge Acquisition techniques, Knowledge representation, Analysis and Design of an ES, Reasoning strategies,
1 EUROPEAN COMMISSION Tempus JEP – – 2006 Supporting and facilitating active uptake to Information and Communication Technologies for University.
Accreditation of study programs at the Faculty of information technologies Tempus SMGR BE ESABIH EU standards for accreditation of study.
Advanced Database Course Syllabus 1 Advanced Database System Lecturer : H.Ben Othmen.
New Computer Science Programme at the Department of Informatics Pedro Guerreiro University of Nis, March 24, 2006.
Computer Security Course Syllabus 1 Computer Security Lecturer : H.Ben Othmen.
WHAT IS PROBLEM-BASED LEARNING? What is PBL? Problem Based Learning (PBL) is a teaching method utilizing case studies and group interaction. Students.
Changes in the Curriculum of ETF Belgrade
Lecture 0 Software Engineering Course Introduction
The Systems Engineering Context
Information Technology (IT)
Introduction To software engineering
The Curriculum of the Department of Informatics TEI-A
Overview of BSSE at Rose-Hulman Institute of Technology
Presentation transcript:

The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth

The Problem Practitioners’ vs. educators’ opinions on required skills of a software engineer Software engineers need (according to practitioners?) –Formal knowledge –Good judgment and taste –Experience –Ability to interact with clients –Ability to understand the needs of clients Teaching all this is hard –Especially in only one or two courses of SE

Classic SE Education “Formal knowledge” One project –Requirements pre-specified by instructor –Infrastructure predetermined –Schedule fixed –Project size trimmed –No compatibility or legacy requirements

Solution Design a new curriculum That is, USI’s Bachelor’s curriculum

Challenges of Teaching SE Practice vs. theory –Current state of practice vs. idealized theory? –Brooks’ accidental vs. essential complexity Development vs. management –Module design vs. group communication –Parnas: Same concepts apply to both Product vs. process –Design issues vs. development process issues Formal vs. empirical –Learning by studying vs. learning by doing –SE as mathematical science vs. empirical science

Trends Impacting SE Education Distribution –Teach communication, synchronization, caching, security, fault tolerance Pervasive computing –Requires dynamic systems (vs. simpler static systems) Internet –Execution & development platform –Platform for educational contents (eLearning) Proliferation of software tools and environments –Teach how to quickly pick up skills needed for new tools Software evolution –How to teach this, given that problems are in big (not toy) systems Software quality –Teach responsibilities of a professional software engineer Computing platform –What middleware platform to teach Interdisciplinary informatics –Teach abstraction and modeling skills

Required Non-Technical Skills Communication –With clients, peers, managers, suppliers, … –Basis for requirements engineering –Abstraction and modeling skills Ability to work in a team –Making room for others –Making compromises –Asserting oneself –Accepting others’ judgements Experience Good judgment –Comes from making many mistakes

Solution Project-Focused Curriculum Create a real-world environment at the university –Enable learning technical and non-technical skills in a formal way –In context of carefully designed projects Integrative and comprehensive Not just associated with a single course –Student time Half classroom learning Half projects

Goal of Projects Show application of theory in practice Integrate material from various subjects Teach proper use of tools Show relationship between accidental and essential complexity Enhance teamworking ability including communication skills Atelier

Example: Teaching of Programming Include issues with –Compilation –Editing –Testing –Configuration management –Defect tracking –Help system –Documentation generation Systematically teach students about the whole programming environment

Our Curriculum Structure Theory –For the identification, specification, analysis of problems –Discrete math, logic, analysis, statistics, theoretical computer science Technology –Programming languages, operating systems, middleware, programming environments System approach –Building large systems, predicting their behavior and impact Interdisciplinary applications –Teach models and modeling techniques of other disciplines –Interdisciplinary projects and teams Communication and teamwork –Group project –Building architecture encouraging teamwork

Our Teaching Methodology In general, project-based learning –Engages student –Increases motivation –For certain fields/crafts, learning by doing is most effective For informatics, also: –Projects integrate different issues –Apply system-level thinking –See technologies in use –Appreciate difficulties and benefits of teamwork

Our Course Structure First year –Programming Fundamentals –Computer Architecture –Discrete Structures I –Computer Network Architecture –Mathematics –Technology Lab –Semester Projects Second year –Discrete Structures II –Algorithms and Data Structures –Software Design –Net-Centric Computing –Software Development –Information and Knowledge Management I –Life Sciences Models –Technology Lab –Semester Projects Third year –Hardware and Software Co-Design –The Business of Software –Information and Knowledge Management II –Technology Lab –Economics and Business Models –Informatics Elective –Semester Projects –Final Project Notes Technology Lab –E.g. by distance learning Software Design –Examples of good design –Lectures by good designers Software Development –Tools and processes Net-Centric Computing –Distributed Systems view –Resource management (OS) Information and Knowledge Management –Databases –Artificial Intelligence –Programming Languages Business of Software –Ethics –Professional issues –Licensing models

Discussion Questions Is there a problem at all? Is a new curriculum really the solution for the problem? Is teaching all these “soft skills” possible/effective/useful? Is spending 50% of student time on problem-based learning the right approach?