Software Development & Technology Your Study Plan, Fall 2011 - - PowerPoint PPT Presentation

software development technology your study plan fall 2011
SMART_READER_LITE
LIVE PREVIEW

Software Development & Technology Your Study Plan, Fall 2011 - - PowerPoint PPT Presentation

Software Development & Technology Your Study Plan, Fall 2011 Andrzej W asowski Curriculum Structure Software Technology Track Software Technology Track Primarily for you with limited or non IT experience Software Enginering Track


slide-1
SLIDE 1

Software Development & Technology Your Study Plan, Fall 2011

Andrzej W ˛ asowski

slide-2
SLIDE 2

Curriculum Structure

slide-3
SLIDE 3

1

 Primarily for you with limited or non IT experience

Software Technology Track Software Technology Track Software Enginering Track Software Enginering Track

 Primarily for you with background in IT  But possible for others

slide-4
SLIDE 4

SDT - Software Development and Technology, Development Technology Track - Fall 2011 Study Structure and Courses

1st semester Programming Foundations Quality Assurance Introductory Programming 7,5 ECTS credits Programming Workshop 7,5 ECTS credits Foundations of Computing: Discrete Mathematics 7,5 ECTS credits Software Engineering and Software Qualities 7,5 ECTS credits 2nd semester Programming Foundations Elective Module Specialisation Part 1 Introduction to Database Design 7,5 ECTS credits Foundations of Computing: Algorithms and Data Structures 7,5 ECTS credits Course or Project 7,5 ECTS credits Specialisation Course 1 7,5 ECTS credits 3rd semester Elective Modules Specialisation Part 2 Course or Project 7,5 ECTS credits Course or Project 7,5 ECTS credits Specialisation Course 2 (and 3) 15 ECTS credits 4th semester Master Thesis 30 ECTS credits

* A specialisation can be chosen among the ones offered within the study programme track. ** A course of 7,5 ECTS chosen among all courses offered at ITU, except from bachelor courses. The module can also be used for writing a project under

  • supervision. Elective modules of 7,5 ECTS can also be combined to make room for larger study activities of 15 ECTS credits.
slide-5
SLIDE 5

SDT - Software Development and Technology, Software Engineering Track - Fall 2011 Study Structure and Courses

1st semester Software Engineering Global Interaction Elective Modules Model Driven Development 7,5 ECTS credits Distributed Collaboration and Development 7,5 ECTS credits Course or Project** 7,5 ECTS credits Course or Project** 7,5 ECTS credits 2nd semester Software Development Project Software Engineering Specialisation Part 1 Global Software Development 15 ECTS credits Advanced Software Engineering 7,5 ECTS credits Specialisation Course 1 7,5 ECTS credits 3rd semester Elective Modules Specialisation Part 2 Course or Project** 7,5 ECTS credits Course or Project** 7,5 ECTS credits Specialisation Course 2 (and 3) 15 ECTS credits 4th semester Master Thesis 30 ECTS credits

* A specialisation can be chosen among the ones offered within the study programme track. ** A course of 7,5 ECTS chosen among all courses offered at ITU, except from bachelor courses. The module can also be used for writing a project under

  • supervision. Elective modules of 7,5 ECTS can also be combined to make room for larger study activities of 15 ECTS credits.

Specialisations

slide-6
SLIDE 6

Contents

  • SDT curriculum structure

[done]

  • How do I build a study plan?
  • Specialization Zoo
  • Odds & Ends
slide-7
SLIDE 7

Part I

Entirely Idiosyncratic Andrzej’s Advice on

Planning Your Studies

slide-8
SLIDE 8

What Is My Dream Job?

Many jobs can only be achieved by following the relevant education Objective: get a rewarding job, not to ’just pass’ trough Advice 1: Match your courses to your job expectations

slide-9
SLIDE 9

We expect from You

An Example

  • Degree in IT, natural science or finance/economics
  • Willing to learn financial products and pricing models
  • Perhaps I want an elective in introductory finance?
  • Programming experience, C# experience is a plus
  • Wish to work with application- & system development
  • need to take programming courses, gain C# experience
  • Are used to deadlines, pay attention to detail and

take pride in delivering a good solution.

  • it pays off to study on time? Get good grades?
  • Are fluent in written and spoken English
  • I should not let the Brit on our team write all the reports
slide-10
SLIDE 10
  • You have some experience with functional

programming (OCaml, Standard ML, Haskell, F#, etc.).

  • Programming Language Seminar? Models and Programs?
  • If you have a PhD, we will not hold it against you.
  • seminars, research projects, individual specialization
  • phd courses, publication
  • You master design, generalization, and abstract

thinking as well.

  • algorithms, AI, semantics courses
  • You have a strong drive and you are not afraid to

take the lead

  • group projects
slide-11
SLIDE 11

“Less than half students who graduated in 1992-1993 were employed in traditional computer science professions 10 years after graduation (compared to 57% in engineering and 69% in health sciences). In many computer science departments, more than half of the students graduating with bachelor’s degrees are hired by companies in finance, services, or manufacturing, not by IT companies; this is where most of the growth in IT jobs is expected to be.”

Marc Snir. Computer and Information Science and Engineering One Discipline, Many Specialties Communications of ACM March 2011. Vol. 54 No. 3

slide-12
SLIDE 12

So how about my career? How do I build a study plan ?

primo: be excellent secundo: be flexible

slide-13
SLIDE 13

So how about my career? How do I build a study plan ?

primo: be excellent secundo: be flexible

slide-14
SLIDE 14

Is 120 ECTS a lot?

  • This is an enormous budget (192 000 dkk!)
  • Buy something good, not something poor.
  • All our courses are good,

but some combinations are better for you.

  • A bad combination example: In the BSc, you have

followed two courses on databases You choose to follow Introduction to database design. Advice 2: You spend a large

  • budget. Spend it wise!
slide-15
SLIDE 15

Is 120 ECTS a lot?

  • This is an enormous budget (192 000 dkk!)
  • Buy something good, not something poor.
  • All our courses are good,

but some combinations are better for you.

  • A bad combination example: In the BSc, you have

followed two courses on databases You choose to follow Introduction to database design. Advice 2: You spend a large

  • budget. Spend it wise!
slide-16
SLIDE 16

Is 120 ECTS a lot?

  • This is an enormous budget (192 000 dkk!)
  • Buy something good, not something poor.
  • All our courses are good,

but some combinations are better for you.

  • A bad combination example: In the BSc, you have

followed two courses on databases You choose to follow Introduction to database design. Advice 2: You spend a large

  • budget. Spend it wise!
slide-17
SLIDE 17

Is 120 ECTS a lot?

  • This is an enormous budget (192 000 dkk!)
  • Buy something good, not something poor.
  • All our courses are good,

but some combinations are better for you.

  • A bad combination example: In the BSc, you have

followed two courses on databases You choose to follow Introduction to database design. Advice 2: You spend a large

  • budget. Spend it wise!
slide-18
SLIDE 18

Why does SDT have specializations?

  • This is our way to balance broadness vs depth

Advice 3: Electives, not your specialization, can be used to broaden.

slide-19
SLIDE 19

Why does SDT have specializations?

  • This is our way to balance broadness vs depth

Advice 3: Electives, not your specialization, can be used to broaden.

slide-20
SLIDE 20

Thesis and Specialization are Coupled!

Thesis and specialization go together! Write your thesis in your specialization ! What is the subject area? What kind of questions are interesting? Is it a theoretical thesis? Is it applied? Advice 4: Envision your thesis, choose specialization

slide-21
SLIDE 21

Thesis and Specialization are Coupled!

Thesis and specialization go together! Write your thesis in your specialization ! What is the subject area? What kind of questions are interesting? Is it a theoretical thesis? Is it applied? Advice 4: Envision your thesis, choose specialization

slide-22
SLIDE 22

Thesis and Specialization are Coupled!

Thesis and specialization go together! Write your thesis in your specialization ! What is the subject area? What kind of questions are interesting? Is it a theoretical thesis? Is it applied? Advice 4: Envision your thesis, choose specialization

slide-23
SLIDE 23

Specialization is done in a team!

You spend a year, taking a big chunk

  • f your courses, with the same people

Likely you will write a thesis with some of them What needs help? What is better done alone? Advice 5: Make a course wishlist. Register for courses that are most difficult to self study.

slide-24
SLIDE 24

Specialization is done in a team!

You spend a year, taking a big chunk

  • f your courses, with the same people

Likely you will write a thesis with some of them What needs help? What is better done alone? Advice 5: Make a course wishlist. Register for courses that are most difficult to self study.

slide-25
SLIDE 25

Your dream thesis advisor :)

"We want a project with you, but not your project"

  • Each supervisor offers supervision in a certain area, or
  • n certain predefined topics.
  • You can always propose your own topic!
  • But student topics not always easily find advisors.

Advice 6: Figure out what background is needed to write a thesis with supervisors you like.

slide-26
SLIDE 26

Things can still be fixed later ...

  • Change specialization or apply for an individual one

Everything can be fixed, but ... ... sometimes it is hard to fix, when it is late Advice 7: Evaluate your curriculum regularly before each course registration period. The first evaluation is most important.

slide-27
SLIDE 27

Recap

1 Match your courses to your future job 2 Do not waste your ECTS budget 3 Use the electives to broaden. Use the specialization to specialize 4 Envision your thesis, choose your specialization 5 Register for (interesting!), but difficult to do alone courses 6 Figure out what background is needed to write a thesis with supervisors you like 7 Evaluate your curriculum regularly before each course registration period

slide-28
SLIDE 28

Part II

A Hasty

Specialization Zoo

slide-29
SLIDE 29

Pervasive Computing

Contents

Mobile and Distributed Systems, 7.5 ECTS Fall

  • Concurrency & distribution as general aspects of sw
  • What are difficulties in distributing software?
  • Architecture of Distributed Systems
  • Concurrent programming in Java or C# (threads,

concurrency control)

  • Issues with mobility (synchronization, discovery)

Pervasive Computing 7.5 ECTS Spring + 7.5 ECTS Spring/Fall

  • Design pervasive computing systems using state of

the art design principles

  • Includes a 7.5 ECTS development project
  • Associated with PIT Lab
slide-30
SLIDE 30

Pervasive Computing

Contents

Mobile and Distributed Systems, 7.5 ECTS Fall

  • Concurrency & distribution as general aspects of sw
  • What are difficulties in distributing software?
  • Architecture of Distributed Systems
  • Concurrent programming in Java or C# (threads,

concurrency control)

  • Issues with mobility (synchronization, discovery)

Pervasive Computing 7.5 ECTS Spring + 7.5 ECTS Spring/Fall

  • Design pervasive computing systems using state of

the art design principles

  • Includes a 7.5 ECTS development project
  • Associated with PIT Lab
slide-31
SLIDE 31

Pervasive Computing

Perspectives

  • Example employment: software development for

large scale web-based distributed systems (airlines, e-commerce, financial services, auction systems), innovation startups in pervasive computing

  • A fairly specialized skill
  • Possible theses: Finding a bug in existing network

protocol, designing a P2P system, evaluate use of given communication technology in a hospital

slide-32
SLIDE 32

Pervasive Computing

Perspectives

  • Example employment: software development for

large scale web-based distributed systems (airlines, e-commerce, financial services, auction systems), innovation startups in pervasive computing

  • A fairly specialized skill
  • Possible theses: Finding a bug in existing network

protocol, designing a P2P system, evaluate use of given communication technology in a hospital

slide-33
SLIDE 33

Mobile & Distributed Systems

Contents

Pervasive Computing 7.5 ECTS Spring + 7.5 ECTS

  • Design pervasive computing systems using state of

the art design principles

  • Includes a 7.5 ECTS development project
  • Associated with PIT Lab

Advanced Mobile and Distributed Systems, 7.5 Fall’12

  • Mobile Adhoc networks
  • Security of mobile wireless protocols
  • Distributed protocols (design of P2P protocols)
  • Possible project: design, implement and analyze a

Bluetooth based P2P protocol

  • Research on mobile and distributed systems.
slide-34
SLIDE 34

Mobile & Distributed Systems

Contents

Pervasive Computing 7.5 ECTS Spring + 7.5 ECTS

  • Design pervasive computing systems using state of

the art design principles

  • Includes a 7.5 ECTS development project
  • Associated with PIT Lab

Advanced Mobile and Distributed Systems, 7.5 Fall’12

  • Mobile Adhoc networks
  • Security of mobile wireless protocols
  • Distributed protocols (design of P2P protocols)
  • Possible project: design, implement and analyze a

Bluetooth based P2P protocol

  • Research on mobile and distributed systems.
slide-35
SLIDE 35

Scalable Computing [both tracks]

Contents

Efficient AI Programming, 7.5 ECTS Spring

  • AI algorithms for 2-player games (chess like)
  • Constraint solving, optimization, scheduling, machine

learning, configuration, (AKA hard problems)

  • Frameworks, tools and techniques
  • Focus is on practical modeling, not on research

(designing new techniques) Algorithm Design, 15 ECTS Fall

  • Algorithm design as an abstract programming skill
  • A toolbox of design techniques
  • What problems are hard for computers?
  • Efficient solutions to ’easy’ problems
  • Project consists of many smaller programming tasks
slide-36
SLIDE 36

Scalable Computing [both tracks]

Contents

Efficient AI Programming, 7.5 ECTS Spring

  • AI algorithms for 2-player games (chess like)
  • Constraint solving, optimization, scheduling, machine

learning, configuration, (AKA hard problems)

  • Frameworks, tools and techniques
  • Focus is on practical modeling, not on research

(designing new techniques) Algorithm Design, 15 ECTS Fall

  • Algorithm design as an abstract programming skill
  • A toolbox of design techniques
  • What problems are hard for computers?
  • Efficient solutions to ’easy’ problems
  • Project consists of many smaller programming tasks
slide-37
SLIDE 37

Scalable Computing

Perspectives

  • Example employment: Technology innovation, start

ups, etc. Product configuration in large corporations, etc.

  • Example thesis: Scheduling of on demand bus

connections, Intellisense support for Model Editors

slide-38
SLIDE 38

Modern AI [both tracks]

Contents

Efficient AI Programming, 7.5 ECTS Spring

  • AI algorithms for 2-player games (chess like)
  • Constraint solving, optimization, scheduling, product

configuration, basics of machine learning

  • Frameworks, tools and techniques
  • Focus is on practical modeling, not on resrearch

(designing new techniques) Modern AI (in Games), 15 ECTS Fall

  • Soft reasoning techniques: fuzzy logic, reinforcement

learning, neural networks, genetic algorithms

  • Intelligent behaviour in games makes the story line
  • Possible projects: an AI player for a game (an MTG

supervisor), or software oriented projects (with Rune)

slide-39
SLIDE 39

Modern AI [both tracks]

Contents

Efficient AI Programming, 7.5 ECTS Spring

  • AI algorithms for 2-player games (chess like)
  • Constraint solving, optimization, scheduling, product

configuration, basics of machine learning

  • Frameworks, tools and techniques
  • Focus is on practical modeling, not on resrearch

(designing new techniques) Modern AI (in Games), 15 ECTS Fall

  • Soft reasoning techniques: fuzzy logic, reinforcement

learning, neural networks, genetic algorithms

  • Intelligent behaviour in games makes the story line
  • Possible projects: an AI player for a game (an MTG

supervisor), or software oriented projects (with Rune)

slide-40
SLIDE 40

Modern Artificial Intelligence

  • Example employment: game developer, assistive

technology innovation, data analysis, logistics division of large companies

  • A pretty much specialized skill, with good general

basis

  • Example thesis: MOB-TEXAS Holdem Limit—A Poker

Multiple Oponnent Bot, Mining Software Repositories

  • Special: can be started in any semester!
slide-41
SLIDE 41

Databases [both tracks]

Contents

Building Database Systems, 7.5 ECTS Fall

  • Design of database systems
  • Architecting large scale distributed database

systems

  • Perform large-scale data analysis and data mining
  • Maintainance and evolution of database systems

Database Tuning, 7.5 ECTS Fall + 7.5 ECTS Project Cluster

  • Mechanisms of query execution, query tunning
  • Indexing techniques
  • Predicting behaviors of database transactions
  • Project: build a performance efficient database

system

slide-42
SLIDE 42

Databases [both tracks]

Contents

Building Database Systems, 7.5 ECTS Fall

  • Design of database systems
  • Architecting large scale distributed database

systems

  • Perform large-scale data analysis and data mining
  • Maintainance and evolution of database systems

Database Tuning, 7.5 ECTS Fall + 7.5 ECTS Project Cluster

  • Mechanisms of query execution, query tunning
  • Indexing techniques
  • Predicting behaviors of database transactions
  • Project: build a performance efficient database

system

slide-43
SLIDE 43

Databases [both tracks]

Perspectives

  • Example job: developer of business applications
  • A pretty broad skill
  • Thesis topics:
  • Representation and manipulation of hierarchies in an

OLAP environment

  • LINQ to SQL in extreme conditions
  • Dynamic Hashing in External Memory
slide-44
SLIDE 44

Models & Programs

Contents

Prog˙

  • Lang. Concepts and Implementation, 7.5 ECTS Fall
  • Learn C#, including functional programming style
  • principles of design and implementation of modern
  • bject-oriented programming languages
  • Compare programming languages
  • Use tools like regular expressions and grammars

Advanced Models & Programs, 15 ECTS Spring

  • Design reliable software
  • Reason about correctness of software
slide-45
SLIDE 45

Models & Programs

Contents

Prog˙

  • Lang. Concepts and Implementation, 7.5 ECTS Fall
  • Learn C#, including functional programming style
  • principles of design and implementation of modern
  • bject-oriented programming languages
  • Compare programming languages
  • Use tools like regular expressions and grammars

Advanced Models & Programs, 15 ECTS Spring

  • Design reliable software
  • Reason about correctness of software
slide-46
SLIDE 46

Models & Programs

Perspectives

  • Example employment: large software houses, or

software technology for software development

  • A fairly broad skill, but some students specialize quite

far

  • Example thesis topics:
  • YIIHAW, An aspect weaver for .NET
  • A Domain-Specific Environment for Fast Construction
  • f Webshops
  • A New (Generic) Library for .NET
slide-47
SLIDE 47

Programming Languages

Contents

Advanced Models & Programs, 15 ECTS Spring

  • Design reliable software
  • Reason about correctness of software

Programming Language Seminar, 7.5 ECTS Fall

  • Discuss and evaluate new technologies and tools in

programming languages

  • Compare and discuss programming languages.

Efficiently learn new languages

  • A gateway to research in programming languages.
slide-48
SLIDE 48

Programming Languages

Contents

Advanced Models & Programs, 15 ECTS Spring

  • Design reliable software
  • Reason about correctness of software

Programming Language Seminar, 7.5 ECTS Fall

  • Discuss and evaluate new technologies and tools in

programming languages

  • Compare and discuss programming languages.

Efficiently learn new languages

  • A gateway to research in programming languages.
slide-49
SLIDE 49

Software Engineering

Courses, Jobs

  • Aimed at people interested in software-house career
  • Good to supplement with some strong programming

skills for broadness

  • Requires exemption or taking Software Engineering

and Software Qualities as an elective (7.5 ECTS, Fall)

  • Consists of:
  • Global Software Development (15 ECTS, Spring)
  • Advanced Software Engineering (7.5 ECTS, Spring)
slide-50
SLIDE 50

Architecture

  • System Architecture and Security (Fall, 7.5 ECTS)
  • Two of the following courses:
  • IT-Strategy (7,5)
  • Business IT Alignment (7,5)
  • Software Architecture (7,5)
  • Enterprise Architecture (7,5)
  • Purchase and Specification requirement (Anskaffelse
  • g kravspecifikation) (7,5)
  • Mind that some of these only exist in Danish
slide-51
SLIDE 51

Data Processing

  • Combines Algorithm Design with Database Tuning
  • 30 ECTS (15 ECTS in Spring, 15 ECTS in Fall)
  • The specialisation is targetted at students with prior

knowledge in database systems and algorithms.

  • For students with strong CS background
slide-52
SLIDE 52

Specialisations

Databases (Fall) Part 1: 7,5 ECTS Building Database Systems Part 2: 7,5 ECTS Database Tuning I Part 3: 7,5 ECTS Database Tuning II Models and Programs (Fall) Part 1: 7,5 ECTS Programming Language Concepts and Implementation Part 2: 15 ECTS Advanced Models and Programs Scalable Computing (Spring/ Fall) Part 1: 7,5 ECTS Efficient AI Programming Part 2: 15 ECTS Algorithm Design Modern Artificial Intelligence (Spring/ Fall) Part 1: 7,5 ECTS Efficient AI Programming Part 2: 15 ECTS Modern AI for Games Pervasive Computing (Fall) (7,5 ECTS) (7,5 ECTS) (7,5 ECTS) Part 1: 7,5 ECTS Mobile and Distributed Systems Part 2: 7,5 ECTS Pervasive Computing (lectures) Part 3: 7,5 ECTS Pervasive Computing (project) Software Engineering (Spring) Note: Reversed order of 7,5 and 15 ECTS modules! Part 1: 15 ECTS Global Software Development Part 2: 7,5 ECTS Advanced Software Engineering Architecture (Spring/ Fall) Note: Total of three courses! Not all courses are taught in English! Part 1: 7,5 ECTS System Architecture and Security Part 2: 15 ECTS 2 of the following 6 courses (2x7,5 ECTS): IT Strategy Cloud Computing Business IT Alignment Software Architecture Enterprise Architecture Software Acquisition and Requirements

slide-53
SLIDE 53

Databases (Fall) Part 1: 7,5 ECTS Building Database Systems Part 2: 7,5 ECTS Database Tuning I Part 3: 7,5 ECTS Database Tuning II Scalable Computing (Spring/ Fall) Part 1: 7,5 ECTS Efficient AI Programming Part 2: 15 ECTS Algorithm Design Modern Artificial Intelligence (Spring/ Fall) Part 1: 7,5 ECTS Efficient AI Programming Part 2: 15 ECTS Modern AI for Games Mobile and Distributed Systems (Spring) Part 1: 7,5 ECTS Pervasive Computing (lectures) Part 2: 7,5 ECTS Pervasive Computing (project) Part 2: 7,5 ECTS Advanced Mobile and Distributed Systems Data Processing (Spring/ Fall) Note: Total of 30 ECTS! Part 1: 15 ECTS Algorithm Design Part 2: 7,5 ECTS Database Tuning I Part 3: 7,5 ECTS Database Tuning II Programming Languages (Spring) Note: Reversed order of 7,5 and 15 ECTS modules! Part 1: 15 ECTS Advanced Models and Programs Part 2: 7,5 ECTS Programming Language Seminar Architecture (Spring/ Fall) Note: Total of three courses! Not all courses are taught in English! Part 1: 7,5 ECTS System Architecture and Security Part 2: 15 ECTS 2 of the following 6 courses (2x7,5 ECTS): IT Strategy Business IT Alignment Cloud Computing Software Architecture Enterprise Architecture Software Acquisition and Requirements

slide-54
SLIDE 54

Part III

Odds & Ends

slide-55
SLIDE 55

Your thesis

  • You should start working on the thesis in the end of

the second semester

  • Identify subject in the third semester (October 1st)
  • File project agreement latest December 1st in the

third semester

slide-56
SLIDE 56

Study Abroad

  • Networking, job opportunities,
  • Attractiveness of your CV
  • particularly good opportunity for good students,
  • really good if you want a research career and can

hook up with a research group abroad.

  • In Spring you can go to study at ETH Zurich
  • Take your specialization or some mandatory courses

there

slide-57
SLIDE 57

Other courses

  • Use any courses as electives (courses from other

specialziations) as long as you fulfill the prerequisites.

  • Smart Grid project cluster (grid computing), talk to

Phillippe Bonnet

  • Our C# course is programming language concepts.

Do not go elsewhere.

  • If you are interested in mobile phone applications,

you get to do Android projects in Pervasive Computing.

  • Software Engineering Students: Note that the GSD

cluster can be taken in Fall, but register now!

slide-58
SLIDE 58

Software Engineering and Software Qualities

  • This course is really really fun with the Indian university,

really smart students on the other side (an IIT).

  • The Indian term has started 5 weeks ago
  • Students are really eager to get going very quickly
  • Group formation has to happen next week. do not

wait with joining

  • If planning an exemption contact Yvonne Dittrich

(ydi@itu.dk) ASAP .