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
Introduction
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
Where Am I from?
4
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
Research
6
Slide 7
Slide 7 text
Your Turn
• Wh
a
t is your n
a
me (or how you go by it)?
• Are you pro
f
icient in progr
a
mming with J
a
v
a
?
• Did you took 307/308/309?
7
Slide 8
Slide 8 text
Course Content
Slide 9
Slide 9 text
Key Ideas
• Individual (well, sometimes team of two)
• Design (Software Design)
• Development (Tools)
9
Slide 10
Slide 10 text
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
10
Slide 11
Slide 11 text
Individual | Code is meant for human consumption
11
Slide 12
Slide 12 text
Design | Manufacturing vs. Crafting
• 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
12
Slide 13
Slide 13 text
Design | Manufacturing vs. Crafting
13
Standard
Solutions
Slide 14
Slide 14 text
Development Tools
14
Slide 15
Slide 15 text
Topics
• Week 1: Course Overview
• Week 2: Object-Oriented Design
• Week 3: Exceptions, Logging, Error H
a
ndling
• Week 4: Memory M
a
n
a
gement
• Week 5: Disk-b
a
sed Dyn
a
mic D
a
t
a
Structures
• Week 6: File I/O
• Week 7: Cre
a
ting Libr
a
ries
a
nd APIs
• Week 8: Best Pr
a
ctices for Reuse
• Week 9: Individu
a
l Project
• Week 10: Fin
a
l Ex
a
m Week
15
Slide 16
Slide 16 text
Syllabus
Slide 17
Slide 17 text
Guidelines
17
Attendance (participation) is
Expected
Slide 18
Slide 18 text
Guidelines
18
Hours per Week
Slide 19
Slide 19 text
Guidelines
19
Late Assignments
Slide 20
Slide 20 text
Guidelines
20
Regularly visit our course
page on Canvas
Slide 21
Slide 21 text
Grading
21
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 22
Slide 22 text
Grading
22
>= 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 23
Slide 23 text
Guidelines
23
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 24
Slide 24 text
References
Slide 25
Slide 25 text
Homework
Slide 26
Slide 26 text
Homework: Review Java
26
Read The Java Tutorials
(Links available on Canvas)
As needed
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.
30
Slide 31
Slide 31 text
Questions
31
Slide 32
Slide 32 text
Lab
Slide 33
Slide 33 text
Quiz 01
33
Programming 101 Exam Quiz!
Slide 34
Slide 34 text
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.