Slide 1

Slide 1 text

Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.info o ffi ce: 14 -227 CSC 305 Individual Software Design and Development Lecture 17. Final Review

Slide 2

Slide 2 text

Announcements 2 * Final Exam March 13 (Lecture Time) * Final Project Due by March 20 (no extensions)

Slide 3

Slide 3 text

Grading

Slide 4

Slide 4 text

Grading 4 Project 20/12 = 1.667 each 20/ 3 = 6.667 each

Slide 5

Slide 5 text

Grading

Slide 6

Slide 6 text

Disclaimer

Slide 7

Slide 7 text

Disclaimer for Final Exam Review The f in a l ex a m is comprehensive, encomp a ssing a ll course m a teri a ls. This review covers only a subset of topics. Import a nt: • Ensure you review a ll lecture slides a nd course m a teri a ls. • The following slides include ex a mples rel a ted to selected topics. • This is NOT a n exh a ustive list of ex a m topics. 7

Slide 8

Slide 8 text

Clean Coding Lectures 1 - 3, 9

Slide 9

Slide 9 text

Lecture 01 Read: https://google.github.io/styleguide/javaguide.html

Slide 10

Slide 10 text

Lecture 02, 03. Clean Coding SRP DRY KIS Errors Readability Comments DI

Slide 11

Slide 11 text

Lecture 02, 03 • Cle a n code is re a d a ble, m a int a in a ble, a nd follows principles like SRP, DRY, a nd DI. • Be re a dy to a nswer multiple-choice teoretic a l questions • Be re a dy to a pply them on open-questions (coding) • Apply these in your Fin a l Project. 11

Slide 12

Slide 12 text

Example 12

Slide 13

Slide 13 text

13

Slide 14

Slide 14 text

What do you think of the following? 14

Slide 15

Slide 15 text

Dependencies Lectures 4

Slide 16

Slide 16 text

Lecture 04 • Dependency m a n a gement in J a v a . • M a ven simpli f ies dependency m a n a gement by a utom a tic a lly downlo a ding required libr a ries a nd their dependencies using a project object model (POM) f ile. • Students were t a sked with running a n ex a mple a nd re f lecting on whether the ex a mples a lign with cle a n coding principles. 16

Slide 17

Slide 17 text

Lecture 04 17

Slide 18

Slide 18 text

Logging Lectures 5, 24

Slide 19

Slide 19 text

Lecture 05, 24 19 trace() debug() info () warn () error() message 01 message 02 message 03 message 04 message 05 Logger Appender Appender Appender Encoder Encoder

Slide 20

Slide 20 text

Lecture 05, 24 20 WE6x9ya1dfMwRTouP9DEB https://github.com/CSC3100/Tool-Logging

Slide 21

Slide 21 text

Lecture 05, 24 • The import a nce of logging for recording events a nd mess a ges during a progr a m’s execution • Using SLF4J with Logb a ck • Log levels (TRACE, DEBUG, INFO, WARN, ERROR) • Utilizing ConsoleAppender a nd FileAppender • You h a ve integr a ted logging into their Tic-T a c-Toe project. Ex a mples a nd reus a ble code were provided through our GitHub repository. 21

Slide 22

Slide 22 text

Logging Lectures 6 - 8

Slide 23

Slide 23 text

Lecture 06 - 08 23 Abstract Concrete Stable Hard to Change Only incoming dependencies Unstable Changeable Only outgoing dependencies the main sequence Painful Useless 0 1 1 0 Instability Abstractness

Slide 24

Slide 24 text

Question 24

Slide 25

Slide 25 text

Lecture 06 - 08 - Is this a good design? 25

Slide 26

Slide 26 text

Design Lectures 10

Slide 27

Slide 27 text

Lecture 10 27

Slide 28

Slide 28 text

Examples • Type A. What is the problem solved using ________________________ ? • Type B. Program the following in an standard way: “A Dashboard show information about stock prices; prices are available to be downloaded from a broker (postal office). A Genius need access to the stock prices to calculate good investment recommendations” 28

Slide 29

Slide 29 text

Design Patterns Lectures 11-19

Slide 30

Slide 30 text

Observer 30

Slide 31

Slide 31 text

Singleton 31

Slide 32

Slide 32 text

Composite 32

Slide 33

Slide 33 text

Strategy 33

Slide 34

Slide 34 text

Builder 34 https://refactoring.guru/design-patterns/builder

Slide 35

Slide 35 text

Questions 35 New 1st-click 2nd-click 3rd-click 4th-click

Slide 36

Slide 36 text

Challenges Lectures 20

Slide 37

Slide 37 text

Idea 37 Main Factory Gift Ball Box Envelop Handler Supervisor Bin

Slide 38

Slide 38 text

To Code 38

Slide 39

Slide 39 text

Example 39

Slide 40

Slide 40 text

Example 40

Slide 41

Slide 41 text

Your Final Project Lectures 21

Slide 42

Slide 42 text

Ask for User Name 42 Test Score About

Slide 43

Slide 43 text

Letter-Number Sequencing Test 43 9 A 1 Letters: Numbers: B

Slide 44

Slide 44 text

Trail Making Test A 44 1 3 8 10 5 9 7 2 6 4

Slide 45

Slide 45 text

Tower of London 45 Go a l:

Slide 46

Slide 46 text

Questions 46

Slide 47

Slide 47 text

CSC 305 Individual Software Design and Development Javier Gonzalez-Sanchez, Ph.D. [email protected] Winter 2025 Copyright. These slides can only be used as study material for the class CSC305 at Cal Poly. They cannot be distributed or used for another purpose.