Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

CSC305 Lecture 18

Avatar for Javier Gonzalez-Sanchez Javier Gonzalez-Sanchez PRO
December 01, 2025
180

CSC305 Lecture 18

Individual Software Design and Development
Final Review
(202512)

Avatar for Javier Gonzalez-Sanchez

Javier Gonzalez-Sanchez PRO

December 01, 2025
Tweet

Transcript

  1. 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
  2. Announcements 2 * Final Exam December 04 (Lecture Time) *

    Final Project Due by December 11 (no extensions)
  3. 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%
  4. 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
  5. 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
  6. 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
  7. 12

  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. Lecture 42 trace() debug() info () warn () error() message

    01 message 02 message 03 message 04 message 05 Logger Appender Appender Appender Encoder Encoder
  14. 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
  15. 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.