Problem Solving for Programmers

Duration: 1 – 6 Days

Course Overview

This training consists of a series of one day sessions designed to help existing programmers to develop their problem solving skills.

How can I attend my course?

On-line from
your chosen location

At our dedicated
training facility

On-site at
your premises

Course Content

Module 1 (Day 1)

• Introduction to problem solving
• Review of some general problem solving techniques
• The importance of planning
• Identifying input, process and output
• Problems involving sequence, selection and repetition

Module 2 (Day 2)

• The importance of data structures
• Problems where arrays are most appropriate
• Storing, searching, sorting
• Top down design
• Stepwise refinement
• Using functions
• Building up a toolkit of problem solving techniques:
– reviewing solutions in critical but constructive way
– solving the same problem in different ways
– getting past initial ownership; the importance of re-writing code

Module 3 (Day 3)

• More data structures including stacks, queues, linked lists and trees
• Choosing the right tools to solve a problem
• Static versus dynamic data structures
• Pointers and memory management
• Understanding what goes on behind the language
• A brief review of how programs and data are stored and accessed; the stack and the heap
• Why think about memory and how a language works; solving a problem is the first stage, ensuring an implementation in a computer language can and will work is the next

Module 4 (Day 4)

• Introduction to Object Oriented Programming
• Classes and objects
• Object oriented analysis and design; problem solving with objects
• Re-factoring

Module 5 (Day 5)

• More advanced object oriented techniques
• Inheritance and polymorphism
• Abstract classes
• Interfaces

Module 6 (Day 6)

• Other problem solving techniques
• Recursion
• Code re-use
• Design re-use; introduction to the idea of patterns
• Working as a team:
– the importance of a plan based upon the requirements
– identifying strengths and weakness of the members of the team
– how will you know you have finished; introduction to the idea of test driven development

Further Information:

• The presentation style will be a mixture lectures, practical sessions and discussions.
• Many examples will be presented using pseudo code that can then be converted easily into any programming language.
• Other examples will be presented using a language such as Javascript.
• Any specific language syntax used will be reviewed as required to reflect the knowledge of the attendees.
• At the end of each session further problems will be suggested for the attendees to work on to apply and develop their problem solving skills.
• These problems will be reviewed at the start of the next session.
• It is assumed that the attendees will have time between sessions to attempt the problems and decide what they understand and what they need to ask.
• Course material will be modified to suit the needs of the attendees; having a series of short sessions spread over a number of weeks makes this possible.

COURSE PREREQUISITES

It is assumed that attendees will have some programming experience and a working syntactic knowledge of a modern programming language.

You will receive a full set of course notes
and all supporting materials for your course.

Hard Copy Delivered to your premises or Downloaded to a chosen device.

To book this course please call 
+44 (0) 1444 410296 or email Info@kplknowledge.co.uk