The October 2008 BCS exams are knocking the door. Its time to use the heavy artillery again….
The modules that we are going to nail down this fall are: 1) Software Development and 2) Computer & Network Technology. Let’s talk a bit about the respective module’s tastes….
Software Development
Module Rationale:
Programming, using many styles and languages, provides solutions to a wide variety of scientific, engineering and business problems. Programming is a core skill that will be used throughout a computer practitioner’s career. It is a skill largely acquired by practice and experience. This module introduces candidates to fundamental concepts of programming with the emphasis being laid on the whole of the software development process.
Problem Solving
The first recommended textbook is described below. I think this is an excellent book for those starting to learn problem solving and expressing their solutions in algorithms/ pseudocode which they can later code in any language they want. Simple Program Design: A Step by Step Approach, Fifth Edition is written for inspiring programmers who want to develop good programming skills for solving common business problems. Stressing structured programming and modular design, pseudocode is used as the major program design technique.
Author: Lesley Anne Robertson
THOMSON ; (Sep 2006) ISBN: 1423901320 ; ISBN13: 9781423901327
Table of Contents:
1. Program Design
2. Pseudocode
3. Developing an Algorithm
4. Selection Control Structures
5. Repetition Control Structures
6. Pseudocode Algorithms Using Sequence, Selection, and Repetition
7. Array Processing
8. First Steps in Modularisation
9. Further Modularisation, Cohesion, and Coupling
10. General Algorithms for Common Business Problems
11. Detailed Object-Oriented Design
12. Simple Object-Oriented Design for Multiple Classes
13. Conclusion
Appendices
A: Flowcharts
B: Special Algorithms
C: Translating Pseudocode into Computer Languages-Quick Reference Chart
The lecture notes are found here.
Software Testing
Testing is the process of executing a program with the intent of finding errors.
I enjoyed the psychology of testing and the principles of testing in this book. Chapter 7: Debugging is also very interesting:
Debugging seems to be the one part of the software production process that programmers enjoy the least. One reason:
Your ego may get in the way. Like it nor not, debugging confirms that programmers are not perfect, committing errors in either of the design or the coding of the program.
The Art of Testing is a classical book on software testing and which still has its influence today. Software testing still remains an art. We still don’t know how to make it a science. Most of the testing methods and practices are not very different from 20 years ago. It is nowhere near maturity, although there are many tools and techniques available to use. Good testing also requires a tester’s creativity, experience and intuition, together with proper techniques.
Data Structures And Algorithms
The book: Introduction to Algorithms has been recently been added to my bookshelf. After The Art of Computer Programming – Donald Knuth, this is considered to be the best book on Algorithms. The textbook provided an enjoyable introduction to the field of Algorithms.
Data Structures and Algorithms in Java – Goodrich & Tamassia; Handouts can be found on the site.
Here is a very informative web page from The University of Canterbury, on which one can find Java applets that show the operations for primitive data structures such as Stacks, Queues, and Binary Trees and also animations for sorting and searching algorithms.
Development Environment
Visual Studio – a high productivity tool
Basic Debugging features in Visual Studio 2005
11 Visual Studio 2005 IDE Tips and Tricks to Make You a More Productive Developer
If I had enough time, I would have searched on other development tools like Eclipse, Active State Komodo, NetBeans, Borland Delphi, Codegear RAD studio, Geany (my favourite), MonoDevelop, BlueJ, IntelliJ IDEA.
CSE 1002Y Programming Methodology done during academic year 1 has been also of great help, together with A-level Practical Programming Project (Paper 2). Got the ability to solve problems and express them in Pascal or C++. Development environment for Pascal: Turbo Pascal for windows; C++: Linux GCC and Geany IDE.
Computer and Network Technology Module
Module Rationale
This module provides a foundation for all professional computer personnel in computer technology and related topics, in particular the areas of: number systems, hardware, operating systems, system software, networks and system performance measurement.
Key topics: Use of Boolean Algebra, simplification of logic equations, Sequential logic elements: D flip-flops, RS flip-flops. This post depicts how “difficult” I find these topics, given it is almost blank .
Interesting topics: Trends in processor technology, Memory hierarchy, IO techniques, Future PCs, system performance and evaluation; Revision of Networking (rusted CCNA coming back !), Wi-Fi, Cloud Computing, Security.
Some chapters can be downloaded from here.
Available on the BCS 24X7 library. A very helpful book which covers fundamentals and architecture in detail.
I recently added the book: Computer Networking and the Internet – F. Halsall, a great book on Networks-covers the topic in depth. Also Computer Networks and Operating systems Design and Implementation- A. Tanenbaum are a must for reading.
Conclusive Note
Well, given I already had my first BCS paper – Information Systems (managed to get an A- ), I have an idea of how to prepare for the coming modules.
You, SD and CT, I am coming to boushoum, boushoum you down!! Wish me Good luck!