20
Course Conclusion Stephen P Levitt School of Electrical and Information Engineering University of the Witwatersrand 2019

Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Course Conclusion

Stephen P Levitt

School of Electrical and Information EngineeringUniversity of the Witwatersrand

2019

Page 2: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Course Conclusion

Did We Achieve the Course Outcomes?A Key Concern of Software EngineeringExam InstructionsLooking Ahead

Course Conclusion 1 / 19

Page 3: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Course Outcomes

The outcomes of this course are threefold:1 You have a good understanding of object-oriented modelling and design.

You are able to produce an object-oriented solution for a moderately-sizedproblem.

2 You are able to program using modern C++ (C++14).3 You are able to engineer a software solution as opposed to just hacking it.

Course Conclusion 2 / 19

Page 4: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Content Related to OO Modelling and Design

Objects and Classes, Interfaces and ImplementationsObject ConversationsInheritance and Role ModellingUML Class and Sequence DiagramsGeneral Design Advice and Code Smells

Course Conclusion 3 / 19

Page 5: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Course Outcomes

The outcomes of this course are threefold:1 You have a good understanding of object-oriented modelling and design.

You are able to produce an object-oriented solution for a moderately-sizedproblem.

2 You are able to program using modern C++ (C++17).

3 You are able to engineer a software solution as opposed to just hacking it.

Course Conclusion 4 / 19

Page 6: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Content Related to Modern C++

C++ Fundamentalsauto, range-based for loops, overrideSTL and vector

static membersSmart Pointers, make_unique and make_shared

Copy Construction and AssignmentError Handling and Exceptions

Course Conclusion 5 / 19

Page 7: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Course Outcomes

The outcomes of this course are threefold:1 You have a good understanding of object-oriented modelling and design.

You are able to produce an object-oriented solution for a moderately-sizedproblem.

2 You are able to program using modern C++ (C++17).3 You are able to engineer a software solution as opposed to just hacking it.

Course Conclusion 6 / 19

Page 8: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

A Key Concern of Software Engineering

Technologies change; requirements changeChange is difficult to deal withChange represents risk

A key concern of software engineering is reducing the cost of change.

Course Conclusion 7 / 19

Page 9: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Too often software looks like this

Course Conclusion 8 / 19

Page 10: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

When we want it to look like this

Course Conclusion 9 / 19

Page 11: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

A Key Concern of Software Engineering

Software engineering practices lessen the impact of change:Allow change through iterative and incremental releasesEnable change through design

Reduce couplingManage dependenciesProgram to an interface not an implementation

Facilitate change through unit testsRefactoring and regression testing

Track change through the use of a version control system

Course Conclusion 10 / 19

Page 12: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Content Related to Software Engineering

Iterative and Incremental DevelopmentGood Coding Principles and PracticesUnit TestingUse of Git and GitHubSoftware Documentation and Documentation Tools

Course Conclusion 11 / 19

Page 13: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Exam Instructions

Answer all four questions. The questions do not carry equal weight. There is atotal of 110 marks; however, 100 marks constitutes 100%.40 marks MCQs (8 × 5 marks); 70 marks standard questionsFor questions which require you to write source code, note that:

Pencil may be used.You only need to specify #include’s if specifically asked.For classes, you can give the implementation entirely in the header file, unlessdirected otherwise.Marks are not awarded solely for functionality but also for good design, makingappropriate use of library functions, following good coding practices, and using amodern, idiomatic C++ style.Your code must be easily understandable or well commented.

A separate handout containing the reference sheets is provided.

Course Conclusion 12 / 19

Page 14: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Sample MCQ Question

1 Which of the following statements are true? (5 marks)(a) The lecturer’s office is on the second floor of the building.(b) Biomedical engineers study Software Development II in their third year of

study.(c) The lab marks are finalised before the exam.(d) Software Development II usually has one of the highest pass rates in third

year.(e) The course code is ELEN3009.

Course Conclusion 13 / 19

Page 15: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Sample MCQ Question With Answers

1 Which of the following statements are true? (5 marks)(a) [+3] The lecturer’s office is on the second floor of the building.(b) [−1] Biomedical engineers study Software Development II in their third year

of study.(c) [−2] The lab marks are finalised before the exam.(d) [−2] Software Development II usually has one of the highest pass rates in

third year.(e) [+2] The course code is ELEN3009.

Note that the sum of the correct answers equals the sum of the incorrect answers.

Course Conclusion 14 / 19

Page 16: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Exam Tips

Leave the design question till last.Don’t spend more than 50 minutes on the MCQDon’t forget to fill in your student number on the MCQ cardFor descriptive questions, a mark is normally assigned for each point that needs tobe mentioned in the answerFor unit tests, a mark is assigned for the test name, and at least one mark is forthe implementationWrite the question numbers on the front page of the script

Course Conclusion 15 / 19

Page 17: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Looking Ahead To Fourth Year

Data Intensive Computing for Data ScienceParallel computing platforms/file systemsShared memory/concurrent programmingIn-memory databasesData mining/machine learning/data visualisation

Software Development III — Modern software developmentAgile development processWeb development - Javascript and Node (asynchronous/functional)Collaborative software development

Course Conclusion 16 / 19

Page 18: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

Beyond Undergrad

MSc research projects in big data, bioinformatics, empirical software engineeringresearch, software engineering education, telecomms, energy management, …

Course Conclusion 17 / 19

Page 19: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able

A Career in Software Engineering

“ This is not the end. It is not even the beginning of the end. But it is,perhaps, the end of the beginning.” — Winston Churchill

Course Conclusion 18 / 19

Page 20: Course Conclusion - GitHub Pages · Course Outcomes The outcomes of this course are threefold: 1 You have a good understanding of object-oriented modelling and design. You are able