SIGCSE China Symposium at ACM TURC 2018

follow 3 pngThe ACM SIGCSE China Chapter is holding a symposium at the ACM Turing Celebration Conference (TURC) in Shanghai on May 19-20, 2018. I was at this conference last year and enjoyed it immensely. More information on the China SIGCSE chapter can be found here. The TURC page is here, and the SIGCSE Symposium link (still under construction) is here.  Until the site is up, the CFP below (pdf here: SIGCSE@TURC2018) has the detail. Abstracts due Dec 22, full papers due Dec 29.

SIGCSE@TURC2018

Girls ‘just as good as boys’ at computer science work

follow 3 pngThis week the Irish Independent published an article reporting on some work by Maynooth University colleagues Keith Quille, Susan Bergin, and Natalie Culligan, focussing on gender aspects of performance in computer science, and how computer science as an academic subject is experienced. The paper was presented at the 2017 ACM Conference on Innovation and Technology in Computer Science Education in Bologna, Italy, and is available in the ACM Digital Library.

From their abstract:

This paper describes a multivariate, multi-institutional study conducted in the academic year 2015-16. Six hundred and ninety-three students participated from 11 institutions, (ten institutions in Ireland and one in Denmark). The goal of the study was to compare the profile of male and female students enrolled on introductory programming modules (CS1), to determine if any significant differences could be identified by gender. The gender split was 79:21, male to female respectively. The study took place early in the CS1 module with three instruments used to capture data: a background survey, a survey on programming self-efficacy, comfort and anxiety, and a short programming test. At the end of the module, the overall result for each participant was gathered. Of importance, the study was conducted across multiple levels of Computer Science education, from Level 5 Certificate up to and including Honors Bachelor Degree and Higher Diploma, (which are based on the Irish National Framework of Qualifications NFQ). This paper describes the approach taken and the detailed analysis performed. Several significant differences between male and female students were identified early in CS1, some of which did not hold true at the end of the module. A gender comparison between the two participating countries and the different institution types was also performed and discussed. The findings could be used to positively influence teaching practice and to the development of gender focused retention and recruitment strategies.

It’s great to see work like this getting the spotlight. In the Irish context it is particularly timely, as Ireland is rolling out a computer science curriculum nationwide next September which I have written about here, here, here, here, and here. More details on that are available there, there, there, there and there.

As this is a particularly ‘Irish’ post, I took the liberty of setting the featured image to one of Kylemore Abbey in beautiful Connemara. However, this theme doesn’t show featured images on individual blog views. So if you can’t see it now, you’ll have to go to the main page, or click here to see it. Bummer.

 

Irish Computer Science Leaving Certificate Curriculum Consultation Update

Last Tuesday I attended a consultation session for the Leaving Certificate Computer Science Curriculum. This is Ireland’s shot at putting CS on the pre-university curriculum, specifically the Irish Senior Cycle – which leads right up to where secondary school and university meet. I am particularly interested in this as I teach, research, and am pretty much obsessed with CS1 – the first programming course that CS majors take at university. I am also teaching this year on a new programme at my university, University College Dublin (with support from Microsoft), that is one of the first (if not the first) teacher training programmes specifically for this new curriculum.

The event was hosted by the National Council for Curriculum and Assessment, and was addressed by Irish Minister for Education and Skills, Richard Bruton. It was an engaging and lively day of discussion and it was really good to see so many different stakeholders in attendance. I was in one of I believe 6 (or more) focus groups, and we had university professors, industry leaders (including Apple and Microsoft), current (and former) school teachers, and a member of the curriculum development team in the room, (and I am missing a few people here).

There is another consultation event on September 16 at Maynooth University, hosted by the Computers in Education Society Ireland (CESI). The consultation officially closes on September 22, and a final draft of the curriculum is expected soon thereafter.

Irish Leaving Certificate in Computer Science: Draft Specification

follow 3 pngAny regular readers of this blog know that Computer Science has been mooted to become a Leaving Certificate subject in Ireland for some time, with any details speculated upon and often vague, and/or changing. However, last week things moved one step closer towards a concrete reality with the unveiling of the draft specification for the Computer Science Leaving Certificate by the National Council for Curriculum and Assessment (NCCA).

Computer Science is set to be added to the list of leaving certificate choices for fifth-year students from September 2018, with the first exams being held in 2020. The draft contains details on the syllabus and assessment, with 30% of the marks in the final exams going towards a computing project done during school, and the other 70% taking place in the traditional June assessment. However, for the first time, the two and a half hour June assessment will be computer-based instead of the traditional written paper or combination written/aural. The State Examinations Commission will set and grade the project as it does with other Leaving Certificate coursework assessments.

The NCCA has also announced a consultation period running through September before the final specification is agreed. This includes a Computers in Education Society of Ireland (CESI) consultation event on September 16.

Below I have extracted some of the salient parts of the draft specification to give readers a quick overview, along with some road-mapping for those unfamiliar with the Irish Leaving Certificate. Readers are directed to the full draft specification for details.

Objectives

The draft specification sets out the objectives of Leaving Certificate Computer Science as enabling students to:

  • develop an understanding of how computing technology presents new ways to address problems, and to use computational thinking to analyse problems and to design, develop and evaluate solutions
  • read, write, test, and modify computer programs
  • develop an understanding of how computers work; the component parts of computer systems and how they interrelate, including software, data, hardware, communications, and users
  • appreciate the ethical and social implications relating to use of computing technology and information and identify the impact of technology on personal life and society
  • understand how information technology has changed over time and the effects these changes may have on education, the workforce, and society
  • evaluate the accuracy, relevance, appropriateness, comprehensiveness, and bias of online information sources
  • work independently and collaboratively, communicate effectively, and become responsible, competent, confident, reflective, and creative users of computing technology.

Structure

The specification sets out three strands: 1. Practices and Principles, 2. Cross-cutting Core Concepts and 3. Computer Science in Practice.

1. The overarching practices and principles of Computer Science are the behaviours and ways of thinking that computer scientists use.

2. The cross-cutting core concepts of Computer Science represent the major content areas in the field of Computer Science: abstraction, data, computer systems, algorithms and evaluation/testing. Students engage with the crosscutting concepts theoretically in this strand and apply them practically in Strand 3.

3. Computer Science in practice provides multiple opportunities for students to apply the practices and principles and the cross-cutting core concepts. To reflect the emphasis on project management in real-world Computer Science, students work in groups to carry out five projects over the duration of the course, each of which results in the creation of computational artefacts. Computational artefacts are defined as anything created by a human using a computer. An artefact can be, but is not limited to, a program, image, audio, video, presentation, or web page file.

Time Allocation

The curriculum is designed for 180 hours of class contact time. There is time for introductory classroom-based theory and revision, but most of the teaching and learning will take place in the practical application of the concepts through project work in Strand 3. Each project should take approximately six weeks to complete.

Differentiation

The Leaving Certificate in Ireland is differentiated by two levels, ordinary and higher. The Leaving Certificate specification for Computer Science sets out the following “differentiation through the learning outcomes of the specification”. I have underlined (ordinary) and set in bold (higher) the differences below.

Ordinary: Students engage with a broad range of knowledge, mainly concrete in nature, but with some elements of abstraction or theory. They will be expected to demonstrate and use a moderate range of practical and cognitive skills and tools and to plan and develop simple investigative strategies. They will be expected to select from a range of procedures, and apply known solutions to a variety of problems in both familiar and unfamiliar contexts. They will design and produce computational artefacts that serve a useful purpose.

Higher: Students engage with a broad range of knowledge, including theoretical concepts and abstract thinking, with significant depth in some areas. They will be expected to demonstrate and use a broad range of specialised skills and tools to evaluate and use information, to plan and develop investigative strategies, and to determine solutions to varied, unfamiliar problems. They will be expected to identify and apply skills and knowledge in a wide variety of both familiar and unfamiliar contexts. They will design and produce computational artefacts that serve a useful purpose.

In addition, there is differentiation in teaching and learning, and in assessment. See the draft specification, page 19 for details.

Topics and Learning Outcomes

The draft specification sets out a full set of topics and learning outcomes for each of the three strands above, for both ordinary and higher levels. These are too lengthy to go over here. Readers are directed to the draft specification, page 21.

Assessment

There are two assessment components at each level, an end-of-course examination (70%) and coursework (30%). The end-of-course examination is broken down into: short answer questions (20%),  practical question (30%) and structured questions (20%). The coursework assessment consists of one computational artefact and report for the full 30%.

Assessment Programming Language

Leaving Certificate Computer Science does not require a specific language. However, for the initial years of the subject, Python and JavaScript will be the languages used in the end-of-course assessment; this will be reviewed on an ongoing basis. There is no restriction in choice of language used in the projects or in the coursework assessment.

Consultation

You can get involved in the consultation in any of four ways:

  1. Email a submission to consultations@ncca.ie
  2. Request to participate in a focus group by contacting info@ncca.ie
  3. Attend the CESI Computer Science Consultation Event on September 16th
  4. Complete an online questionnaire which will be available from 15th July, 2017.

The full draft specification can be found here.

 

Introducing programming to the Irish primary and secondary curricula

follow 3 pngYesterday the Irish government anounced more strategy for their plan to introduce programming to the primary and secondary curricula. As currently set out, this will take place through the mathematics curriculum (at least at the primary level). As part of the wider plan, Computer Science will be introduced as a secondary level (high school) subject, a development I have also been following recently.

The Digital Strategy for Schools 2015-2020 plan for 2017, which was launched by Minister for Education Richard Bruton yesterday, seeks to increase the use of ICT (information and communications technology) in Irish schools and includes the introduction of a benchmarking system from this September to allow teachers to track their progress in using digital technologies when teaching.

I have read the Department of Education press release, and the Digital Strategy for Schools 2015-2020 Action Plan 2017 (both cited by The Irish Times yesterday) as well as the Digital Strategy for Schools 2015-2020 Action Plan cited by The Times (London) yesterday. It seems at this point there are plenty of  “details” but not many details.

So I dug into the references of the Digital Strategy for Schools 2015-2020 Action Plan and found Programming and Coding -Draft Specification for Junior Cycle Short Course. This (although not specifically part of the 2015-2020 Action Plan, or the Action Plan 2017) had some interesting details. Note: this dates from October 2013 and was published by the National Council for Curriculum and Assessment, one of the many chefs in a busy kitchen. The Junior Cycle is the first three years of second-level education, set at level 3 of the National Framework of Qualifications. The closest analogue in the US would be Junior High School. Under Strand 1 Computer science introduction it is stated that students should learn about My digital world: The importance of computers in modern society and my life Being a coder – step by step: How to start programming and develop basic algorithms. The following learning outcomes are listed:

1.1 present and share examples of what computers are used for and discuss their importance in modern society and in their lives
1.2 describe the main components of a computer system (CPU, memory, main storage, I/O devices, buses)
1.3 explain how computers are devices for executing programs via the use of programming languages
1.4 write code to implement algorithms
1.5 test the code
1.6 develop appropriate algorithms using pseudo-code and/or flow charts
1.7 discuss and implement core features of structured programming languages, such as variables, operators, loops, decisions, assignment and modules
1.8 evaluate the results in groups of two or three

Under Strand 2 Let’s get connected it is stated that students should learn about Making connections: Computers are communication devices and Bits and bytes: How computers store data. The following learning outcomes are listed:

2.1 discuss the basic concepts underlying computer networks
2.2 describe how data is transported on the Internet and how computers communicate and cooperate through protocols such as HTTP
2.3 build web pages using HTML and CSS
2.4 explain how search engines deliver results
2.5 explain how computers represent data using 1’s and 0’s
2.6 investigate how drawings and photos are represented in computing devices

Under Strand 3 Coding at the next level it is stated that students should learn about More advanced concepts in programming and computational thinking and
Documentation and code analysis. The following learning outcomes are listed:

3.1 creatively design and write code for short programming tasks to demonstrate the use of operators for assignment, arithmetic, comparison, and Boolean combinations
3.2 complete short programming tasks using basic linear data structures (e.g. array or list)
3.3 demonstrate how functions and procedures (definition and call) capture abstractions
3.4 describe program flow control e.g. parallel or sequential flow of control – language dependent
3.5 document programs to explain how they work
3.6 present the documented code to each other in small groups
3.7 analyse code to determine its function and identify errors or potential errors

Under Strand 4 Problem solving in the real world it is stated that students should learn about Real world problems: Computer Science inspiring me and computational thinking and Putting the pieces together: Build a final software project that incorporates concepts learnt in the previous strands. The following learning outcomes are listed:

4.1 identify a topic or a challenge in computer science that inspires them
4.2 conduct research on the topic/challenge
4.3 work in teams of two or three and decide on a topic or challenge on which to build a final software project
4.4 brainstorm ideas in the requirements-gathering phase
4.5 discuss aspects of user-interaction design for the project
4.6 design, implement and test a solution
4.7 document team contributions and document the code
4.8 present to peers for feedback
4.9 assess the feedback
4.10 based on feedback, complete the software project and present a convincing argument for the final proposal to their peers

Now, that’s meaty! I have to admit I found this most intriguing: 3.4 describe program flow control e.g. parallel or sequential flow of control – language dependent. The report goes on to discuss assessment also. I won’t analyze that here, but I’ll copy the ‘Features of Quality’ for Strand 3 Coding at the next level:

Achieved with Distinction (90-100%): There is evidence that the programming tasks are executed with complete confidence and there is a very high level of creativity demonstrated. The tasks demonstrate an excellent understanding and comprehensive knowledge of the advanced concepts of programming and computational thinking. There is evidence that very good connections are made between team members and effective and communicative team working is demonstrated.

If this could be accomplished by the age of 14 or so we would be cooking with gas! Let’s not forget though, this is a 2013 draft specification and afor now we have no idea if any of this will become reality.

Back to the Digital Strategy for Schools 2015-2020 Action Plan 2017. Below I have included ‘Key Elements of the Plan’ and ‘What does success look like’. Of these, I found this to be particularly interesting: All students [will] have a digital portfolio with self-created content across the entire curriculum and a recognised capacity in discerning the ethical use of digital technologies.

Key elements of the plan include:

  • A new clustering programme, through which schools across the country will collaborate with each other on innovative projects for using digital technology in teaching and learning. This will be an important means of encouraging schools to innovate in this area, and also for the system as a whole to develop new method
  • A programme of curriculum reforms will see ICT embedded in all emerging curricular specifications and intense preparation for the phased introduction of Computer Science as a Leaving Certificate subject option from 2018 and coding as part of the primary school maths curriculum
  • A new Digital Learning Framework will be trialled in the new school year and will allow schools to evaluate their progress and measure how they stand against benchmarks of highly effective practice of using digital technologies in teaching and learning. Examples of good practice will continue to be captured and shared amongst the teaching community.
  • Provision of a range of professional learning programmes for teachers and school leaders to enable them engage effectively in whole school planning and self-evaluation to support them to embed digital technologies in teaching, learning and assessment
  • A full suite of content and exemplars of good practice available through an online portal which will also facilitate the sharing of good practice between teachers.
  • The continuing rollout of a €210million capital investment programme backed by the dissemination of research on best practice in equipment selection, collaboration and technical support
  • A progressive programme of high-speed broadband connectivity
  • New ways of business and industry supporting schools in embedding digital technologies in all aspects of their activities
  • Reviewing policy on the ethical use of the internet and online safety for young people

What does success look like?

1.   All functions of teaching and learning in  schools are fully digitally supported and enabled, with full engagement across the entire school community

2.   All subject specifications support a constructivist learning model and reflect the role of digital technologies in facilitating this model

3.   All students have a digital portfolio with self-created content across the entire curriculum and a recognised capacity in discerning the ethical use of digital technologies

4.   All schools can demonstrate effective or highly effective practice as described in the Digital Learning Framework, underpinned by a whole-school approach to e-planning

5.   All teachers have upskilled and embed digital technologies in their teaching practice

6.   Our Providers of Initial Teacher Education have become recognised leaders in innovative learning for quality outcomes

7.   An increasing number of schools participating in clusters each year leading innovation in the use of digital technologies that can be disseminated to all schools

8.   Good protocols are in place to assist schools in managing their digital resources with robust relationship with industry, business and higher education institutions

9.   All schools have high speed broadband connectivity

10. Schools use a variety of ICT equipment and delivery models for supporting their learning activities with demonstrable cost effectiveness and shared learning

Sources: Irish Times, The Times (London), the Department of Education (Ireland), Digital Strategy for Schools 2015-2020 Action Plan 2017, Digital Strategy for Schools 2015-2020 Action Plan, and Programming and Coding -Draft Specification for Junior Cycle Short Course.

Stack Exchange for Computer Science Educators now in public beta!

TweetSmallA Stack Exchange site for Computer Science Educators went to public beta yesterday. Stack Exchange beta phases last at least 90 days, during which the powers that be keep an eye on key stats to decide if the site shows viability. The Stack Exchange Area 51 site where the stats mentioned below are continuously updated can be found here. Currently some of the stats are very good: 98% of questions answered (90% considered healthy); answer ratio 3.4 (2.5 considered good). However, other stats need some help: 4.1 questions/day (10 is average); 111 visits/day (1,500 considered good). Additionally, the site is in need of users with high Stack Exchange reputations.

It may be summer, but September is, well, you know. Why not spend a few minutes browsing, asking and answering?

Some of the interesting questions currently trending include:

Browse the complete list of questions, or popular tags. Help answer unanswered questions.

The New York Times on cheating in university programming courses

Yesterday the New York Times published an article on cheating in university computer programming courses. To anyone who has taught a programming course, much of the narrative is probably all too familiar. Nonetheless, it is interesting to see it featured in mainstream media, it is helpful to hear about what is happening at different universities, and it may play a small part in refocussing the communities involved. This is important as the number of students taking computer science courses is increasing, as is their diversity (k-12, extracurricular, university non-majors, etc.). In addition, major efforts are under way to increase student diversity in terms of age, gender, ethnicity, socioeconomic background, and other ways. As a result of increasing student numbers and diversity, the numbers and diversity of teachers and institutions are also set to increase, making the issue of plagiarism one that is likely to continue to crop up in new and interesting ways.

The article goes into details on academic misconduct in programming courses, and methods of dealing with it, at Purdue, BerkeleyBrown, Stanford, Yale, and Harvard (including the popular CS50). It states that in some institutions, computer science courses have become some of the most common sources of academic honesty incidents, but also states that many computer science educators reject that their courses are any more prone to cheating than those in other disciplines. This view is supported by a quote from Alex Aiken, the head of computer science at Stanford who mentions the tendency for computer science educators to actually check assignment submissions for plagiarism as one of the reasons for the number of cases, along with citing recent high-profile cheating scandals in other disciplines that have received wide media attention.

The use of software-based methods of detecting plagiarism such as MOSS and Codio are discussed, and I suspect used fairly widely, but there was also mention of other more novel strategies to cope with plagiarism. One of these is the ‘regret-clause’ introduced in Harvard’s CS50 by David J. Malan, which lets students who cheat and admit it within 72 hours receive an unsatisfactory or failing grade on an assignment, and avoid further discipline – however repeat offenders don’t have this option.

Some of the other discussion surrounds the grey area between the collaborative ethos in programming where code sharing and reuse is commonplace, and policies on academic honesty. The problem is that many of the practices employed by software developers in the workplace violate academic honesty policies. So we are teaching students to work in highly collaborative environments, in educational environments where their collaborative abilities are restricted. A case in point is instructors encouraging students to work together, but demanding that assignment submissions be unique. This creates a grey area where guidelines on what is acceptable and what is not can become confusing to students. In the article, Paul North, a professor of German and chair of the executive committee at Yale acknowledges that compared to the guidelines “… the code to be written seems simple …”. It is my opinion that programming courses (or computer science departments) often need specific guidelines for their students. Trying to apply catchall policies and guidelines designed for any discipline is sure to lead to grey areas in computer science courses, particularly those that involve programming assignments.

It was interesting to read that many computer science professors are now delivering stern warnings at the start of each course – this is something that done at all of the institutions I have taught at. Although I didn’t think it was a unique practice it is interesting to hear that it is actually common. I wonder if computer science does this more often than other disciplines. My feeling would be yes, but I don’t know.

One thing is for sure – the ways that computer science educators deal with plagiarism need to be continuously adapting. Almost everything about computer science (particularly in the way it is taught and learned) is changing at a phenomenal pace and that isn’t showing any signs of abating.

Computer science in China: high employment, highest satisfaction and salaries

Each spring I teach on University College Dublin‘s Software Engineering and Internet of Things Engineering Degrees in Beijing. The degree is offered by the Beijing Dublin International College (Chinese language link), a recognised college of UCD and the Beijing University of Technology.

Back in October, I reported on China topping the list of best programming nations. As I am shamefully monolingual (course delivery is in English), my news consumption is limited to English, and it’s not every day that I see English language reports on the state of computer science in China. That report back in October was the last I think I came across until today, when I was pleased to learn that Computer Science is the second most fruitful degree in China in terms of employment prospects from this article.

For those with a bachelor’s degree in computer science, the employment rate was 93.9 percent in 2016 – slightly trailing electrical engineering’s 95.5 percent, according to a report published by MyCOS, a company specializing in higher education data analytics.€

Computer Science also came out on top in terms of income potential, with computer science graduates earning 5,452 yuan ($792) a month, half a year after graduation. This is over 800 yuan ($116) more than finance grads, who came in second. After three years at work, computer science graduates are earning 8,665 yuan ($1,257), almost 1,000 yuan more than finance graduates.

Refreshingly, Chinese computer science graduates are also most satisfied with their jobs, with 75% reporting job satisfaction six months after graduation.

In Ireland, computer science/ICT grads also earn the most of any discipline, with 62% earning €29,000 a year or more which equates to 18,629 yuan per month. This data is for 2014 graduates, so most comparable to the Chinese figure of 8,665 yuan per month meaning that Irish computer science grads are earning more than double their Chinese counterparts in China.

in the US, computer science grads with 1-4 years experience are earning $63,281 a year, or $5,273 (36,323 yuan) per month which is over four times the Chinese salary, and double the Irish salary.

Of course, this all only matters in when the cost of living is taken into account. I just had dinner and drinks with 5 people in Beijing and the bill was $8 each. However, the average rent in Dublin for a one bedroom apartment is well over $1,000 and in Beijing it is just under that (numbeo.com). Let’s hope that the graduates living in the big cities earn more than the average.

Irish computer science dropout rate falls

The number of students dropping out of Irish computer science courses before beginning their second year has fallen for the first time in several years.

This is welcome news, particularly as in recent years, Computer Science courses have had some of the worst progression rates of all courses. This year* their progression rate has risen from 80% to 84% for honours degree (level 8)** programmes. For university courses the figure is 88pc, compared with 80pc at institutes of technology.

The problem of high dropout rates in Computer Science courses is not limited to Ireland, and has been a big problem in many, if not most countries.

Overall, there has been a small decrease in drop-out rates, although more than 6,200 (nearly one in seven) first year students in 2013/14 did not continue into second year. Interestingly and encouragingly, students from farming backgrounds, and female students, are least likely to drop out before second year.

The source of these figures is a newly published report from the Higher Education Authority (HEA), A Study of Progression in Irish Higher Education, 2013/14 to 2014/15. Figures in the report show that 85% of first years in 2013/14 progressed to second year, up from 84% in the previous year.

HEA chief executive officer Dr Graham Love attributed the improved progression rates in computer science to additional funding for retention initiatives such as maths enabling courses, peer mentoring and tutorials.

*The report detailed here is for students who began their course in 2013/2014.

**For international readers, “honours degree, level 8” courses are ‘traditional’ degree courses, typically 4 year BSc courses. See here for more.

Google seeking input on next directions in CS Education Research

Head over to Mark Guzdial’s Computing Education Blog for a link to a survey from Google’s computer science education research team. They are collecting information from ‘researchers, educators, and advocates working in the field everyday’ to help them better support the field. The deadline is Sunday, April 23.