What%20Makes%20a%20Professional%20Programmer? - PowerPoint PPT Presentation

About This Presentation
Title:

What%20Makes%20a%20Professional%20Programmer?

Description:

What Makes a Professional Programmer? Adair Dingle CSSE Dept Seattle University dingle_at_seattleu.edu – PowerPoint PPT presentation

Number of Views:143
Avg rating:3.0/5.0
Slides: 20
Provided by: Informati288
Learn more at: https://nwcpp.org
Category:

less

Transcript and Presenter's Notes

Title: What%20Makes%20a%20Professional%20Programmer?


1
What Makes a Professional Programmer?
  • Adair Dingle
  • CSSE Dept
  • Seattle University
  • dingle_at_seattleu.edu

2
Themes
  • Common Learning Obstacles
  • DOCUMENTATION
  • Bounds
  • Memory Management
  • Consistency in Design
  • Personal Characteristics
  • Successful Training

3
Classic Curriculum
  • Introduction to Programming
  • Data Structures
  • Algorithms
  • Computer Architecture
  • Operating Systems
  • Automata
  • Programming Languages

4
Common Curriculum
  • Introduction to Programming
  • ( Data Structures )
  • Algorithms
  • ( Computer Architecture )
  • Database
  • Software Design
  • Software Engineering

5
Overflow
  • x
  • myClassStatic
  • (lo hi)/2 // binary search
  • lo (hi-lo)/2
  • Arrayindex
  • Arrayindex
  • Arrayindex

6
Binding
  • Base myObject
  • Base basePtr
  • basePtr GetObject()
  • basePtr-gtrunTbound()
  • myObject.runTbound()
  • basePtr-gtcompileTbound()

7
Conceptual OverlapBinding Accessibility
  • Base basePtr GetObject()
  • basePtr-gtvfunc()
  • // vfunc public in Base
  • // vfunc private in Derived
  • // behavior understood
  • // IF process understood
  • // explain vtab

8
Memory Management
  • Low-level perspective
  • Every new has a matching delete
  • Issue of ownership neglected
  • Aliases!!
  • MM cannot be done correctly so we need to use a
    garbage collector (Java)
  • Garbage collection solves all problems

9
Ownership Transfer
  • //assumption constructor
  • myClass(yourClass s)
  • myHandle s
  • s 0

10
Ownership Transfer
  • // caller must assume responsibility
  • MyClass localFn(MyClass ptr)
  • MyClass heapPtr new MyClass
  • ptr heapPtr
  • return ptr

11
Ownership Transfer
  • // indirect handle obscures error
  • MyClass localFn(MyClass ptr)
  • MyClass localObject
  • ptr localObject
  • return ptr

12
Aliases
  • int MyClasssubvert()
  • return privateHandle
  • int alias array10
  • int DB10
  • int ptr DB9
  • ptr

13
  • class Fixed public Base
  • // handle can be zeroed out
  • // array of Base objects
  • // address of Base descendant
  • class Flow
  • Base handle

14
Composition versus Inheritance
  • Interface
  • Language Support
  • Overhead
  • Flexibility
  • Polymorphic subobject
  • Cardinality
  • Ownership
  • Impact on extensibility

15
Interface/Expectations
  • (x lt y)
  • (y gt x)
  • x.operatorlt(y)
  • y.operatorgt(x)
  • (x lt y)
  • !(x gt y)

16
Personal Characteristics
  • Love of Learning
  • Constant self-education
  • Curious how do things work?
  • Reflective identify patterns
  • Analytical
  • Egalitarian
  • No silver bullet
  • Not wedded to single language, tool, platform

17
Personal Characteristics
  • Independent
  • Compile, run, test play
  • Seek answers online, references, samples
  • Collaborative
  • ASKs for HELP when necessary
  • helps others without rancor
  • BALANCE
  • Not always a lone ranger
  • Not a pest

18
Plugs
  • Senior Capstone Project (Seattle University
    Project Center)
  • Sponsored by industry
  • real work
  • Literature with Analysis
  • C Memory First (Dingle Hildebrandt, 2006)
  • Study beyond syntax
  • K-12 math (analytical skills)
  • www.wheresTheMath.com

19
Thanks to
  • Roger Ball, manager Zilog
  • Robert Field, software consultant
  • Thomas Hildebrandt, software consultant
Write a Comment
User Comments (0)
About PowerShow.com