Science topic

Computer Science Education - Science topic

Explore the latest questions and answers in Computer Science Education, and find Computer Science Education experts.
Questions related to Computer Science Education
  • asked a question related to Computer Science Education
Question
5 answers
Currently, AI is being applied in many areas of society, in its economic, social, educational, and many other components.
But normally the current applications of computer science are combinations of different specialties: programming, databases, use of interfaces, analysis techniques and algorithm design, etc.
Would it be convenient to include AI elements in each of its subjects in the computer science specialist's learning, to facilitate this cooperation/coordination between AI and the other components of practical applications?
Relevant answer
Answer
Integrating Artificial Intelligence (AI) into computer science education is a topic of great importance.
  1. Understanding AI: AI is a branch of computer science focused on creating systems that can perform tasks normally requiring human intelligence. These tasks range from understanding natural language, recognizing patterns, making decisions, and learning from experience1. AI encompasses various subfields, each with unique objectives and specializations.
  2. Types of AI: AI can be categorized into three levels based on its capabilities: Artificial Narrow Intelligence (ANI): This is the most common form of AI we interact with today. ANI is designed to perform a single task, like voice recognition or recommendations on streaming services. Artificial General Intelligence (AGI): AGI can understand, learn, adapt, and implement knowledge across a wide range of tasks at a human level. While large language models and tools such as ChatGPT have shown the ability to generalize across many tasks, as of 2023, this is still a theoretical concept. Artificial Super Intelligence (ASI): ASI refers to a future scenario where AI surpasses human intelligence in nearly all economically valuable work. However, this concept remains largely speculative.
  3. Integration of AI in Computer Science Education: Including AI elements in computer science education can have several benefits: Holistic Understanding: Students gain a holistic understanding of AI’s role in various domains, including programming, databases, and algorithm design. Interdisciplinary Skills: AI bridges the gap between computer science and other fields, such as natural language processing, computer vision, and robotics. Practical Applications: Students learn how to apply AI techniques to real-world problems, enhancing their problem-solving abilities. Industry Relevance: As AI becomes more prevalent, professionals with AI knowledge are in high demand across industries. Ethical Considerations: Teaching AI involves discussing ethical implications, bias, and responsible AI development.
  4. Curriculum Considerations: Here are some ways to incorporate AI into computer science curricula:Foundations: Introduce fundamental AI concepts, including machine learning, neural networks, and data preprocessing. Specialized Courses: Offer specialized courses on natural language processing, computer vision, and reinforcement learning. Projects and Labs: Assign projects where students build AI models or analyze real-world data. Guest Lectures: Invite industry experts to discuss AI applications and trends. Ethics and Bias: Include discussions on ethical AI development and mitigating bias.
  5. Resources for Learning AI: Online platforms like Coursera offer courses that cover essential AI skills, including machine learning, robotics, and data interpretation2. Explore beginner’s guides and resources to understand the basics of AI and automation3.
In summary, integrating AI elements into computer science education can empower students to navigate the evolving landscape of technology and contribute to practical applications across various domains.
  • asked a question related to Computer Science Education
Question
3 answers
Hi, I am an educator and an early researcher in the field of Computer Science Education and Education Technology. As part of my journey, I am seeking your valuable recommendations on the most reputable journals in this field.
I am particularly interested in journals that publish high-quality research articles focusing on topics related to computer science education and the application of emerging technologies in Education among other related topics.
Thank you for your kind attention.
Relevant answer
Answer
Here are some of the top journals on computer science education and educational technology:
  • Computer Science Education (CSE)pen_spark📷Opens in a new window📷www.researchgate.netComputer Science Education (CSE) JournalFocuses on high-quality papers with a specific focus on teaching and learning within the computing discipline. Aims to be accessible and of interest to researchers and practitioners alike. Covers learners of all ages and across both classroom and out-of-classroom learning contexts. Currently ranked in the first quartile (Q1) according to Scimago Journal & Country Rank.
  • Journal of Educational Computing Research (JECR)📷Opens in a new window📷www.researchgate.netJournal of Educational Computing Research (JECR)Publishes scholarly articles that investigate the design, development, implementation, and evaluation of computing technologies in educational settings. Covers a wide range of topics related to computer-supported learning environments, including:Instructional design Learning theories Assessment Teacher education Technology integration Equity and access
  • Computers & Education (C&E)📷Opens in a new window📷www.researchgate.netComputers & Education (C&E) JournalA leading international journal that publishes scholarly articles on the theory, design, development, implementation, and evaluation of educational technology in all its forms. Aims to bridge the gap between theory, research and practice. Covers topics including:Artificial intelligence in education Learning analytics Game-based learning Virtual reality Educational robotics Mobile learning
  • British Journal of Educational Technology (BJET)📷Opens in a new window📷bera-journals.onlinelibrary.wiley.comBritish Journal of Educational Technology (BJET)An international journal that publishes scholarly articles on the use of technology in education. Covers a wide range of topics related to the design, development, implementation, and evaluation of learning technologies. Aims to promote the effective use of technology to improve teaching and learning.
  • Journal of Computer Assisted Learning (JCAL)📷Opens in a new window📷onlinelibrary.wiley.comJournal of Computer Assisted Learning (JCAL)An international journal that publishes scholarly articles on the use of computers to support learning. Covers a wide range of topics related to the design, development, implementation, and evaluation of computer-assisted learning (CAL) applications. Aims to promote the effective use of CAL to improve teaching and learning.
  • asked a question related to Computer Science Education
Question
4 answers
The concept of formal system and/or its properties is present frequently in many practical and theoretical components of computer science methods, tools, theories, etc.
But it is frequent too, finding some non rigorous interpretations of formal. For example, in several definitions of ontology, formal is understood as something that "computer can understand".
Does the computer science specialist, BSc, need to know that concept? Are it and its properties useful for them?
Relevant answer
Answer
For me some basic knowledge of formal systems is essential for undergraduate CS students, as this is a necessary part of the scientific education.
If not, you might still learn a lot about software construction, but you wouldn't know nor understand its bedrock.
  • asked a question related to Computer Science Education
Question
22 answers
We are probably all aware by now that artificial intelligence will disrupt virtually every single industry globally. It will eliminate millions of old jobs and create millions of new ones. Memorization, multiple-choice testing, or rote work will no longer be relevant to these new jobs. Even jobs in the service sector that traditionally need the "human touch," like nursing and teaching will be affected in one way or another.
Unfortunately, the developing world will probably make attempts to adhere to "tradition" and resist change. How can we democratize technology so that students gain the data and computer literacy needed to succeed in the job market of the future despite this resistance?
Relevant answer
Answer
In addition to Rudra Tiwari perfect response, i think there is need to encourage more 'Social Integration' among the populace. The world is fast evolving and becoming a global village and there is need for everyone join the train. There is need to turn down the believe that education is a scam, technology will end cultural heritage and/or encourage crime by giving access to education(rural areas) through public enlightenment among other.
  • asked a question related to Computer Science Education
Question
9 answers
Isn't it time to bury the master class in computer engineering training without mourning but rather adapting new pedagogical models based on new technologies and especially artificial intelligence?
Relevant answer
Answer
Dear Prof. Meriyem!
I did search for YOU resources you might well consider as value-added for your work:
1) Mouza, C., Mead, H., Alkhateeb, B. et al. A Virtual Professional Development Program for Computer Science Education During COVID-19. TechTrends 66, 436–449 (2022). https://doi.org/10.1007/s11528-022-00731-y, Free access:
2) Chrystalla Mouza, Diane Codding, Lori Pollock, Investigating the impact of research-based professional development on teacher learning and classroom practice: Findings from computer science education, Computers & Education,
Volume 186, 2022, Available at:
3) Garcia, I., Pacheco, C., León, A., and Calvo-Manzano, J. A., Cadxela: An educational tool for supporting the global software engineering education at undergraduate level, Comput. Appl. Eng. Educ. 2022; 30: 708– 729. https://doi.org/10.1002/cae.22482, Available at:
4) Yildiz Durak, H., Flipped classroom model applications in computing courses: Peer assisted groups, collaborative group and individual learning, Comput. Appl. Eng. Educ. 2022; 30: 803– 820. https://doi.org/10.1002/cae.22487, Available at:
Yours sincerely, Bulcsu Szekely
  • asked a question related to Computer Science Education
Question
14 answers
What kind of scientific research dominate in the field of Computerization of conducting economic and financial analyzes of enterprises?
Please, provide your suggestions for a question, problem or research thesis in the issues: Computerization of conducting economic and financial analyzes of enterprises.
Please reply.
I invite you to the discussion
Best wishes
Relevant answer
Answer
Infrastructure and technology readiness... Arvanitis, S. (2005). Computerization, workplace organization, skilled labour and firm productivity: Evidence for the Swiss business sector. Economics of innovation and new technology, 14(4), 225-249.
  • asked a question related to Computer Science Education
Question
3 answers
I wondering if you know texts, guides or any didactical advice that can help is to teach discrete wavelet theory to undergeaduate computer scientist
Relevant answer
Hi proffesor Damian,
I've seen you have expertise in wavelets and mammography. I'm undergraduate student and I'd be thankful if you recommend me a way to enhance or detect microcalcifications (MCC) in mammograms with DWT. I'm trying with wavelet decomposition at 3 level with Db1 and hard thresholding with Donoho Threshold for subband denoising, but I don't get visually good results, this is to say, it doesn't see the MCC clearly
  • asked a question related to Computer Science Education
Question
9 answers
Hi, as part of my bachelor thesis on the design of programming languages for teaching mathematics in the 21st century, I have planned to discuss the evolution of (the) major programing languages which focus on the idea that computer programming could play an integral role in STEM education.
In order to analyze different programming languages as a framework for teaching (primarily) mathematical concepts, I am currently searching for (citable) research projects providing insights into the historical development of educational programming languages. – Are you familiar with any research on the evolution of educational programming languages?
Many thanks in advance for your contributions,
Tobias
Relevant answer
Answer
YES Tobias ... do not forget paradigms ... they can help you in your investigations.
Precisely, look at the indexes of use of programming languages (tiobe index for example) ... the evolution of educational programming languages must be particularly interested in the paradigms of these programming languages.
How to explain the rank of the C language? (procedural paradigm ..) Why python is widely used? (object paradigm). is it the object paradigm that explains the use of this language !? or quite simply, it is more used by non-computer scientists where the principles of the object paradigm and strong typing are completely ignored?
Good luck !
  • asked a question related to Computer Science Education
Question
3 answers
Robots due to cost are a limited resource for teaching but useful. They engage students and make concrete principles but it is not possible to have one robot per student for both cost and space reasons. How can I get the same benefits of robots for teaching AI through other methods?
Article Neural nets
Relevant answer
Good Answer iliasse Hassala
  • asked a question related to Computer Science Education
Question
7 answers
Currently there is a trend to apply virtual methods, ICT based, to teaching in HE . Frequently professors face the situation, when they have been teaching in face-to-face modality and want/need to do the same, but in distance education, virtual modality. Do anybody have a practical experience, or knowing about a specific methodology for Computer Science courses?
Relevant answer
Answer
Hi. I think you can use a lot of tools according to circumstances:
LMS (with password for your students) in case of official courses and for limited number;
Website (containing all course program and some quizz, with external links for technical tools and usefull softwares)+using e-mail/other ICT for continuous contact and eventual questions;
MOOC for fast courses for large public+using e-mail/other ICT for continuous contact and eventual questions;...
Good luck.
  • asked a question related to Computer Science Education
Question
9 answers
The Wikipedia says:
"To convert from a base-10 integer numeral to its base-2 (binary) equivalent, the number is divided by two, and the remainder is the least-significant bit. The (integer) result is again divided by two, its remainder is the next least significant bit. This process repeats until the quotient becomes zero."
But my students ask, "Why? What do we actually do when repeatedly dividing by two? Why is the first bit LSB?"
I have an explanation but it is interesting for me to see your opinion.
Relevant answer
Answer
  • asked a question related to Computer Science Education
Question
6 answers
I wish to direct my research in Computer Science Education erea, now i would like to have more support to be focused on a specific target.
Relevant answer
Answer
Information and Cibersecurity are key areas that were not part of the traditional CS degree but most schools are now incorporating into the curriculum.
If you do research into CS education, you are not just choosing subject or topic, you should explore what is the best way to teach that topic, look for evidence of learning, or for problems that need better instruction or approach.
A big chunk of CS education research looks at how to help novice programmer to get the skills, or for evidence of learning in other key areas such as software engineering, as well as the need for soft skills, motivation, peer work. The use of MOOCs, feedback, intelligent tutors are other popular topics
  • asked a question related to Computer Science Education
Question
18 answers
Among the engineering and science female student enrollments in my school in the last 5 years, the highest number in most of those years happened to be in computer science. Am interested in investigating the reasons for such interest in CS. I will appreciate contributions from researchers having any information on this.
Relevant answer
Answer
  • asked a question related to Computer Science Education
Question
4 answers
In my experience logic is not taught at the appropriate age, if at all.  At best it is mostly taught in an ad hoc manner.  Given that an elementary classical education (Trivium) is comprised of grammar, logic and rhetoric.  Grammar and rhetoric (writing, and to a lesser degree verbal presentation) are taught almost as soon as a child enters school and continue throughout school.  In my experience, logic, as a subject discipline, is not widely taught from an early age.  I feel this hinders mental development because students are taught reading, writing, and even argumentation without the benefit of logic which helps one sort through the noise like a mental antivirus.  I'd like to get other's thoughts on this.  -- Dr. Sikorski   
Relevant answer
Answer
Dear Jerry,
If I understood it well, you are in favor of teaching deductive, inductive,and abdutive  logic to children once they enter primary school. You continue and say that grammar and rhetoric (writing, and to a lesser degree verbal presentation) are taught almost as soon as a child enters school and continue throughout school. I agree with you that  grammar, writting, and to a lesser extent verbal presentation can be taught once children enter elementary or primary school. As for rethoric, I have some doubts that that can be the case. Note that rhetoric often appeals to idiomatic language, that is, a language that uses, say, style's figures, such as metaphors, hyperboles, metonymy, and the like. As a developmental psychologist I never saw a 6-year-old child to spontaneously use, in his/her spoken or written language,  metaphors (e,g., my father is in the spring of his life)  or hyperboles (e.g., my father was smoking a thinker cigarette).
Before addressing the issue at hand, that logic is not taught to children from an early age and this should be the case, let me clarify the differences among deduction, induction, and abduction,
Deduction or deductive reasoning allows us to derive b from a only where b is a formal consequence of a. In other words, deduction derives the consequences of the assumed premises. Given the truth of the assumptions or premises, a valid deduction guarantees the truth of the conclusion. For example, if p (John is at school) then q (Mary is also at school); p is the case (John is at school). Hence, q follows necessarily (Mary is necessarily at school). As you certainly know this is the logical argument known as Modus Pollens. Deductive reasoning is also at stake in Modus Tollens: Not is the case (Mary is not at school).  Hence, not p  has to be is also the case (John is not at school either). Correct hypothetical-deductive reasoning is also necessary to solve Denial of Antecedent  problems:  Not p Is the case (John is not at school). Hence, nothing can be concluded about q (it is not possible to draw any conclusion about Mary being or not being at school).  Correct hypothetical-deductive reasoning is also necessary to solve Affirmation of Consequent problems: q is the case (Mary is at school). Hence, nothing can be concluded about p (it is not possible to draw any conclusion about John being or not being at school).
Induction or inductive reasoning allows us to infer b from a, where b does not follow necessarily from a. A might give us very good reasons to accept b, but it does not ensure b. For example, if all swans that we have observed so far are white, we may induce that the possibility that all swans are white is reasonable. We have good reasons to believe the conclusion from the premise, but the truth of the conclusion is not guaranteed. Indeed, it turns out that some swans are black. Induction lies at the heart of many experimental studies.
Abductive reasoning or abduction is a form of logical inference which starts with an observation, and then seeks to find the simplest and most likely explanation. In abductive reasoning, unlike in deductive reasoning, the premises do not guarantee the conclusion. More precisely, abduction or abductive reasoning allows us to infer as an explanation of b. As a result of this inference, abduction allows the precondition a to be abduced from the consequence b. Deductive reasoning and abductive reasoning thus differ in the direction in which a rule like "a entails b” is used for inference. As such, abduction is formally equivalent to the logical fallacy of Affirming the Consequent because of multiple possible explanations for b. What follows is an example of an incorrect solution for affirmation of consequent problems : “q is the case ( Mary is at school), then p is also the case (John is also the case, which is an incorrect conclusion). Consider now the following example of abductive reasoning In a billiard game, after glancing and seeing the eight (or black) ball moving towards us, we may abduce that the cue ball struck the eight ball. The strike of the cue ball would account for the movement of the eight ball. It serves as a hypothesis that explains our observation. Given the many possible explanations for the movement of the eight ball, our abduction does not leave us certain that the cue ball in fact struck the eight ball, but our abduction, still useful, can serve to orient us in our surroundings. Despite many possible explanations for any physical process that we observe, we tend to abduce a single explanation (or a few explanations) for this process in the expectation that we can better orient ourselves in our surroundings and disregard some possibilities.
There is accumulated  evidence that shows that 5 to 6-year-olds are already capable of solving Modus Ponens problems and that 8 to 9 year-olds are already capable of solving Modus Tollens problems. However, the literature on the four logical arguments also shows that such solutions are based on what is called a matching bias procedure, not on correct hypothetical-deductive reasoning. In other words, in if p then q statements, children tend to say, for example, that if John is at school, Mary is also at school; if Mary is not at school, John is not at school either; If Mary is at school, John is also at school; and if John is not at school, Mary is not at school either.There is also accumulated evidence that shows that even adults often fail while solving Denial of Antecedent problems as well as Affirmation of Consequent problems.
There is also evidence that shows that only formal thinkers in Piagetian terms are  capable of designing an experimental study or research.
All these considerations show that it does not make much sense to teach inductive, deductive, and abductive logic to children once they enter elementary school. Unless, that is, we take rote learning for true understanding.
I hope I has got your point and that this is of some help for you.
Best regards.
  • asked a question related to Computer Science Education
Question
4 answers
This question might seem personal and of course, it is, but many of my friends are facing this problem.
I am a sophomore student and I want to do research in the field of electrical and electronic engineering. I am not quite sure about the specific field but I am finding interest in power electronics, embedded circuit and integrated circuits. But I want to know why should I be doing higher studies and research in these fields? Can somebody please tell me the future aspects of these branches? It would be very helpful for us.
Thank you in advance.
Relevant answer
Answer
It is extremely pleasant to see that students now have started becoming concerned about what exactly their interest in EE is ! There are two questions in your message:
i) Why should one go for higher studies/research in his/her area of interest? Advancement in Technology is a never-ending process particularly from applications point of view. So, we see a rapid change in the way how technology is making our life easier. All this fruits are as a result of envisaging and realizing novel solutions. So, to summarize:
Higher education -> (should lead to) Enhancing research expertise -> (which should ultimately map to) -> Using Technology for human welfare
ii) Future aspects of these (mentioned) branches?                                                  IMHO, future of ANY (and EVERY) branch is bright iff we have genuine interest in that particular branch. Why? Because, if I have original interest in a particular domain, I would be able to think beyond constraints. The more interest I have in an area, the broader the horizon is. Just my thoughts.
  • asked a question related to Computer Science Education
Question
2 answers
if possible please include the conceptual framework and questionnaires
Relevant answer
Answer
Hi Marife,
You can see this video for more details
Regards,
Sameh Mtibaa
  • asked a question related to Computer Science Education
Question
13 answers
Is there any validated instrument? I'm specially interested on initial programming but until now I only found instruments for advanced programming.
Thank you
Relevant answer
Answer
I taught beginning, intermediate and advanced programming for several years and one flaw that I have seen during this time is trying to isolate learning by modules. While module assessment is useful for learning, programming progresses in an incremental fashion. My approach was to have the evaluations divided into module(had to do it because of departmental requisites), module comprehension on top of previous material and problem solving and troubleshooting sections. At the end of each course (even introduction to programming) the students needed to hand in a project of complexity commensurate to the course level.
I have found from working in the industry that graduates who come seeking work based on module based programming learning to come with huge deficiencies in understanding problem solving. They know the syntax but do not know how to solve problems.
  • asked a question related to Computer Science Education
Question
4 answers
I developed a "learning object" (basically an interactive applet with additional pedagogic components) for the Little Man Computer. In the ten years since, it has probably been used by more than a million people (largely due to its specification as a recommended resource for an A-level course in the UK). As such, it's probably the single most impactful contribution I've made and yet it counts zero for my academic career.
Any ideas?
Relevant answer
Answer
create certificate notorius personalities comisión of high schools and posgrate and stablisment
  • asked a question related to Computer Science Education
Question
8 answers
We are trying to reduce the amount of assessment to make everyone's life easier. In my module "G54SIM: Simulation for Decision Support" which I teach in the School of Computer Science we currently have a shared assessment model: 40% coursework and 60% exam. You can find examples of these assessments on the module website.
I am now in the process of planning the assessment for the next semester. But I am not sure how I should design the assessment. I need to be sure that I am assessing the student's abilities and not the ability of other students ;-). I need to make sure that I reduce the amount of overall assessment and don't increase the amount of coursework assessment too much. Also I motivate the students during labs (we have 10 two hour labs) to work in small groups as conceptual problems can be solved much quicker this way and students learn interacting with clients and expressing their thoughts.
I am now thinking of having a group coursework (25%) early in the semester and an individual coursework (75%) late in the semester. Part of the individual coursework assessment would be a 10 minute oral exam to ensure students did the work themselves. I was told that telling the students in advance that they will be orally examined would prevent plagiarism.
The big question is: Am I reducing the assessment (amount of work for students and lecturers) in this way or am I just changing the format of assessment? What do you think?
Can you please share your experience of coursework only assessment in computer science or related fields?
Can you point out literature that discusses this topic?
Relevant answer
Answer
@ Stefan: Thanks for reminding me about this discussion stream :). The conference is a bit far away for me but I have now written up my experience in form of a "Working Paper" which is available here:
  • asked a question related to Computer Science Education
Question
16 answers
Retention;
Retention Rate;
Mathematics Education;
Computer Science education;
Tutorial Services;
Relevant answer
Answer
 Computer Science, in my view, is an area that demands sound exposure to mathematics. However, with simulations and open source tools there is scope for pursuing computer science education to certain extent ( I am afraid not fully) with little exposure to mathematics.  
  • asked a question related to Computer Science Education
Question
4 answers
I want to organize an "Hour of Code" event next week in my school for an hour.  I want to determine effectiveness of this event. Do you have any idea to determine the effectiveness of this very short event. Thanks your response...
Relevant answer
Answer
@Mehmet:
If the programming language you use is Scratch (https://scratch.mit.edu/hoc/) you could analyze the projects developed by the students with Dr. Scratch (http://drscratch.org/), a static code analyzer for Scratch projects that assigns a computational thinking score.
Good luck with your HoC activity. Best,
Jesús.
  • asked a question related to Computer Science Education
Question
11 answers
Possibilities include IBM Bluemix, Google Cloud Platform, Azure, Amazon etc. Have you any experience using these? In particular for A. spinning up VMs that students have been working on and B. Easily creating web service components for mobile apps (Android). Have you participated in Academic Initiatives for Cloud services?
(My cohort is studying online/by distance towards a BSc. in IT.)
Relevant answer
Answer
Eamon, it depends on how much management you want to place in the hands of the students, and which technology stack you are having students program with.
For example, with pure AWS/EC2 students can manage the entire process of configuring, packaging, deploying and managing VMs. The benefit here is that the VM they deploy can be running any stack they choose; the drawback is that there is a lot to configure and manage before they have a running app/service on the cloud.
In contrast, something like Cloud9 w/ Azure, or Heroku, makes deploying VMs a non-issue. The focus instead is on the app being built, and students use automated tooling to package and deploy their apps to the cloud. The benefit here is that students get to focus on the application, rather than the details of VM management; whether that is a drawback depends on you and the students.
With undergraduates, I encourage the use of the Ruby stack to build apps and services (with Sinatra and Rails) because of the rich framework API. I then have them deploy to Heroku, which I personally feel is fantastic, and students get lots of satisfaction.
You can let the advanced students use whatever cloud vendor and technology stack they want. (eg. encourage them to try Docker).
Also, I recommend Fox, A., & Patterson, D. (2012). Engineering Long Lasting Software, which was also available as an online course a while ago, maybe it still is.
Note: Other answers like Dropbox and Moodle, unfortunately, indicate these posters have no idea what you are asking. Or, maybe I don't.
  • asked a question related to Computer Science Education
Question
8 answers
Mathematics as conceived and taught, especially in disciplines considered basic, considers concepts or dogmas that lead to problem solving in a deterministic way. That is, the solutions are always exact and without restriction even when considering some form of prediction given by a mathematical model. Thus, in the teaching of mathematics, the goal is always to find the exact solution of the problem, which is achieved by the methods from classical logic. This process of mathematics teaching and learning has been used in all programs known throughout our life. Mathematics as a tool to analyze ill-defined or inaccurate situations restricted to stochastic methods invariably lack of sample data and statistics taught in schools has aimed mostly descriptive processes.
In real life, however, there are many situations in which either do not have a sample database or the data are quite inaccurate or incomplete and there is the need to make decisions based on subjective or poorly defined concepts, such as , large, low, strong, beautiful, very etc. In such cases the mathematical deterministic or stochastic processes do not allow a solution. However, ill-defined problems are often "resolved" intuitively.
The fuzzy logic works with subjectivity, and to quantify the uncertainties to solve real problems that do not have exact solution. Mathematics from the fuzzy logic is relatively simple and well adaptable to real situations.
Relevant answer
Answer
An example that can be usefull is here:
Maybe you can teach a advanced topic in set theory.
Regards, Everthon Oliveira
  • asked a question related to Computer Science Education
Question
6 answers
We are trying to decide descriptors to evaluate the learning of software programming in Primary School. 
Relevant answer
Answer
Elena, first I think you must define what exactly you mean by evaluating the learning of software programming. In Primary School, as in other levels of school, you cannot base a curriculum solely on software. How would software learning fit into the program. For example, there are some excellent programs which help students to learn ABCs, to learn numbers, shapes, etc., through practice. Content subjects are really not appropriate until 4th grade (student 9-10 years old), because this learning requires sound reading and numerary ability for readiness.
  • asked a question related to Computer Science Education
Question
20 answers
We are looking for detecting the learner's motivational level in a computer-based educational environments.
So we need at first a motivational model? Searching in some work, there are no explicit complete model to implement, only some pieces .
Relevant answer
Answer
Thanks for your interest, but gamification is not a motivational model.
It is an implementation (application) of method that attract in some manner USERS (someone).
We work on, measuring student's motivation in our Universities, so we need at least a theoretical framework as starting point.
  • asked a question related to Computer Science Education
Question
6 answers
if i work with quantitative method..the output should model? if mix method.. the framework is suitable for the output, is that right?
Relevant answer
Answer
although it should ideally be "research driven", there are alternatives...for example, if you have large data sets.that can be "mined" for the content they have hidden within them (e.g., by using cluster analysis or other data mining techniques)...obviously, it's not that simple, but they are both places to begin your search...good luck... 
  • asked a question related to Computer Science Education
Question
60 answers
What motivates you to continue with scientific research? Is it money, reputation, competition, your institution rules, your wish to search for facts, that you want to serve the humanity, because it's your job, or for other reasons? For the universities in third world countries how can we motivate scientific research in your opinion?
Relevant answer
Answer
As mentioned only motivated persons can produce and published scientific research in the academic environment. It is a hard job to produce regularly novelty, with enough contribution for the scientific community, impact in the society or industry, and present it in a way that is interesting for the other researchers and for the publishers.
In my opinion, who is really motivated by money usually stay far away of the universities as they do not pay (also cannot) the hours of work you need to achieve (and I underline again here) high levels of novelty, contribution significance and interesting work.
The universities give the scientific environment, the scientific nets, the equipments (labs), the assistants, the computers and software, libraries, inside culture and knowledge, and so on. This is very expensive to build and keeping it along generations as well as maintaining a permanent improvement, beside the serious teaching contribution for which is possible to a university to stay alive within reasonable costs.
I know very few about the universities in third world. Anyway, would recommend to check the payments (are they receiving a dignified wage, i.e. a full-time job must allow to keep a family with kids at university) , to check the number of hours of teaching duties (a very good university lesson is also a hard job, which require preparation, adaptation and a lot of energy which must be balanced between research and teaching) , to check the working conditions given at university, check if they have freedom to study the problems they want or they consider the most important (one must believe in the importance of the work being doing), check the mentioned tolerance to failures, and to check for the access given to the international scientific community as well as to the society.
Universities should invest some of their budget in inviting senior recognized scientists to stay for some periods, to evaluate the environment , transmit experience and their way of working in the field. Young talented future candidates will enrich a lot contacting recognized scientists that are interested in working with these junior fellows.
Of course, with globalization many of sharing opportunities are being closed by the extreme competition and commercialization. Many available knowledge where in the past easily passed from university to university, but not nowadays.
Also, removing responsibility of seniors on preparing future generations to replace them as a natural event when they retire is doing damage. Of course, retirement income should also be a dignified.
Finally, this express only an opinion at this moment which can be changed with discussion and reflection, but hope contribute for the discussion in this very complex subject.
  • asked a question related to Computer Science Education
Question
7 answers
Micheal Staton said that "Stack Overflow is the new Computer Science department, where people go to learn together"
If we replace "Computer Science" with the more practical "Computer Programming", what is your opinion on this quote?
On one side, The Stack Overflow dataset has great potential for education, being the largest dataset of solved exercises, with a relatively good content and with a strong problem-based approach.
However, Stack Overflow, as it is, has clear limitations from an educational point of view: lack of structure, content too fragmented, potential problem of reliability of the content and there is little to support a learner (indeed, there is a lot more to support a professional). Stack Overflow has been criticized often for only encouraging "cut&paste" habits and quick answers.
My question is: Can we turn Stack Overflow ( and similar CoP) into a tool for teaching Computer Programming?
Maybe yes, maybe yes as a supplemental material for quizzes or exercises, or maybe no.
I am developing a research project to investigate the potential of such online communities in a teaching&learning context.
I'll be grateful if you can help me with your opinion.
If you want to go the extra mile, I have a 5-minute survey on the topic:
If you are a lecturer use this link: http://eSurv.org/?u=COP_lecturers
If you are a student (any level): http://eSurv.org/?u=online_COP_students
Relevant answer
Answer
Well, yes. But, assuming the students have basic knowledge of computer science. Because, stackoverflow most of the times avoids discussion on knowledge and stresses more on specific problems.
I mean, your answer is most likely to be closed if you ask 'How to bubble sort in Java or python?' But, if you face some issues of efficiency, edge cases, your answer might be accepted. You have to take not of this.
I feel, it can be advanced educational tool for students.
  • asked a question related to Computer Science Education
Question
27 answers
English is an imprecise language to begin with (e.g. compared to Baltic languages with noun variations, and to French which has more verb conjugation formats), and grammar is being taught less and less rigidly in many high schools now. Can this (growing) imprecision in spoken languages affect the ability of students to handle the extreme precision required to program? Are programming languages such as Python better than programming languages such as Java better suited to introductory programming because they require less precision?
Relevant answer
Answer
Natural language can be used with amazing precision - but most of us don't, at least not most of the time. Precise thinking, however, is absolutely required when learning to program. Python vs. Java may be more about the fluidity of the experience and the burden towards minimal viable programs. Those aspects do affect the learning curve.
When it comes to the use of precision when applying natural language, we need to tread a little carefully. There are two cases that I've seen: folks that use natural language sloppily because their use of language is a reflection of their style of thinking - imprecise and logically disconnected. Learning to program in such cases is somewhere between a possible cure and impossible. But there's also a significant part of the population that is hampered by working in a language acquired relatively late and far from their mother tongue or affected by medical conditions, neither of which necessarily reflects on the sharpness of their thought processes. So, jumping to conclusions in this area is highly problematic. (I am not at all implying that this is something implied by the original question!)
To conclude, I think we need to understand what exactly it is that accelerates learning of programming and how natural language skills (or the lack thereof) relate.
  • asked a question related to Computer Science Education
Question
19 answers
Programming languages for beginners
Relevant answer
Answer
I agree with Jerold: teaching algorithms should not be confined to a particular programming language, and presenting algorithms in pseudo-code is the right thing to do.
My comment is that teaching algorithms should go in parallel with teaching data structures. Students should understand the complexity of the algorithms, which almost always depends on the underlying data structure. Most undergraduate and graduate textbooks ar not only about algorithms, but about algorithms AND data structures.
  • asked a question related to Computer Science Education
  • asked a question related to Computer Science Education
Question
3 answers
We have already disclosed the basic idea of the historically first RTL gate
It was surprising but true that the RTL NOR gate was an analog device implemented by humble resistors while “true digital” logic gates were (are) implemented by electronic switching elements – diodes (DL, DTL and TTL gates), bipolar transistors (ECL gates) and MOS transistors (NMOS, PMOS and CMOS logic gates):
Although RTL stays away from all these logic families, it is still interesting to see if there is some connection between them... some common general idea... Let’s try to find it...
Remember that in RTL we summed voltages by converting them to currents. But this circuit was sensitive to the magnitudes of the voltages and resistances; in addition, the number of inputs was limited. It seems we can sum, besides voltages and currents, why not resistances as well? Here is the implementation.
The input logic variables turn on (at logic "1") or turn off (at logical "0") equal reference resistances (conductances). They are summed by an analog summer again; their sum is converted to voltage and compared by a threshold device (voltage comparator) whose threshold is lower than one reference. So it is sufficient that only one reference is turned on and the output is set at logic state "1".
This idea is taken to the extreme in the classic DL, DTL, TTL, MOS and CMOS circuits where the reference resistances are increased up to infinity. In practice, they are implemented by diode or transistor switches operated by the logic input variables. They are connected in series to sum the switch resistances or in parallel to sum their conductances (DL, DTL and TTL use only a parallel connection).
Because the sum of the included resistances/conductances is infinite (even if only one element is connected), the comparator can have an any threshold within the supply voltage. In this situation, it is sufficient only one switch in series/parallel to be open/closed so that the total resistance/conductance becomes infinitely large, and the threshold element switches. This element can even be absent if the thresholds of the next electrically operated switches are used (MOS and CMOS logic elements exploit this idea).
Depending on the way of connection (in series/parallel), the correlation between the values of the logical input variables and the state of the switches, as well as on the presence of an inverter at the output, OR (NOR) or AND (NAND) elements can be obtained. For example, in a DTL circuit the diode switches are connected in parallel, the correlation is “logic ‘0’ – open switch” and “logic ‘1’ - closed switch ); as a result, a NAND logic gate is obtained.
As a conclusion, my extravagant idea about the essence of electronic logic gates is:
Digital logic gates (all kinds) are implemented in electronics by cascading two devices – a “summer” (a pure analog device) and a “comparator” (a mixed analog-to-digital device); the discrete (binary) Boolean logic functions OR/AND are implemented by the arithmetical summation.
Relevant answer
Logic gates can be implemented using the basic analog components, resistors, diodes, bipolar junction transistors and field effect transistors. All digital logic gates OR, AND, NAND and NOR can be implemented using switches however the behavior of these gates also can be achieved from the basic components. Logic gates can be performed using RTL, DTL, TTL, MOS and CMOS circuits.
  • asked a question related to Computer Science Education
Question
8 answers
If we teach CS to enable students to understand the world better, the connections between some phenomena of everyday life and the concepts of Computer Science that cause these phenomena are good starting points to design the lessons. A phenomenon is something that can be experienced with our senses in real life or imagenatively.
I'm interested in the ones you use and your examples that are connected to them for further research on them.
Relevant answer
Answer
I have just been to the ACE2013 (Advances in Computer Entertainment) workshop on "Tinkering in Scientific Education" and I think the ideas discussed here might be of interest to you.
  • asked a question related to Computer Science Education
Question
7 answers
I am currently developing a 14-week course for computer science undergraduate students that focuses more on the application of control systems and the design and implementation of simple controllers using microcontrollers. The ability to simulate such controllers using Matlab is thought to be essential as well. Can you recommend the core topics needed in order to develop such course? Assumptions are that students have basic knowledge on 1) computer science and engineering mathematics; 2) basics on signals and systems, and 3) basics on microcontroller system design.
Relevant answer
Answer
We had a 21 day workshop on embedded control systems at our company for a group of students who had finished 2 years of engineering. They learnt sensors, filters, PID controller tuning and did a hands on Matlab/Simulink, Labview, and aurdino boards. They enjoyed it and learnt a few things. As an exercise I had given them a sealed plant model. They had to analyze and design a controller for this.
  • asked a question related to Computer Science Education
Question
10 answers
Massive open online courses (MOOCs) are a big topic these days on university campuses. There appears to be a divide in support of MOOCs and against MOOCs. What are your thoughts about integrating MOOCs into your institution?
Relevant answer
Answer
There's one piece of data from my university that I haven't seen in any discussion about MOOC's yet.
Our university has one course with about 11 sections for first-year students. The order that the sections fill is 1) Monday-Friday sections, 2) Saturday and Sunday sections, 3) the on-line section. The on-line section is even less popular that the weekend sections. Students have voted with their feet -- they want a traditional learning environment...at least for first year.
For upper level courses (after students have developed university-level learning skills?), on-line courses have more popularity. Thus, I see MOOCs adding value to the mix of university offerings, but that there is still value to the traditional campus environment -- especially for younger/newer students.
  • asked a question related to Computer Science Education
Question
18 answers
I temporarily leave the “kingdom” of my favorite analog electronics and move to the neighboring field of digital electronics because this term I will conduct a series of labs in the laboratory on digital circuits. I do it since I want to be helpful to my students (both useful and fun) secretly hoping they will join my web initiative in return. Of course, I will not waste their and your time with banal, trite and boring book explanations; instead I will “provoke” readers with unusual, extraordinary and sometimes weird viewpoints with only the purpose to make them not only know but think and understand digital circuits...
For quite a long time I have discovered that there is a close connection between the input parts of the transistor-transistor logic (TTL), diode-transistor logic (DTL) and diode logic (DL). Thus TTL includes DTL... and DTL includes DL... or DL have evolved to DTL... and then DTL evolved to TTL... So, it seems to understand what TTL is, we have first to understand what DL is... to unveil the mystery about it. I did it yesterday together with my students by reinventing the circuit to ask all these questions:
"Why were the diodes back to front? Why was the resistor connected to +V instead to the ground? Why was there no input current when the input voltage was high? And why was there input current when the input voltage was low? But why did the current go out of the diodes and went in the input source? Why was it impossible to make inverting diode gate? Why was AND gate supplied by an additional voltage source while OR gate had no such a source?.
In logic gates, logic functions are performed by parallel (OR function) or series (AND function) connected switches that are electrically controlled by the input logical variables. Diode-based logic gates (DL, DTL and TTL) are implemented by diode switches (when forward biased, a diode is “closed”; when backward biased, it is “open”). The paradox of the diode logic is that diode AND logic gates should be implemented by series connected diode switches (like an NMOS AND gate implemented by series connected transistor switches)... but still it is implemented by parallel connected switches. Why? Here is my explanation.
In contrast to transistors, diodes are odd two-terminal switching elements, in which the input and output are not separated; they are the same. So, series connected diode switches cannot be driven by grounded input voltage sources. To solve this problem, diode AND gates may be constructed in the same manner as OR diode gates - by parallel connected diode switches. But to obtain AND instead of OR function, according to De Morgan's laws, the input (X) and output (Y) logical variables should be inverted:
Y = NOT (NOT (X1) OR NOT (X2)) = NOT (NOT (X1 AND X2)) = X1 AND X2
So, the diode AND logic gate is a modified diode OR logic gate: the diode AND gate is actually a diode OR gate with inverted inputs and output. Let’s see how it is implemented in the ubiquitous circuit (see the attachment).
To realize the clever De Morgan's idea, the diodes are reverse connected and forward biased by an additional voltage source +V (the power supply 2) through the “pull-up” resistor R1. The input voltage sources are connected in opposite direction to the supplying voltage source (traveling along the loop +V - R1 - D - Vin). To invert the output voltage and to get a grounded output, the complementary voltage drop (+V - VR1) between the output and ground is taken as an output instead the floating voltage drop VR1 across the resistor.
Input logical “1”: When all the input voltages are high, they "neutralize" the biasing supply voltage +V. The voltage drops across the diodes are zero and these diode switches are “open”. The output voltage is high (output logical 1) since no current flows through the resistor and there is no voltage drop across it. So, the behavior of the diode switches is reversed - whereas in diode OR logic gates diodes act as normally open switches, in diode AND logic gates diodes act as normally closed switches.
Input logical “0”: If the voltage of some input voltage source is low, the power supply passes current through the resistor, diode and the input source. The diode is forward biased (the diode switch is “closed”) and the output voltage drop across the diode is low (output logical 0). The rest of diodes connected to high input voltages (input logical “1”s) are backward biased and their input sources are disconnected from the output 1.
I exposed my speculations, two years ago, in the Wikipedia page about diode logic (under the name Circuit dreamer):
Relevant answer
Answer
I forgot to say that the section “Transistor-Transistor Logic (TTL)” is from 4th edition of Sedra/Smith’s “Microelectronic Circuits” (see also attached file):
Adel S. Sedra and Kenneth C. Smith, Microelectronic Circuits, 4th ed., Oxford University Press, 1998.
This section is not included in newer editions of this textbook:
Adel S. Sedra, Kenneth C. Smith, Microelectronic Circuits, Fifth Edition, Oxford University Press, 2003.
Adel S. Sedra and Kenneth C. Smith, Microelectronic Circuits, 6th edition, Oxford University Press, 2009.
  • asked a question related to Computer Science Education
Question
11 answers
I'm interested in cataloging all of them. I have a particular interest for ontologies in computer science, but any other topic is also relevant.
This is my list so far:
Dining Philosophers
Chinese room
Travelling salesman problem
Turing machine
Eight queens puzzle
Two Generals' Problem
The Muddy Children Puzzle
Knapsack problem
Yale shooting problem
Tower of Hanoi
Halting problem
thanks for all contributions :D
Relevant answer
Answer
There are several popular problems for backtracking, like Eight Queen, etc.
  • asked a question related to Computer Science Education
Question
71 answers
While outside the academic sector, a great majority of consultants and programmers cherish the notion of "productivity" through higher levels of abstraction. Should "productivity" be measured by the time saved for the programmer or the optimized code underneath? While they are not necessarily exclusive they usually are.
Should this be the state of affairs?
Comments and criticism welcomed.
Relevant answer
Answer
Does someone need to know how an automobile engine works to drive a car? No. Does a mechanic have to have a degree in mechanical engineering to repair a car? Again, no. Computer systems, like cars (and other technologies), have layers of abstraction that are relevant to a particular user -- and even the same user may have relationships across multiple perspectives (e.g., an automotive designer who likes to change the oil of his car and then drive to the store). The vast majority of computer users have no idea how it works -- and they are quite successful. The question here may be better focused on the levels of abstraction that drives hardware and software construction.
  • asked a question related to Computer Science Education
Question
7 answers
Software
Relevant answer
Answer
You may learn those in the rental basic like cloud backbone... :)
  • asked a question related to Computer Science Education
Question
7 answers
What are the different cost estimation techniques used for approximating cost or efforts for developing web applications.
Relevant answer
Answer
Very good question, Mudasir. I happened to come over a European technical report with a questionnaire relating the developmental complexity of a Web project. From resulting metrics they could tell you, whether you should use a 'long' or 'short' lifecycle, another term for money spent, IIRC. The whole process was called e-minder. Maybe you can find this online, before I spot it in my papers.
  • asked a question related to Computer Science Education
Question
9 answers
I would like to know what books are considered, from the personal experience point of view, more suitable for teaching Theorem Proving, when teaching this topic for Computer Science students. Usually it is a very complicated issue for students, specificaly those studing in first or second courses.
Relevant answer
Answer
The Art of Proof :Basic Training for Deeper Mathematics by Mathias Beck and Ross Geoghegan
  • asked a question related to Computer Science Education
Question
17 answers
From year to year the elementary knowledge of programming for first-year students and the enrollment into the computer science and / or information technology, is becoming less and less. Also abandonment (drop-out) of these studies is growing.
I'm interested in your experience with university drop-out of CS / IT studies, if any?
Relevant answer
Answer
I agree with Milan Tair who provided the correct answer for this question. Younger students have grown up in a world where results from their efforts are nearly instantaneous (like video games) and does not require weeks or months to find the solution to a problem. Students are living in an environment that does not mention or acknowledge the fact that patience, and discipline, along with subject-area knowledge is required for CS/IT, engineering, mathematics, and science endeavors. Some people obtain great satisfaction from solving a problem after many months or years of working on it, but most people become frustrated easily and give up, seeing no use to continuing work until a solution is reached. To those people, the problem cannot be solved quickly and it is a 'waste of time' to continue (they get bored easily).
Also, critical thinking skills are required (which goes beyond rote memorization), which discourages most people from even attempting these subject areas. One thing I have learned is that every significant problem (especially programming-related problems) I have every solved in my career has taken me anywhere from 1 to 6 weeks of concentrated effort to complete, but I see this as an enjoyable challenge and a test of my knowledge, skills, and abilities, where others do not understand why I enjoy the challenge. We need to find and encourage those students who want to develop the patience and skill required to solve computer science problems.
  • asked a question related to Computer Science Education
Question
7 answers
When I was kid, I played a lot of video games, and was always curious on how they worked. Eventually, I started making my own video games in QBasic. Later, I learned C++ so that I could make more advanced games. I loved it so much, and over the years, I became hungry to learn more about mathematics, programming, and physics within the context of the games I was making.
I believe that game development can be a fun way to get kids interested in science and technology. And today, there seem to be a lot of options available for kids. But what are the best ways to get young kids involved in it all? Are there any good frameworks, schools, resources, etc that are appropriate for kids interested in exploring and experimenting with game development?
Relevant answer
Answer
I performed few workshops for kids aged 10-15 with GameMaker. Within one hour when properly guided they are able to create one room game, simple but working, and meantime learn concepts like sprite, object, collision, event, action, etc...
I also met some of them that were continuing work at home, with quite interesting results.
You will find more at: http://yoyogames.com/education
I do not know Scratch, but in last wourkshops group I had some kids talking they were learning it. And still they were amazed by results coming from GameMaker.
  • asked a question related to Computer Science Education
Question
247 answers
Back in 1982, Japan's Ministry of International Trade and Industry, begun the project “The Fifth Generation Computer Systems project”. The idea was to find the new architecture of computer, i.e. NON Von Neumann architecture, with Sequential Inference Machine Programming Operating System (SIMPOS) operating system is released. SIMPOS is programmed in Kernel Language 0 (KL0), a concurrent Prolog-variant with object oriented extensions. Similar project was in US, the results were various Lisp machine companies and of course, Thinking Machines.
I’m interested what happened with Japanese “Prolog machine”? Does anyone know something about that?
Relevant answer
Answer
Wilfried, is my water the same as your water?
Of course our minds are different. I'd like to define understanding
(here: of a word) as activation of the appropriate concepts.
There is also a measure for evaluating how well this is done.
Attached are two semantic maps. The left one is my notion
of water, the right one that of another person (might also be
in the mind of a computer). I expect that when I say "water" the
other person activates "swimming", "ocean", "drink" and so on.
How strongly other words (symbols, concepts) are affected
depends on the semantic distance of the word to the center.
The other person, upon hearing "water", will also activate
nodes in his semantic network. Every understanding of
a word is paired with a unique activation pattern, activations
of related words. How well these activation patterns match
among two persons is a measure for how well the communication
partners understand each other
Regards,
Joachim
  • asked a question related to Computer Science Education
Question
8 answers
What are the best techniques to get the balance right when you are teaching a first year class that is mainly computing students, but a minority of arts-based students and keep all in engaged (as far as possible)?
Relevant answer
Answer
I work with STEM to STEAM. Just completed two projects with undergraduate students (including math and science majors) as well as students in the humanities. We did small robotic/kinesthetic sculptures for one project, looking at the physics/motion and links between motion and aesthetics. The next project was animation where students chose which form of animation to use, incorporating a range of animation platforms, low and high tech. This summer I'm going to learn arduino and start introducing basic programming into my visual arts courses.
  • asked a question related to Computer Science Education
Question
24 answers
I teach several computer science courses that involve programming in C, Assembly, even Verilog and other languages. The courses are about programming, operating systrems, digital design, wireless sensor networks, and so on. Some I grade by hand, some using Makefiles, shell scripts or other tools. I was wondering what are the tools that you use for automated grading, that may include running programms in a sandbox and checking the output with usin regular expressions, or even for automated advising on coding practices, for, say, a class of 10 to 200 or more.
Relevant answer
Answer
For Java, Python, C++, and a few other languages, we use Web-CAT (http://web-cat.org/), which is one of the most widely used open-source tools specifically for program grading. For C, assembly, and other low-level programming, it doesn't offer plug-ins so you can't use it there without doing some work.
  • asked a question related to Computer Science Education
Question
2 answers
If the project is going to be successful, it's another milestone for the uplift of technological sciences. I'm thinking of doing the same project in college.
Relevant answer
Answer
NO current flows into human body from RedTacton devices. RedTacton uses
the Electric field that occurs naturally on the surface of the human body for
Communication. Transmitter and receiver electrodes are covered with an Insulating
films. RedTacton is in conformity to the "Radiofrequency-exposure Protection”
standard (RCR STD-38)" issued by the Association of Radio Industries and
Businesses...
  • asked a question related to Computer Science Education
Question
7 answers
As a teaching assistant, I'm involved in creating exercises for a master level security course. My goal is to teach practical aspects of security. As we are currently discussing software security, I think it is interesting to go somewhat into software verification. In my studies, I've personally had some interesting encounters with several static code verifiers (ESC/Java for Java, PREfast for C). However, I'm wondering if there are more actively developed tools available by now. I've found Microsoft's VCC [2], and a few others, like Mozilla's Pork, but neither seem particularly focused on security. Does anyone have interesting projects to share?
[2] http://vcc.codeplex.com/ (reference updated as per Ernie Cohen's answer)
Relevant answer
Answer
Hi Rens,
VCC is focused on software correctness, one aspect of which is security. Most practical security problems are really problems of program correctness (buffer overruns being the best known example); if you don't prove things like memory and concurrency safety, anything else you "prove" about the system is moot. Moreover, one typical way to prove security of a program is to prove that it correctly implements a deterministic specification.
There has also been some security-specific verification work with VCC. In particular, there has been work on verifying software that makes essential use of cryptography, as well as some work on proving information flow for C code. You can contact me out-of-band if you want more details.
cheers,
ernie
PS the proper reference for VCC is vcc.codeplex.com.
  • asked a question related to Computer Science Education
Question
23 answers
I want to know about the status of cost estimation techniques used in software cost estimation at present.
What is the scope of research in this area?
Relevant answer
Answer
I guess this is a general all time hot topic. well known technique such as LOC, Function Point, and COCOMO models all have been well established. I think there is lot of research to be done on experience based metrics where domain knowledge and skills are required. How do we develop a tool? Also, I recently seen an article exploring FP for new technology projects such as cloud and SOA. This is an interesting article. I think we should form a small working group and we could contact Berry Boehm who is the pioneer in cost estimation methods. FP links http://www.servicetechmag.com/I68/1112-4