Title: Cutting Edge Software Development
1Cutting Edge Software Development
- Rick Raines
- North Arkansas College
- Harrison, AR
- rraines_at_northark.edu
- www.northark.edu/users/rraines
2My Background
- Education
- BA Social Sciences Michigan State 1971
- MS Physics Michigan State 1979
- Micro-computer Consulting early 80s
- 1st PC Commodore PET 1979
- Instructor in Micro-computing 1980s
- North Harris County College Kingwood, TX
- 1st Certificate of Competency in Micro-computing
in Texas
- Compaq Computer Corp 1990s
- Technical Training
- Systems engineer (UNIX integration)
- Software developer (VB - SQL Server)
- PMI Certified Project manager
- Developer of Computer Prog Degree 2000s
- North Arkansas College Harrison, AR
3Agenda
- Program Problems and Evolution
- Target audiences
- Curriculum changes
- Programming Degrees at Northark
- Software Development
- Applied Programming
- Graduates
- Successes
- Suggestions
- .NET Associated Costs
- Free development software
- Very inexpensive ELMS software
- New Web Textbooks
- Instructor Learning
- Student continuation
4The Learning Problem
5My Pain With .NET
- Programmed in VB for 8 years
- Enjoyed the graphical user interface
- Both Compaq projects and personal projects
- Part Time Opportunity to Teach at Northark
- Happy to Teach VB.NET
- Prior to Teaching 1st Course !!!!!
- Couldnt understand the Help Screens
- Couldnt read detailed advanced books
- Couldnt read code in web sites or magazine
articles
- I was annoyed.
6My Pain part 2
- Taught VB.NET in Summer 2003
- Textbook Simply Visual Basic 2003 Deitel
Deitel
- Carefully read and taught the entire book
- After Teaching the Course !!!!!!!!!!!
- Couldnt understand the Help Screens
- Couldnt read detailed advanced books
- Couldnt read code in web sites or magazine
articles
I was way beyond annoyed.
7The MS Visual Studio Problem2 products in 1
- What is the best way to use MS Visual Studio?
8Microsoft Visual Studio2 Development Products in
1
- Personal Programming Environment (limited)
- Drag and drop
- Code behind the form (like VB6 6.0)
- Professional Programming Environment (unlimited)
- Encapsulation, Inheritance, Polymorphism
- Design Patterns, n-Tiered Architecture
- Code in classes
Personal Programs
VB.NET C .NET
Professional Programs
9Personal PathApplied Programming Goals
- Personal projects
- Individually developed
- Automation projects
- Smaller departmental projects
- Code
- Code behind the form
- Drag and drop controls
- Conclusion
- Keep it as simple and practical as possible
10Professional PathObject Oriented Programming
Goals
- Design
- Large projects
- Team development
- Code
- Flexible
- Maintainable
- Conclusion
- Simply using classes and objects does NOT mean
that you are writing flexible and maintainable
OOP code.
- A little bit of OOPs is a mistake.
11The Language Problem
- Which language do I choose, VB.NET or C.NET?
12Language Choice
- Visual Basic
- Easier syntax
- Earlier versions
- Best for Personal Programming
- Visual C
- C Programmers make 30 more money
- C is more respected by corporations
- Advanced books are first written in C
- Best for Professional Programming
- Combination May be Best
- NW Arkansas prefers C programmers
- Memphis prefers VB programmers
- Northark Programming Degree
- Switching from VB to C
13The Critical Learning Path Problem
- What do I need to know first?
- What do I NOT need to know first?
14.NET Software Development Topics
Applied Topics (horizontal) Printing, Graphics
, Files, XML, Databases, Web Sites,
Communications, Workflow
WCF, WF
SharePoint
WPF, XML
ASP.NET
ADO.NET
Learn the Language is First.
15Object Oriented Programming Critical Language Top
ics
Architecture
Teamwork Putting it all together
Design Patterns
Required Knowledge
How the pros do it
Object Models
Combining Classes and Objects
Classes and Objects
Introductory Books
Using, Reading, and Writing Classes and Objects
Procedural Code
Assignment Statements, Branching Statements,
Repetition Statements, Procedures
16Object Oriented TopicsProcedural Code
- Declarations
- Dim _name As String
- Dim _age as Integer
- Assignment Statements
- _name Rick
- _age CInt(Me.txtAge.Text)
- Branching Statements
- If _age
- Messagebox.Show(Too young to drink)
- End If
- Repetition Statements
- For each name in me.lstNames.Items
- Messagebox.Show(Name _name)
- Next
- Procedures
- Public Function GetName( ) as String
- return _name
- End Function
17Object Oriented TopicsOOP Technology - Classes
and Objects
- Public Class Person
- Private _name As String
- Public Property Name() As String
- Get
- Return _name
- End Get
- Set(ByVal Value As String)
- _name Value
- End Set
- End Property
- Public Overrides Function ToString() As
String
- Return "My name is " Name
- End Function
- End Class
18Object Oriented TopicsOOP Technology - Object
Models (Class Diagram)
19Object Oriented TopicsDesign Patterns - Abstract
Factory
20Object Oriented TopicsArchitecture
- Layers for swapping
- User Interfaces (thin)
- WinForm
- WebForm
- Web Service
- Business Logic (thick)
- This is the Application !
- Polymorphic Core
- Concrete Classes
- Data Access Layer
- SQL Server code
- Oracle code
- DB2 code
n-Tiered Architecture
User Interface Layer
Business Logic Layer
Data Access Layer
21.NET Software Development Critical Path of
Learning
- Vertical Topics (Language)
- Procedural Programming
- Object Oriented Technology
- Design Patterns
- Architecture
- Horizontal Topics (Applied - Critical)
- Databases SQL Server, ADO.NET
- Horizontal Topics (High Demand)
- Web Sites ASP.NET
221st Graduating ClassSpring 2007
23Successes of Graduates
- All have jobs
- Average starting salary 45k / yr
- Languages
- Two working in JAVA
- One working in C
- One working in VB and MS Access
24Suggestions from Graduates
- Use C rather than VB
- More industry respect
- Upper level books written in C
- Add a capstone projects course
- Useful for learning
- Useful for interviewing
- Fewer required computer courses
- Reduce computer course requirements to 3 per
semester
- 4 computer courses at a time was too many
25The Curriculum Problems
- How to develop a 5 semester curriculum in a
4 semester 2 yr degree?
- 2. How to reduce the of computer courses from
15?
26Software Development AAS Degree
Target Audience Students wishing a degree in
professional programming
Semesters I 2
Procedural Programming Pre-requisite
Semesters 3 4
Electives
27Software Development Certificate
Target Audience Programmers who wish to upgrade
their skills
Semesters I 2
Procedural Programming Pre-requisite
Semesters 3 4
28Applied Programming Certificate
Target Audience High school students and first
time programmers
Semesters I 2
Note Intermediate Prog VB is a strictly
applied course with as little OOP programming as
possible. Topics will include mutli-form apps,
intro to classes and objects, collections,
files, printing, and DB access.
29The Software Problem
- What software and what versions do I use?
- How much will it cost?
30Microsoft Software Costs
- Free Development Tools
- Visual Basic Express
- Visual C Express
- Visual Web Developer Express
- SQL Server Express
- ELMS Academic Alliance
- School costs
- 500
- Student costs
- Visual Studio Professional 2005 - 27 (media)
- SQL Server Professional 2005 included
- Windows Server 2003 Enterprise
31Microsoft ELMS Academic AllianceFree Software
32The Book Problem
- What books will I use to move up the critical
path most easily?
33Course Books
- Textbooks
- 12 mo after software ship
- Insufficient detail
- Technical books (recommended)
- 0 6 mo after software ship
- Often available as eBooks (cheaper and quicker)
- No exercises, quizzes, or tests
- Video training, Web articles
- Prior to software ship
- Based on beta software
- Difficult to tell which are good and which order
34Which Technical Book?
Apress
Murach
Wrox
Excellent Details
Excellent Introductory
Always Confusing
35Which Design Patterns book?
Excellent Concepts
Confusing Original
36The Instructor Development Problem
- How can I learn all of this before I teach my
students?
37Object Oriented Programming in C or VB
A Series of Web Textbooks by Rick Raines
- Based on Critical Path of Learning 3 semesters
- Procedural topics
- Object Oriented Technology
- Design Patterns (selected)
- Architecture (requires SQL Server and ADO.NET)
- Exercises - approximately 50 per semester
- Learn by doing, printed and/or eBook form
- Videos 1 per Exercise plus Overview lectures
- Streaming video Impatica, Camtasia, think along
with the instructor
- Workbooks printed via LuLu.com
- Powerpoint slides, code snippets
- Update and print on demand
- Distribution
- Web site
38Exercises in C II OOP Technology
39How to Usethe Object Oriented Programming in C
or VB Series
- New OOP Instructors
- Learn as you teach
- Lectures on streaming video
- Work ahead of students and help with exercises
- Knowledgeable OOP Instructors
- Lectures by instructor in classroom
- Video lectures as backup
- Exercises and tests provided
- Distance Learning
- Streaming Video Lectures
- Impatica, Camtasia, OnCue
- Live online interactive labs
- GoToMeeting (share desktop)
- Skype (inexpensive internet phone)
40Q A