Showing posts with label Computer Science. Show all posts
Showing posts with label Computer Science. Show all posts

An online comprehensive career guide in Computer Science

Friday, August 02, 2013

For my fellow Computer Scientists and those aspiring to pursue careers in Computer Science, here is a link to a comprehensive career guide in Computer Science by the Open Education Database - http://oedb.org/careers/computer-science/

Read more...

My PhD academic journey

Monday, November 29, 2010

Update (25/09/2015)
====

My PhD thesis defence was held on 28th August 2015 at 12 noon at the University of Eastern Finland School of Computing in the Louhela Auditorium, Joensuu Science Park in Joensuu, Finland. A summary of my PhD thesis is at http://bkankuzi.blogspot.com/2015/09/a-summary-of-my-phd-thesis-in-not-so.html
====

I was a PhD student in Computer Science with the University of Eastern Finland under the supervision of Prof. Jorma Sajaniemi from January 2010.  In this post and other posts in this blog, I attempted to chronicle my academic journey by documenting some of the research papers I was reading for assigned academic tasks. I am thankful to God for the grace.

Mental Representations in Programming


Canas J. et al.(1994). Mental models and computer programming. International Journal of Human-Computer Studies. 40. 795-811

Sajaniemi J. et al. (2007). A study of the Development of Students Visualizations of Program State during an Elementary Object-Oriented Programming Course. ICER07. ACM Press.

Fix V. et al (1993). Mental Representations of Programs by Novices and Experts. INTERCHI 93. ACM Press.

Ramalingam V. and Wiedenbeck S. (1997). An Empirical study of novice program comprehension in the imperative and object-oriented styles. ACM Press, New York, USA.

Petre M. et al. (2003). My criterion is: Is it a Boolean? : A card-sort elicitation of students knowledge of programming constructs

Petre M. and Blackwell A.F. (1996). A Glimpse of Expert Programmers' Mental Imagery

Requirements Engineering

Bray I.K. (2002). An Introduction to Requirements Engineering. Addison Wesley

Kovitz B.L. (1999). Practical Software Requirements. Manning Publications Company

Lauesen S. (2002). Software Requirements. Addison-Wesley

Leffingwell D. and Widrig D. (2003). Managing Software Requirements. Addison-Wesley

Software Process Models

Boehm B.W. (1988). A Spiral Model of Software Development and Enhancement. IEEE Computer.

Brooks F.P. (1987). Essence and Accidents of Software Engineering. IEEE Computer.

Larman C. and Basili V.R. (2003). Iterative and Incremental Development: A Brief History. IEEE Computer Society.

Empirical Studies in Programming

Davies S. P. (1993b). The Structure and Content of Programming Knowledge: Disentangling Training and Language Effects in Theories of Skill Development. International Journal of Human-Computer Interaction 5(4), 325-346.

Soloway E., Ehrlich K., (1984). Empirical Studies of Programming Knowledge. IEEE Transactions on Software Engineering 10(5), 595-609.

Spohrer J. C., Pope E., Lipman M., Sack W., Freiman S., Littman D., Johnson L., Soloway E. (1985). Bugs in Novice Programs and Misconceptions in Novice Programmers. K. Duncan, D. Harris (eds.), Computers in Education, Elsevier Science Publishers, 543-552.

Sajaniemi J., Navarro Prieto R. (2005). An Investigation into Professional Programmers’ Mental Representations of Variables. 13th International Workshop on Program Comprehension (IWPC 2005), IEEE Computer Society, 55-64.

Pennington N. (1987). Comprehension Strategies in Programming. G. M. Olson, S. Sheppard, E. Soloway (eds.), Empirical Studies of Programmers: Second Workshop, Ablex Publ. Co., 100-113.

Davies S. P. (1993a). Models and Theories of Programming Strategy. International Journal of Man-Machine Studies 39(2), 237-267.

Vans A. M., von Mayrhauser A., Somlo G. (1999). Program Understanding Behavior during Corrective Maintenance of Large-Scale Software. International Journal of Human-Computer Studies 51(1), 31-70.


Rist R. S. (1989). Schema Creation in Programming. Cognitive Science 13, 389-414.

Détienne F. (1997). Assessing the Cognitive Consequences of the Object-oriented Approach: A Survey of Empirical Research on Object-oriented Design by Individuals and Teams. Interacting with Computers, 9, 47-

Singer J., Lethbridge T. (1998). Studying Work Practices to Assist Tool Design in Software Engineering. Sixth International Workshop on Program Comprehension IWPC’98, Ischia, Italy.

Sajaniemi J. (2000). Program Comprehension through Multiple Simultaneous Views: A Session with VinEd. Eight International Workshop on Program Comprehension IWPC’2000, Limerick, Ireland, 99-108.

Usability Engineering

Sherman, P., Usability Success Stories: How Organizations Improve By Making Easier to Use Software and Web Sites

Chapter 1: An Introduction to Usability and User-Centred Design

Chapter 2: Tracking Ease-of-Use Metrics: A Tried and True Method for Driving Adoption of UCD in Different Corporate Cultures

Chapter 3: Tales from the Trenches – Getting Usability through Corporate

Chapter 4: Redesigning the United States Department of Health and Human Services Website

Chapter 5: Creating Better Working Relationships in a User-Focused Organization

Chapter 6: Using Innovation to Promote a User-Centred Design Process While Addressing Practical Constraints

Chapter 7: Changing Perceptions – Getting the Business to Value User-Centred Design Processes

Chapter 8: User Interface Design at Siemens Medical Solutions

Chapter 9: Collaborating with Change Agents to Make a Better User Interface

Chapter 10: Learning from Success Stories



Philosophy of Computer Science

Newell A., Perlis A.J., Simon H.A., (1967), What is Computer Science?. Science, 157, pp 1373-4

Denning P. J., et al., (January 1989), Computing As A Discipline (Report of the Taskforce on the Core of Computer Science), Communications of the ACM, Volume 32, Issue 1, pp 9 – 21

Broy, M., (2009). Seamless Model Driven Systems Engineering Based on Formal Models. In Formal Methods and Software Engineering: Proceedings of the 11th International Conference on Formal Engineering Methods, ICFEM 2009, Rio de Janeiro. Karin Breitman & Ana Cavalcanti (Editors) . Springer. pp 1 – 19.

Davis, J. F., (2005). The Affordable Application of Formal Methods to Software Engineering. In Proceedings of the 2005 annual ACM SIGAda International Conference on Ada: The Engineering of Correct and Reliable Software for Real-Time & Distributed Systems using Ada and Related Technologies. Association of Computing Machinery. pp 57-62

Hinchey, M., Jackson, M., Cousot, P., Cook, B., Bowen, J.P., and Margaria, T. (2008). Software Engineering and Formal Methods. Communications of the Association of Computing Machinery. Volume 51. Issue 9 . pp 54-59.

Woodcock, J., Larsen, P. G. Bicarregui, J., and Fitzgerald, J. (2009). Formal methods: Practice and Experience. ACM Comput. Surv. Volume 41. Issue 4

Tedre, M., (2009). Computing as Engineering. Journal of Universal Computer Science, vol. 15, no. 8, pp 1642-1658

Parnas, D. L., (1999). Software Engineering Programs Are Not Computer Science Programs. IEEE Softw. Volume 16. Issue 6. pp 19-30

Linden, T. A. (1972). A Summary of Progress Toward Proving Program Correctness. In
Proceedings of the December 5-7, 1972, Fall Joint Computer Conference, Part I. Association of Computing Machinery. P 201-211.

Priestley, M. (2005). The Logic of Correctness in Software Engineering. In Jaelson Castro, Ernest Teniente (Eds.): Advanced Information Systems Engineering, 17th International Conference, CAiSE 2005. Proceedings of the CAiSE'05 Workshops, Vol. ISBN 972-752-077-4

Sanders, D and Hartman, J. (1987). Assessing the quality of programs: a topic for the CS2 course. SIGCSE Bull. Volume 19, Issue 1. pp 92-96.

Stamouli I and Huggard M. (2006). Object oriented Programming and Program Correctness: The Students' Perspective. In Proceedings of the Second International Workshop on Computing Education Research. Association of Computing Machinery. pp 109-118.

Denning, P.J., Comer, D.E., Gries, D., Mulder, M.C., Tucker, A., Turner, A.J., Young, P.R.,(1989). Computing as a Discipline. Communications of the ACM. Volume 32. Number 1. pp 9 - 23.

Jacobson, I. and Spence, I. (2009) Why We Need a Theory for Software Engineering URL:
http://drdobbs.com/architecture-and-design/220300840 Accessed 5th January 2012

Knuth, D. (1974) Computer Science and Its Relation to Mathematics. American Mathematical Monthly. Volume 81. Issue 4. pp 323-343

May, J. (2004) Theory in HCI. In W.S. Bainbridge (Ed.). Berkshire Encyclopaedia of Human-Computer Interaction, vol. 2, pp. 723-727. Berkshire Publishing : Great Barrington, MA.

Matteuzzi, M. (1995) Why AI is not Science, URL: http://stanford.edu/group/SHR/4-
2/text/matteuzzi.html Accessed on 18th December 2011

Lippman, S. B. (2006) {End Bracket}:Is Programming an Art? MSDN Magazine. URL:
http://msdn.microsoft.com/en-us/magazine/cc163546.aspx Accessed on 3rd January 2011

Parnas, D. L., (1999). Software Engineering Programs Are Not Computer Science Programs.IEEE Softw. Volume 16. Issue 6. pp 19-30

Bynum, T. W. (2000) A Very Short History of Computer Ethics. Newsletter on Philosophy and Computing. American Philosophical Association.

Chalmers, M. (2006) Ubiquitous Computing: Experience, Design and Science. URL:
http://eprints.gla.ac.uk/13941 Accessed on 27th December 2011

May, J. (2004) Theory in HCI. In W.S. Bainbridge (Ed.). Berkshire Encyclopaedia of Human- Computer Interaction, vol. 2, pp. 723-727. Berkshire Publishing : Great Barrington, MA.

Tedre, M. (2006) What Should be Automated? The Fundamental Question Underlying Human-
Centred Computing. Proceedings of the 1st International Workshop on Human-Centred
Multimedia (HCM) 2006, October 27, 2006, Santa Barbara,USA. pp 19-24.

Tedre, M. (2008) FEATURE: What should be automated?. Interactions. Volume 15. Issue 5.Association of Computing Machinery. pp 47 - 49

ICT for Development

 Benjamin, P. (2001). Does 'Telecentre' mean the centre is far away? Telecentre development in South Africa. The Southern African Journal of Information and Communication . Volume 1. Number 1. URL: http://link.wits.ac.za/journal/j-01-pb.htm

Bellu, L.G. (). (2011). Development and Development Paradigms .A (Reasoned) Review of Prevailing Visions. EasyPol Resources for PolicyMaking. URL: http://www.fao.org/docs/up/easypol/882/defining_development_paradigms_102en.pdf

DevPolitics. (2010). Defining Development. Musings and Analysis of the Politics and Policies of Development from Students at NYU's Robert F. Wagner Graduate School of Public Service. URL: http://oldmole.typepad.com/devpolitics/2010/02/defining-development-1.html

Falcha, M. and Anyimadu, A. (2003). Tele-centres as a way of achieving universal access—the case
of Ghana. Telecommunications Policy. Volume 27. pp 21–39.

Johannson Hedberg, L. (2010). Telecentre for Community Development: Evaluation of the Tunjang Telecentre, Malaysia. The Journal of Community Informatics. Volume 6. No 2. URL: http://ci-journal.net/index.php/ciej/article/view/412/601

MIT Sloan Management Review. (2012). What is Sustainability?. URL: http://sloanreview.mit.edu/what-is-sustainability/

Mukerji, M. (2008). Telecentres In Rural India: Emergence And A Typology.
The Electronic Journal on Information Systems in Developing Countries. Volume 35. Issue 5. pp 1-13. URL:  http://www.ejisdc.org/ojs2/index.php/ejisdc/article/viewFile/520/254 

Sustainable Measures. (2010). Definitions of Sustainability.  URL: http://www.sustainablemeasures.com/node/35

University of Reading School of Agriculture, Policy and Development. (2012). Definitions: Types of Sustainability. URL: http://www.ecifm.rdg.ac.uk/definitions.htm

Wellenius, B. (2003). Sustainable Telecenters. Public Policy for the Private Sector Journal. World Bank. Note Number 251. URL: http://rru.worldbank.org/documents/publicpolicyjournal/251welle-121302.pdf

Tiihonen, T.  (2011). Information Systems in Context. Building a Tool for Analysing the Sociotechnical Context of Organisational Information Systems. PhD Dissertation.  University of Eastern Finland. School of Computing. Retrieved 13.12.2012 from http://epublications.uef.fi/pub/urn_isbn_978-952-61-0595-6/urn_isbn_978-952-61-0595-6.pdf

Olson, J., Codde, J., deMaagd, K., Tarkelson, E., Sinclair J., Yook, S., Egidio R. (2011). An Analysis of e-Learning impacts & best practices in developing countries - With reference to Secondary School Education in Tanzania. Information & Communications Technology for Development. Michigan State University. Retrieved November 16, 2012 from http://tc.msu.edu/sites/default/files/pdf/E-Learning-White%20Paper_oct-2011.pdf

Unwin T., Kleessen, B., Hollow, D., Williams, J.B. Mware Oloo, L., Alwala, J. Mutimucuio, I., Eduardo, F., Muianga, X. (2010). Digital learning managements systems in Africa: Myths and realities. Open Learning: The Journal of Open, Distance and E-learning. http://www.tandfonline.com/doi/abs/10.1080/02680510903482033

USAID (2011). First principles: Designing effective education programs using Information and Communication Technology. Retrieved, November 16 from http://www.equip123.net/docs/E1-FP_ICT_Compendium.pdf

Chirwa, M.L. (2010). Knowledge Synthesis on Malawi Health System: Literature Review. Retrieved 6.12.2012 from    http://www.chraic.org/wp-content/uploads/2010/09/Malawi-Knowledge-Synthesis.pdf

Mueller DH, Lungu D, Acharya A, Palmer N (2011) Constraints to Implementing the Essential Health Package in Malawi. PLoS ONE 6(6): e20741. Retrieved 6.12.2012 from http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0020741



Read more...

Computer Science is different from Information Technology!

Friday, February 27, 2009

I am a computer scientist by profession. However, one thing that surprises me is the fact that many people (only here in Malawi?) fail to distinguish computer science from the so called "information technology". So I googled on this and following are some of the results:


Computer Science, Computing, Computer Studies, ICT and Information Technology – are they all the same thing?

There is unfortunately a lot of confusion over these terms in the general population and in schools, and people who should know better use them as if they were interchangeable. Computer Science is the study of information and computation. The other terms are more vocational and mostly describe training courses in how to use particular pieces of software. Think of it this way: someone with an ICT qualification will know how to use a program like Word. Someone with a Computer Science qualification will know how to create a program like Word, and will also know how to make it easier to use, how to make it work on a variety of machines, how to make it easy to add additional functionality, how to fix bugs in it, how to make it communicate with other pieces of hardware or software, how to market it and how to deal with any legal or copyright problems with it. They will understand the theoretical basis underlying the program. They will also know how to do a million other things besides. Not just now, but throughout their working career.

Source: University of Cambridge Computer Laboratory



From a very broad perspective, Computer Science is the study of the principles of computing. It helps you better understand how computers solve problems, the kinds of problems that a computer can solve and how one would present a problem to a computer. Abstract ideas that rely on fundamental mathematical theories are at the heart of Computer Science. Information Technology is the study of technology that drives Information Systems for businesses. Understanding how technology/tools can best meet the Information management needs of an organization is at the heart of IT. Familiarity with such tools is an essential for a successful IT professional. The interesting relation between the 2 fields lies in the fact that more often than not, it is Computer Scientists that design and develop these tools that an IT professional uses. Personally, I think that an adaptable Computer Scientist should not find it difficult to migrate to the field of IT (if he/she chooses to do so) by learning more about the technology that is predominately used at his/her organization. An IT professional on the other hand, will have to go through mathematics/CS training in order to be a good computer scientist. In a nutshell, Computer Science is about understanding generic concepts,whereas IT is about knowing more facts.

Source: WikiAnswers



For more on what computer science is, check on Wikipedia

Read more...

Is Computer Science Dying?

Tuesday, November 20, 2007

Article Source: ACM TechNews; Monday, November 19, 2007
Article Author: David Chisnall in InformIT (November 9, 2007)

A gradual fall-off in the number of people applying to earn degrees in Computer Science since the implosion of the first dot-com bubble has fostered a perception that the field is expiring, but David Chisnall questions this assertion.

The idea that Computer Science is dying is muddled by the fact that few people know what truly constitutes computer science, with most people viewing it as a vocational course that focuses on programming. "A computer scientist may not fabricate her own ICs, and may not write her own compiler and operating system ... But the computer scientist definitely will understand what's happening in the compiler, operating system, and CPU when a program is compiled and run," Chisnall writes.

From his perspective, Computer Science lies at the convergence of Mathematics, Engineering, and Psychology, and the third discipline is critical to the instruction of computers by humans. Psychology plays a part not only in human/computer interaction, but also in the development and assessment of computer intelligence, according to Chisnall. He maintains that a lot of unhappiness with Computer Science stems from the mistaken assumption that Computer Science graduates will also be expert programmers, and notes that a lot of people appear to confuse Computer Science and Software Engineering.

Chisnall points out that "Computer Science is first and foremost a branch of Applied Mathematics, so a computer scientist should be expected to understand the principles of mathematical reasoning" However, he notes that Computer Science has the added distinction of its concentration on efficiency and concurrent thinking at different levels of abstraction.

Read the full article of David Chisnall's thoughts at http://www.informit.com/articles/article.aspx?p=1083188

Read more...

  © Free Blogger Templates Columnus by Ourblogtemplates.com 2008

Back to TOP