Dr. Javier Gonzalez-Sanchez
[email protected]
www.javiergs.info
o
ffi
ce: 14 -227
CSC 305
Individual Software Design and Development
Lecture 01. Course Presentation
Slide 2
Slide 2 text
1. Introductions
Slide 3
Slide 3 text
First n
a
me L
a
st n
a
me
Dr. J
a
vier Gonz
a
lez-S
a
nchez
j
a
viergs@c
a
lpoly.edu
www.j
a
viergs.info
Contact Information
3
Slide 4
Slide 4 text
4
Where Am I from?
Slide 5
Slide 5 text
www.j
a
viergs.info/te
a
ching/
At CSU:
Softw
a
re Engineering (CSC 305, CSC 307, 308, 309, 508, 509)
Hum
a
n-Computer Inter
a
ction (CSC 486
a
nd CSC 570)
Teaching
5
Slide 6
Slide 6 text
6
Research
Slide 7
Slide 7 text
7
Your Turn
• Wh
a
t n
a
me do you prefer to go by?
• How pro
f
icient
a
re you in J
a
v
a
progr
a
mming?
• H
a
ve you t
a
ken CSC 307 / 308 / 309?
Slide 8
Slide 8 text
8
Roster
Slide 9
Slide 9 text
2. Course Content
Slide 10
Slide 10 text
10
Key Ideas
• Individual (well, sometimes team of two)
• Design (Software Design)
• Development (Tools)
Slide 11
Slide 11 text
11
Individual | Code is meant for human consumption
• Someone else is going to re
a
d my code.
• Someone else is going to try to modify or extend my code.
• My code should be Open
a
nd Close.
• Wh
a
t m
a
kes code e
a
sy to underst
a
nd?
• St
a
nd
a
rd Problems h
a
ve St
a
nd
a
rd Solutions
Slide 12
Slide 12 text
12
Individual | Code is meant for human consumption
Slide 13
Slide 13 text
13
Individual | Code is meant for human consumption
• Anybody c
a
n do progr
a
mming.
• You
a
re Engineers
a
nd Scientists, therefore …
• Wh
a
t
a
bout te
a
m-working?
"Gre
a
t te
a
ms
a
re built when good individu
a
ls bring their strengths together.”
• CSC 305 is
a
bout the individu
a
l
Slide 14
Slide 14 text
14
Design | Manufacturing vs. Crafting
Standard
Solutions
Slide 15
Slide 15 text
15
Development Tools
Slide 16
Slide 16 text
16
Topics covered in CSC 307, 308, and 309
Deployment
Softw
a
Testing
Coding,
Progr
a
Developing
Softw
a
Design
Requirement
Engineering
[+]
Slide 17
Slide 17 text
17
Not CSC 305, but Highly Relevant
• C
a
n you cre
a
te the Product B
a
cklog for the project described in L
a
b 1
• How m
a
ny stories (user stories)?
• Do you remember INVEST?
• Priority?
• Estim
a
tion?
Slide 18
Slide 18 text
18
Topics
• Course Overview
• Object-Oriented Design
• Exceptions, Logging, Error H
a
ndling
• Memory M
a
n
a
gement
• Disk-b
a
sed Dyn
a
mic D
a
t
a
Structures
• I/O
• Cre
a
ting Libr
a
ries
a
nd APIs
• Best Pr
a
ctices for Reuse
• Project
• Fin
a
l Ex
a
m Week
Slide 19
Slide 19 text
3. Syllabus
Slide 20
Slide 20 text
20
Guidelines
Attendance (participation) is
Expected
Slide 21
Slide 21 text
21
Guidelines
Hours per Week
Slide 22
Slide 22 text
22
Guidelines
Late Assignments
Slide 23
Slide 23 text
23
Guidelines
Regularly visit our course
page on Canvas
Slide 24
Slide 24 text
24
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 25
Slide 25 text
25
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 26
Slide 26 text
26
Guidelines
Please avoid grade grubbing —feel free to ask
questions and clarify doubts, but don’t
request extra points unless there’s a clear
grading error
Slide 27
Slide 27 text
References
Slide 28
Slide 28 text
4. Summary
Slide 29
Slide 29 text
29
Good vs. Bad
Slide 30
Slide 30 text
30
Performance + Readability
• Write e
ff
icient code but prioritize re
a
d
a
bility
a
nd m
a
int
a
in
a
bility.
• Optimize perform
a
nce-critic
a
l sections only when necess
a
ry.
Slide 31
Slide 31 text
Homework
Slide 32
Slide 32 text
32
Homework: Review Java
Read The Java Tutorials
(Links available on Canvas)
As needed
CSC 305 Individual Software Design and Development
Javier Gonzalez-Sanchez, Ph.D.
[email protected]
Fall 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.