Research Page !


As part of my Ph.D. research, we have proposed and implemented a new software development method that emphasize on the software testing cycles. Our method, Testing Before Coding (we refer to it as TBC) does not require previous background in software lifecycles and can be adopted in the existing programming or related courses without changing the course contents, syllabus, policies, or course loads. The primary feature of our approach is that software testing is presented as an integral part of programming practice; specifically, a student who is to write a program begins by writing a test suite. Figure 1 shows the TBC software development mehtod.

The TBC method has been applied in teaching undergraduate computer programming courses for the last five semesters in the Department of Computer Science at North Dakota State University. More than 150 students in each semester participated in our experiment, and the sections that applied the TBC method improved at least 24 % of their programs’ quality (in terms of black-box testing) comparing to the sections that did not apply the TBC method. Our experiment also concluded that applying the TBC method in program development helped in understanding the problems and writing the code, made it easier to do debugging, improved the quality and reliability of the code, boosted developers’ confidence, and so on.

TBC method make a cultural shift in teaching programming languages by making testing as an integral part of programming practices and apply software engineering concepts in programming courses. In our approach, developers or students must learn how to test their own code. Not only producing the correct output or a compiled version of the code. In our opinion, if developers or students know how to write the program then they better know how to test it and make sure that their programs are doing what they expected it to do.

Dr. Rahman completed the MS degree in Computer Science in the department of Computer Science at North Dakota State University. His research focus was web-based applications’ development, Software development frameworks, and Software Testing . As part of his MS research, he designed a prototype of a web-based application and implemented in both J2EE and Zope environment. Please click to visit the website for his MS research.

Spring 2007 Office hours


Publications

  1. Rahman, Syed; “Applying the TBC Method in Introductory Programming Courses”; IEEE Computer Society and ASEE sponsored conference, The 2007 Frontiers in Education Conference (FIE 2007), Milwaukee, Wisconsin, October 10–13, 2007 (under review).
  2. Schaumberg, Andrew and Rahman, Syed; “Transitioning Networks from IPv4 to IPv6”, Midwest Instruction and Computing Symposium (MICS), April 20-21, 2007, Grand Forks, ND, USA (under review).
  3. Cook, Matt and Rahman, Syed; “Java and C/C++ Language Features Comparison  in Terms of Network Programming”, Midwest Instruction and Computing Symposium (MICS), April 20-21, 2007,Grand Forks, ND, USA (under review).
  4. Rahman, Syed; “A Practical Experience on Adopting a Programming Language for Network Programming”, Midwest Instruction and Computing Symposium (MICS), April 20-21, 2007,Grand Forks, ND, USA (under review).
  5. Osmani, Morshed and Rahman, Syed; “Using Google’s PageRank  Algorithm to Identify Important Genes”, Midwest Instruction and Computing Symposium (MICS), April 20-21, 2007,Grand Forks, ND, USA (under review).
  6. Rahman, Syed; “Apply Agile Method in Introductory Programming Courses”; IEEE Computer Society and ACM SIGSOFT conference, 20th Conference on Software Engineering Education and Training, Dublin, Ireland, July 3-5, 2007 (under review).
  7. Rahman, Syed and Juell, Paul; Applying Software Development Lifecycles in Teaching Introductory Programming Courses; IEEE Computer Society and ACM SIGSOFT conference, 19th Conference on Software Engineering Education and Training, April 19-21, 2006, Hawaii, USA (PDF File).
  8. Rahman, Syed and Juell, Paul; "Testing Before Coding: A cultural change approach for teaching and developing computer programs", Association for the Advancement of Computing in Education (AACE) conference; World Conference on Educational Multimedia, Hypermedia & Telecommunications (EdMedia 2006), June 26-June 30, 2006, Orlando, Florida.
  9. Rahman, Syed and Juell, Paul; “Improving Students’ Programs Quality in Programming Courses”, Midwest Instruction and Computing Symposium (MICS), April 7-8, 2006, Iowa, USA.
  10. Osmani, Morshed and Rahman, Syed; “Applying Genetic Algorithm to Predict Tertiary Protein Structure”, Midwest Instruction and Computing Symposium (MICS), April 7-8, 2006, Iowa, USA.
  11. Basu, Samidip and Rahman, Syed; “Deadlock Free New Protocol for Concurrency Control”, Midwest Instruction and Computing Symposium (MICS), April 7-8, 2006, Iowa, USA.
  12. Osmani, Morshed and Rahman, Syed; “A Transaction Synchronization Protocol for XML Database in Web Architecture”, Midwest Instruction and Computing Symposium (MICS), April 7-8, 2006, Iowa, USA.
  13. Juell, Paul; Rahman, Syed and Salah, Akram; “J2EE Versus Zope”, ACM and AAAI organized conference, the 7th International Conference on Enterprise Information Systems (ICEIS), May 24-28, 2005, Miami, FL, USA.
  14. Rahman, Syed and Salah, Akram; “Teaching Software Testing in Introductory CS Courses and Improving Software Quality”, 3rd international Workshop on Modelling, Simulation, Verification and Validation of Enterprise Information Systems (MSVVEIS-2005), May 24, 2005, Miami, FL, USA.
  15. Rahman, Syed; Salah, Akram and Juell, Paul; “A Practical Experience on Web Applications'' Developing Environments" ISCA 20th International Conference on Computers and Their Applications (CATA-2005), March 16-18, 2005, New Orleans, Louisiana, USA.
  16. Rahman, Syed and Salah, Akram; “Adopting Test-Driven Development in Web Applications' Developments" ISCA 20th International Conference on Computers and Their Applications (CATA-2005), March 16-18, 2005, New Orleans, Louisiana, USA.
  17. Rahman, Syed, Salah, Akram and Others; “Teaching Software Testing in Introductory CS Programming Courses”, the Conference of the Midwest Instruction and Computing Symposium, April 8 - 9, 2005, Eau Claire, Wisconsin, USA.
  18. Nath, Anupam; Rahman, Syed and Salah, Akram; “An Enhancement of k-Nearest Neighbor Classification Using Genetic Algorithm” the Conference of the Midwest Instruction and Computing Symposium, April 8 - 9, 2005, Eau Claire, Wisconsin, USA.
  19. Gomaa, Mohammed; Salah, Akram and Rahman, Syed; “Towards a better model-based user interface development environment: a comprehensive survey ” the Conference of the Midwest Instruction and Computing Symposium, April 8 - 9, 2005, Eau Claire, Wisconsin, USA.
  20. Ahmed, Benzir and Rahman, Syed, “Applying hybrid Caching and Prioritizing Documents for Reducing Network Latency ” the Conference of the Midwest Instruction and Computing Symposium, April 8 - 9, 2005, Eau Claire, Wisconsin, USA.
  21. Rahman, Syed; Salah, Akram and Gomaa, Mohammed; “A Cultural Shift in Teaching Introductory CS Programming Courses and Improve Software Quality”, The 2005 International Multi-Conference in Computer Science & Computer Engineering, The 2005 International Conference on Software Engineering Research and Practice (SERP'05), June 27-30, 2005, Las Vegas, NE, USA.
  22. Rahman, Syed and Salah, Akram ; “Factors Involved for Adopting TDD in Software Industries ”, The 2005 International Multi-Conference in Computer Science & Computer Engineering, The 2005 International Conference on Internet Computing (ICOMP'05), June 27-30, 2005, Las Vegas, NE, USA.
  23. Rahman, Syed and Salah, Akram ; “Unit Testing: An Essential Ingredient for Both Heavyweight and Lightweight Software Developments ”, The 2005 International Multi-Conference in Computer Science & Computer Engineering; The 2005 International Conference on Foundations of Computer Science (FCS'05), June 27-30, 2005, Las Vegas, NE, USA.
  24. Gomaa, Mohammed; Salah, Akram and Rahman, Syed; “Reconfigurable Interfaces: A Proposal for Universal Usability Interfaces”, The 2005 World Congress in Applied Computing; The 2005 International Conference on Human-Computer Interaction; June 20-23, 2005, Las Vegas, NE, USA.

Paper Presented

  1. A Practical Experience on Web Applications'' Developing Environments, ISCA 20th International Conference on Computers and Their Applications (CATA-2005), March 17, 2005,New Orleans, Louisiana, USA
  2. Adopting Test-Driven Development in Web Applications' Developments, ISCA 20th International Conference on Computers and Their Applications (CATA-2005), March 18, 2005,New Orleans, Louisiana, USA
  3. J2EE Versus Zope, ACM and AAAI organized conference, the 7th International Conference on Enterprise Information Systems (ICEIS), May 25, 2005, Miami, FL, USA.
  4. Teaching Software Testing in Introductory CS Courses and Improving Software Quality, 3rd international Workshop on Modelling, Simulation, Verification and Validation of Enterprise Information Systems (MSVVEIS-2005), May 24, 2005, Miami, FL, USA
  5. Teaching Software Testing in Introductory CS Programming Courses, the Conference of the Midwest Instruction and Computing Symposium, April 8 - 9, 2005, Eau Claire, Wisconsin, USA
  6. A Cultural Shift in Teaching Introductory CS Programming Courses and Improve Software Quality, Department of Computer Science, North Dakota State University, June 15, Fargo, ND, USA