Module Recap Visited bullet format Highlighted bullet format

Slides:



Advertisements
Similar presentations
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Advertisements

Fundamentals of Information Systems, Second Edition
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Review 1.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010/2013.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
CHAPTER TEN AUTHORING.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Chapters 10, 11 SSD (Revision) SD DCD Exam Object-Oriented Design.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010/2013.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Ognjen Bajić Ana Roje Ivančić Ekobit Efficient Application Testing.
Software Development Framework
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
(Complex) Problem domain Requirements Specification
Software Testing.
45 min WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
CompSci 230 Software Construction
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Chapter 1: Introduction to Systems Analysis and Design
Fundamentals of Information Systems, Sixth Edition
TESTING TOOLS MANUAL APPROACH BY J.ADI SESHU.
Recall The Team Skills Analyzing the Problem (with 5 steps)
Software Testing.
Object-Oriented Analysis and Design
COMP 523 Diane pozefsky 24 August 2016.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Collaborative Learning
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Unit Test: Functions, Procedures, Classes, and Methods as Units
Introduction to Design Patterns Part 1
Object oriented analysis and design
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Practical Software Engineering
Software Engineering Fundamentals
Chapter 1: Introduction to Systems Analysis and Design
Software Testing “If you can’t test it, you can’t design it”
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Rapid software development
Chapter 1: Introduction to Systems Analysis and Design
Software Development Process Using UML Recap
Presentation transcript:

Module Recap Visited bullet format Highlighted bullet format Unvisited bullet format This notes page is used to store data - Do not edit the notes. UFBUVGVtcGxhdGVNYXJrZXI=@VGl0bGUgMQ==@UHB0TGFic0FnZW5kYV8mXkBDb250ZW50U2hhcGVfJl5AMjAxNTEwMjcyMjI5MzI0MzM3MA==@139050050 This slide is used as a ‘Template' for generating agenda slides. Please do not delete this slide. Adjust the design of this slide and click the 'Sync Agenda' (in Agenda Lab) to replicate the design in the other slides.

WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010. They may not show up well on other PowerPoint versions. You can download PowerPoint 2010 viewer from here. These slides contain a lot of animations. For optimal results, watch in slideshow mode.

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap Oct 28, 2016

1500+ slides, 26 handouts, 24 hours of lectures, Many tutorials, activities, quizzes, demos, discussions, resources, …

(Complex) Problem domain Requirements Specification We use OO to ‘align the view’. We use UML as the standard notation. ANALYSIS DESIGN IMPLEMENTATION QUALITY ASSURANCE Stakeholders (Complex) Problem domain RCS = Validation & Verification System Specification Establish requirements… brainstorming Focus groups User surveys Product surveys Observations Interviews Prototyping B A C D C A B D Sequence diagrams Architecture Unit testing Architecture styles such as n-tier, client-server, peer-to-peer, broker, pipes-and-filters, service-oriented, transaction-processing, and MVC Integration Can be late-one-time, or early-and-continuous Can be top-down, bottom-up, sandwich, big-bang Combat complexity… Use abstraction, build models Developer testing Other V&V techniques: formal verification static analyzers code reviews … Specify requirements… Textual descriptions Feature list User stories Use cases OO domain models Object diagrams State machine diagrams Activity diagrams UI prototypes Glossary Supplementary requirements … Integration testing Top-down design Testing B API (Application Programming interface) After modifications… Regression testing y x z operations Class diagrams QA Framework System testing Detailed design Test cases Bottom-up design System Library More agile -> less upfront detailed design Platform Made up as you go → Exploratory testing Predetermined → Scripted testing Can be created in these ways: Black-box, Glass-box, Grey-box User Acceptance testing Alpha/beta testing Detailed design Possible Improvements: Refactor code Coding standards and good coding practices Protect code using assertions, exceptions, logging, and defensive coding. Build automation Possible Improvements: Automate testing Use Test-Driven Development Increase efficiency and effectiveness of testing (Equivalence partitioning, Boundary Value analysis) Increase test coverage (function/entry/exit/statement/branch/ condition/path coverage) isolate SUT using drivers, stubs and dependency injection Possible Improvements: ↑Cohesion, ↓Coupling Apply design patterns (Abstraction Occurrence, Singleton, Command, Observer) Apply design principles (Open/close, Law of Demeter, Separation of concerns, …) Use polymorphism (inheritance, interfaces, dynamic binding) Good product design guidelines (e.g., usability, …) Possible Improvements: Apply OO paradigm Apply analysis patterns Categorize and prioritize requirements Requirements Specification Sequential Iterative Breadth-first Depth-first Project plans Unified process Team structures CMMI Work-breakdown structures PROJECT MANAGEMENT Agile processes Chief-programmer Issue trackers Includes buffers and milestones Egoless XP Scrum Strict hierarchy

(Complex) Problem domain Requirements Specification ANALYSIS Possible Improvements: Apply OO paradigm Apply analysis patterns e.g. Abstraction occurrence Categorize and prioritize requirements Who are typical stakeholders of a software project? Why asking the user is not enough? How do models help to combat complexity? Why use UML? When should we prefer use case descriptions over user stories? Comment on this step that appeared in a use case description: “user clicks the open button” What does an OODM captures? What does an object diagram capture? How to use object diagrams in analysis phase? What are non-functional requirements? What’s the difference between requirements and system specification? Stakeholders (Complex) Problem domain Establish requirements Focus groups User surveys Interviews Brainstorming Product surveys Observations Combat complexity… Use abstraction, build models Specify requirements… Textual descriptions Feature list User stories Use cases Prototyping OO domain models Object diagrams Activity diagrams State machine diagrams UI prototypes Glossary Supplementary requirements … Requirements Specification

Work-breakdown structures DESIGN For what purpose do you use sequence diagrams? Complete this sentence: A is coupled to B if …. What is a pattern? What’s the difference between separation of concerns and single responsibility principle? System Specification Architecture styles such as n-tier, client-server, peer-to-peer, broker, pipes-and-filters, service-oriented, transaction-processing, and MVC C A B D :B :A :D Sequence diagrams Architecture Bottom-up design Top-down design Is Unified process iterative or sequential? What’s the difference between buffers and padding? What’s the benefit of identifying the critical path of a project? Possible Improvements: Good product design guidelines (e.g., usability, …) Use OOP concepts: abstraction, encapsulation, inheritance, polymorphism ↑Cohesion, ↓Coupling Apply design principles (SOLID, Law of Demeter, Separation of concerns, …) Apply design patterns (Singleton, Façade, Command, Observer, …) B API (Application Programming interface) y x z :y :x :z operations Class diagrams Project plans PROJECT MGT Work-breakdown structures More agile  less upfront design Issue trackers Sequential Iterative Breadth-first Depth-first Includes buffers and milestones Unified process design Detailed design CMMI Agile processes XP Scrum

IMPLEMENTATION TESTING How is refactoring different from bug fixing? How are assertions different from exceptions? Is Git centralized or distributed RCS? What distinguishes a platform from a framework or a library? Describe CI (Continuous Integration). Acceptance testing is validation or verification? Give one pro and one con of white box text case design. How is integration testing different from unit testing? How does equivalence partitioning help in increasing E&E of testing? Give an advantage of TDD. Which is stronger: statement coverage or path coverage? What is the purpose of dependency injection? RCS QA = Validation + Verification Other V&V techniques: formal verification static analyzers code reviews … Unit testing Integration testing Developer testing B A C D Integration Can be late-one-time, or early-and-continuous Can be top-down, bottom-up, sandwich, big-bang Testing After modifications… Regression testing design Test cases QA Framework Platform System Library System testing Made up as you go → Exploratory testing Predetermined → Scripted testing Can be created in these ways: Black-box, Glass-box, Grey-box User Acceptance testing Alpha/beta testing Possible Improvements: Refactor code Coding standards and good coding practices Protect code using assertions, exceptions, logging, and defensive coding. Build automation, Continuous Integration Possible Improvements: Automate testing Use Test-Driven Development Increase efficiency and effectiveness of testing (Equivalence partitioning, Boundary Value analysis) Increase test coverage (function/entry/exit/statement/ branch/ condition/path coverage) isolate SUT using drivers, stubs and dependency injection

(Complex) Problem domain Requirements Specification We use OO to ‘align the view’. We use UML as the standard notation. ANALYSIS DESIGN IMPLEMENTATION QUALITY ASSURANCE Stakeholders (Complex) Problem domain RCS = Validation & Verification System Specification Establish requirements… brainstorming Focus groups User surveys Product surveys Observations Interviews Prototyping B A C D C A B D Sequence diagrams Architecture Unit testing Architecture styles such as n-tier, client-server, peer-to-peer, broker, pipes-and-filters, service-oriented, transaction-processing, and MVC Integration Can be late-one-time, or early-and-continuous Can be top-down, bottom-up, sandwich, big-bang Combat complexity… Use abstraction, build models Developer testing Other V&V techniques: formal verification static analyzers code reviews … Specify requirements… Textual descriptions Feature list User stories Use cases OO domain models Object diagrams State machine diagrams Activity diagrams UI prototypes Glossary Supplementary requirements … Integration testing Top-down design Testing B API (Application Programming interface) After modifications… Regression testing y x z operations Class diagrams QA Framework System testing Detailed design Test cases Bottom-up design System Library More agile -> less upfront detailed design Platform Made up as you go → Exploratory testing Predetermined → Scripted testing Can be created in these ways: Black-box, Glass-box, Grey-box User Acceptance testing Alpha/beta testing Detailed design Possible Improvements: Refactor code Coding standards and good coding practices Protect code using assertions, exceptions, logging, and defensive coding. Build automation Possible Improvements: Automate testing Use Test-Driven Development Increase efficiency and effectiveness of testing (Equivalence partitioning, Boundary Value analysis) Increase test coverage (function/entry/exit/statement/branch/ condition/path coverage) isolate SUT using drivers, stubs and dependency injection Possible Improvements: ↑Cohesion, ↓Coupling Apply design patterns (Abstraction Occurrence, Singleton, Command, Observer) Apply design principles (Open/close, Law of Demeter, Separation of concerns, …) Use polymorphism (inheritance, interfaces, dynamic binding) Good product design guidelines (e.g., usability, …) Possible Improvements: Apply OO paradigm Apply analysis patterns Categorize and prioritize requirements Requirements Specification Sequential Iterative Breadth-first Depth-first Project plans Unified process Team structures CMMI Work-breakdown structures PROJECT MANAGEMENT Agile processes Chief-programmer Issue trackers Includes buffers and milestones Egoless XP Scrum Strict hierarchy

(Complex) Problem domain Requirements Specification We use OO to ‘align the view’. We use UML as the standard notation. ANALYSIS DESIGN IMPLEMENTATION QUALITY ASSURANCE Stakeholders (Complex) Problem domain RCS = Validation & Verification System Specification Establish requirements… brainstorming Focus groups User surveys Product surveys Observations Interviews Prototyping B A C D C A B D Sequence diagrams Architecture Unit testing Architecture styles such as n-tier, client-server, peer-to-peer, broker, pipes-and-filters, service-oriented, transaction-processing, and MVC Integration Can be late-one-time, or early-and-continuous Can be top-down, bottom-up, sandwich, big-bang Combat complexity… Use abstraction, build models Developer testing Other V&V techniques: formal verification static analyzers code reviews … Specify requirements… Textual descriptions Feature list User stories Use cases OO domain models Object diagrams State machine diagrams Activity diagrams UI prototypes Glossary Supplementary requirements … Integration testing Top-down design Testing B API (Application Programming interface) After modifications… Regression testing y x z operations Class diagrams QA Framework System testing Detailed design Test cases Bottom-up design System Library More agile -> less upfront detailed design Platform Made up as you go → Exploratory testing Predetermined → Scripted testing Can be created in these ways: Black-box, Glass-box, Grey-box User Acceptance testing Alpha/beta testing Detailed design Possible Improvements: Refactor code Coding standards and good coding practices Protect code using assertions, exceptions, logging, and defensive coding. Build automation Possible Improvements: Automate testing Use Test-Driven Development Increase efficiency and effectiveness of testing (Equivalence partitioning, Boundary Value analysis) Increase test coverage (function/entry/exit/statement/branch/ condition/path coverage) isolate SUT using drivers, stubs and dependency injection Possible Improvements: ↑Cohesion, ↓Coupling Apply design patterns (Abstraction Occurrence, Singleton, Command, Observer) Apply design principles (Open/close, Law of Demeter, Separation of concerns, …) Use polymorphism (inheritance, interfaces, dynamic binding) Good product design guidelines (e.g., usability, …) Possible Improvements: Apply OO principles Apply analysis patterns Categorize and prioritize requirements Requirements Specification Sequential Iterative Breadth-first Depth-first Project plans Unified process Team structures CMMI Work-breakdown structures PROJECT MANAGEMENT Agile processes Chief-programmer Issue trackers Includes buffers and milestones Egoless XP Scrum Strict hierarchy

(Complex) Problem domain Requirements Specification We use OO to ‘align the view’. We use UML as the standard notation. ANALYSIS DESIGN IMPLEMENTATION QUALITY ASSURANCE Stakeholders (Complex) Problem domain RCS = Validation & Verification System Specification Establish requirements… brainstorming Focus groups User surveys Product surveys Observations Interviews Prototyping B A C D C A B D Sequence diagrams Architecture Unit testing Architecture styles such as n-tier, client-server, peer-to-peer, broker, pipes-and-filters, service-oriented, transaction-processing, and MVC Integration Can be late-one-time, or early-and-continuous Can be top-down, bottom-up, sandwich, big-bang Combat complexity… Use abstraction, build models Developer testing Other V&V techniques: formal verification static analyzers code reviews … Specify requirements… Textual descriptions Feature list User stories Use cases OO domain models Object diagrams State machine diagrams Activity diagrams UI prototypes Glossary Supplementary requirements … Integration testing Top-down design Testing B API (Application Programming interface) After modifications… Regression testing y x z operations Class diagrams QA Framework System testing Detailed design Test cases Bottom-up design System Library More agile -> less upfront detailed design Platform Made up as you go → Exploratory testing Predetermined → Scripted testing Can be created in these ways: Black-box, Glass-box, Grey-box User Acceptance testing Alpha/beta testing Detailed design Possible Improvements: Refactor code Coding standards and good coding practices Protect code using assertions, exceptions, logging, and defensive coding. Build automation Possible Improvements: Automate testing Use Test-Driven Development Increase efficiency and effectiveness of testing (Equivalence partitioning, Boundary Value analysis) Increase test coverage (function/entry/exit/statement/branch/ condition/path coverage) isolate SUT using drivers, stubs and dependency injection Possible Improvements: ↑Cohesion, ↓Coupling Apply design patterns (Abstraction Occurrence, Singleton, Command, Observer) Apply design principles (Open/close, Law of Demeter, Separation of concerns, …) Use polymorphism (inheritance, interfaces, dynamic binding) Good product design guidelines (e.g., usability, …) Possible Improvements: Apply OO principles Apply analysis patterns Categorize and prioritize requirements Requirements Specification Sequential Iterative Breadth-first Depth-first Project plans Unified process Team structures CMMI Work-breakdown structures PROJECT MANAGEMENT Agile processes Chief-programmer Issue trackers Includes buffers and milestones Egoless XP Scrum Strict hierarchy

Top-down design Revision control Automated testing … You don’t use all of it all the time. Don’t throw away because you don’t use it all the time. Know when to use. Know how to use properly.

Product-focused project modules iPad module Facebook module Multimedia project Game project …. Engineering-focused project modules Software Engineering project I, II Thematic project Top-down design Revision control Automated testing … Some of these project modules will need some of these tools, but not all. For example, some modules use certain frameworks that might already have the architecture inside them. In that case, you don’t have to define APIs. You just have to use the given APIs. Modules like these will require more of these tools. UI Logic Storage

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Which level are you in now? Expert Does the right thing intuitively. Gets the big picture. Needs the big picture. Appreciates process. Proficient e.g. can apply patterns effectively Understands conceptual models. Can use them to solve problems. Competent Dreyfus model of skill acquisition e.g. can apply a pattern Advanced beginner Can learn technologies/tools quickly, can start coding stuff quickly. Don’t want to get bogged down with fundamentals. Not yet appreciative of the big picture. Novice Needs recipes e.g. can pick up Git from an online tutorial e.g. how to use Git in project Which level are you in now?

Expert Proficient Competent Advanced beginner Novice

Expert Proficient Competent Advanced beginner Novice

Expert Proficient Competent Advanced beginner Architect Programmer Software engineer Architect Expert Proficient Competent Advanced beginner Novice

Expert Expert Proficient Proficient Competent Competent Advanced beginner Advanced beginner CS2103/T Novice Year 1 programming modules

Expert Expert Proficient Proficient Competent Competent Does the right thing intuitively. Proficient Proficient Gets the big picture. Needs the big picture. Appreciates process. Competent Competent e.g. can apply patterns effectively Understands conceptual models. Can use them to solve problems. Advanced beginner e.g. can apply a pattern Advanced beginner CS2103/T Novice Novice

Expert Expert Proficient Proficient Competent Competent Does the right thing intuitively. Proficient Proficient Gets the big picture. Needs the big picture. Appreciates process. Competent Competent e.g. can apply patterns effectively Understands conceptual models. Can use them to solve problems. Advanced beginner e.g. can apply a pattern Advanced beginner CS2103/T Novice Novice

Expert Expert Proficient Proficient Competent Competent Advanced beginner Advanced beginner CS2103/T Novice Novice

We try to push to think (lectures complement, not mirror, handouts)

Image credit: www.crafthubs.com

Don’t learn like a mouse, learn like a cat [develop your ‘helicopter factor’]

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

$3400 x 2 x 3 ≈ $20,000 $0.99 Salary/month Project duration Overhead [2014] Salary/month Project duration $3400 x 2 x 3 ≈ $20,000 Angry Graduates Overhead $0.99

Your job is to deliver value, solve problems. Hard work Stress Learning ... $3400 x 2 x 3 ≈ $20,000 If you are unable to deliver, you have to work extra to catch up. You job is not show up 8-5 and code. Your job is to deliver. Just like a doctors job is not to give medicine. Your job is to deliver value, solve problems.

You could be the weakest employee, if you are lucky. Hard work Stress Learning ... You could be the weakest employee, if you are lucky. Successful actors, singers, authors, … incredibly talented work incredibly hard.

Hard work Success Stress Learning ... Take Grades Give Work Grades Money Skills

Success ? Take Grades Skills

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Which describes you best? Current CAP is 4.5+ and I want to a PhD at a top university I am at risk of getting expelled due to low CAP I am near to a minimum CAP requirement set by a relevant special program or a scholarship board I aim for a job in the civil service or a bank and am currently close to a first class (4.5) None of the above but I can’t afford to drop my CAP further due to reason …… None of the above cap {answer} e.g. cap d 77577 OR tinyurl.com/answerpost

Which describes you best? Career is not something that happens *after* university. … and it’s not something someone else does to you. Current CAP is 4.5+ and I want to a PhD at a top university I am at risk of getting expelled due to low CAP I am near to a minimum CAP requirement set by a relevant special program or a scholarship board I aim for a job in the civil service or a bank and am currently close to a first class (4.5) None of the above but I can’t afford to drop my CAP further due to reason …… None of the above Your degree is a career optimization problem, not a CAP maximization problem!

[Your competition] CAP 4.9 CAP maximizer [Your competition] CAP 4.9 Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM

[Your competition] CAP 3.4 CAP maximizer [You] CAP 3.5 [Your competition] CAP 3.4 I have more potential This is the absolute best I can be  Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM

[Your competition] CAP 4.2 CAP maximizer [Your competition] CAP 4.2 You can beat this guy! Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM 25 years 500 1500

How to beat this guy? [You] CAP 3.5 3.2 CAP maximizer [Your competition] CAP 4.2 My CAP for ___ subjects is 4.5! How to beat this guy? Relevant subjects Do more Module projects I have done many more ____ subjects Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM 25 years 500 1500

CS3201+CS3202 SE project I, II CS3217 (iPad) CS3216 (Facebook) Create an efficient implementation of a precise specification. C++, 4+4 MC Example job: Microsoft VS team Entry points to CS special programs: von Neumann Program, Turing Program CS3217 (iPad) CS3216 (Facebook) Create novel products to solve problems. ~40 students, 5MC, 5MC Example job: GrabTaxi Contribute to an external OSS project Add a feature to an internal OSS project Build up an expertise Ready the CV for internship interviews CS3281+CS3282 Thematic project I, II Enhance an existing product that has real users. ~20 students, 4+4 MC Example job: Paypal

[Your competition] CAP 4.2 CAP maximizer [Your competition] CAP 4.2 How to beat this guy? Relevant subjects Do more Module projects Internships Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM 25 years 500 1500

Paid USD 5500 by Google Work for an open source project e.g. Mozilla During summer Can be used for CP3200 (SIP) My own OSS projects taking part (7 slots in 2016)!

[Your competition] CAP 4.2 CAP maximizer [Your competition] CAP 4.2 How to beat this guy? Relevant subjects Relevant subjects Do more Module projects Module projects Internships Internships Side projects To win at selection, build a portfolio Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM 25 years 500 1500

CS3281+CS3282 Thematic project I, II Resume Experience: 2 years in PROJECT X [100,000 users, 300 KLoC code base] Project Lead (Aug 2015 - ) : Managed a team of 11 developers Area Lead (Aug 2014 - Jul 2015): Managed feature Y Snr Developer (June 2014 - Jul 2014) Committer (Jan 2014 - Jul 2014) Contributor (Dec 2013) Big OSS projects Big OSS projects Big OSS projects Big OSS projects Collate CS2103 project CS2103 website AddressBook HubTurbo Side projects TEAMMATES Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM PowerPointLabs Your own pet project Contribute to OSS projects CS3281+CS3282 Thematic project I, II

Resume Experience: 2 years in PROJECT X [100,000 users, 300 KLoC code base] Project Lead (Aug 2015 - ) : Managed a team of 11 developers Area Lead (Aug 2014 - Jul 2015): Managed feature Y Snr Developer (June 2014 - Jul 2014) Committer (Jan 2014 - Jul 2014) Contributor (Dec 2013) Some past developers now in Google, Microsoft, Amazon, Garena, Paypal, Grab, Apple, … Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM

Resume Experience: 2 years in PROJECT X [100,000 users, 300 KLoC code base] Project Lead (Aug 2015 - ) : Managed a team of 11 developers Area Lead (Aug 2014 - Jul 2015): Managed feature Y Snr Developer (June 2014 - Jul 2014) Committer (Jan 2014 - Jul 2014) Contributor (Dec 2013) Some past developers now in Google, Microsoft, Amazon, Garena, Paypal, Grab, Apple, …

[Your competition] CAP 4.2 How to beat this guy? CAP maximizer [Your competition] CAP 4.2 [You] CAP 3.5 3.2 Module projects Internships Relevant subjects Do more Side projects Resume Experience: 2 years in PROJECT X [100,000 users, 300 KLoC code base] Project Lead (Aug 2015 - ) : Managed a team of 11 developers Area Lead (Aug 2014 - Jul 2015): Managed feature Y Snr Developer (June 2014 - Jul 2014) Committer (Jan 2014 - Jul 2014) Contributor (Dec 2013) Build a portfolio 25 years 500 1500

How to beat this guy? CAP maximizer [Your competition] CAP 4.2 [You] Module projects Internships Relevant subjects Do more I have already learned what you need Side projects I can learn anything Have a ‘thing’ Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM Build a portfolio 25 years 500 1500

[Your competition] CAP 4.2 How to beat this guy? CAP maximizer [Your competition] CAP 4.2 [You] CAP 3.5 3.2 Mastery learning Take ‘non-practical’ modules To sustain your lead, build your ‘learning muscles’ Side projects Have a ‘thing’ Background image taken from https://migreat.files.wordpress.com/2014/07/istock_000038047046_large.jpg?w=672&h=372&crop=1 on 29/10/2015 12:38:04 PM Build a portfolio 25 years 500 1500

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Interest in SE

Individual feedback, weekly Confidence Self-learning Individual feedback, weekly Help Feedback Reduced help and increased feedback, to foster self-learning.

I have figured out SE But don’t be cocky, dismissive.

All the best! Don’t stop learning.

Module Recap It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident

Module Recap Don’t stop learning. It's a toolbox. Use as necessary. Aim for higher level learning Prepare for the future portfolio + learning muscle > CAP You have reasons to be confident Don’t stop learning.