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 18. Final Review

Slide 2

Slide 2 text

Announcements 2 * Final Exam December 04 (Lecture Time) * Final Project Due by December 11 (no extensions)

Slide 3

Slide 3 text

Grading

Slide 4

Slide 4 text

4 Grading Assignments L a bs + Quizzes Attend a nce & P a rticip a tion 25% 25% 10% 100% Project Fin a l Project Fin a l Ex a m Project 20% 20%

Slide 5

Slide 5 text

5 Grading >= 96.5 A >= 93 A- >= 89.5 B+ >= 86 B >= 82.5 B- >= 79 C+ >= 75.5 C >= 72 C- >= 68.5 D+ >= 65 D >= 61.5 D- < 61.5 F

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 Week 01

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Week 01 • 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. 10

Slide 11

Slide 11 text

Clean Coding SRP DRY KIS Errors Readability Comments DI

Slide 12

Slide 12 text

12

Slide 13

Slide 13 text

What do you think of the following? 13

Slide 14

Slide 14 text

Programming Week 03

Slide 15

Slide 15 text

Problem 15

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Multithreading Week 04

Slide 18

Slide 18 text

Analogy 18

Slide 19

Slide 19 text

Design Week 02

Slide 20

Slide 20 text

Relationships 20

Slide 21

Slide 21 text

Level of Abstraction 21 https://faculty.runi.ac.il/arik/site/Clipasso.asp

Slide 22

Slide 22 text

Hints 22 ✅ ✅ ✅ ❌ ❌ 🤔

Slide 23

Slide 23 text

Example 23

Slide 24

Slide 24 text

Quality Week 06

Slide 25

Slide 25 text

Lecture 06 - 08 25 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 26

Slide 26 text

Abstractness • Indic a tes whether: ( a ) the item is m a inly a bstr a ct (interf a ces, a bstr a ct cl a sses – extensible but not directly us a ble); or (b) it is m a inly concrete (implement a tions – directly us a ble but less extensible). • It is a v a lue between 0 a nd 1: 0 ( a concrete cl a ss or a p a ck a ge with only concrete cl a sses) 1 ( a n a bstr a ct cl a ss/interf a ce or a p a ck a ge with only a bstr a ct cl a sses/interf a ces) 26

Slide 27

Slide 27 text

Instability • Indic a tes whether: ( a ) the item is m a inly used by others (st a ble – h a rd to ch a nge); or (b) it m a inly depends on other items (in-st a ble – ch a nge a ble). • It is a v a lue between 0 a nd 1: • 0 only incoming dependencies to • 1 (only outgoing dependencies). 27

Slide 28

Slide 28 text

Question 28

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Patterns Week 07

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Lecture 10 32

Slide 33

Slide 33 text

Observer 33

Slide 34

Slide 34 text

Singleton 34

Slide 35

Slide 35 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” 35

Slide 36

Slide 36 text

Example 36

Slide 37

Slide 37 text

Example 37

Slide 38

Slide 38 text

Dependencies Week 05

Slide 39

Slide 39 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. 39

Slide 40

Slide 40 text

Lecture 04 40

Slide 41

Slide 41 text

Logging Week 08

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

Lecture 43 WE6x9ya1dfMwRTouP9DEB https://github.com/CSC3100/Tool-Logging

Slide 44

Slide 44 text

Lecture • 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. 44

Slide 45

Slide 45 text

Your Final Project Week 09

Slide 46

Slide 46 text

Yet Another App for Code Visualization 46 OK GITHUB URL Assignment 01 Assignment 02

Slide 47

Slide 47 text

Not yet 47

Slide 48

Slide 48 text

Bonus 48

Slide 49

Slide 49 text

Questions 49

Slide 50

Slide 50 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.