Showing posts with label social issues in computing. Show all posts
Showing posts with label social issues in computing. Show all posts

22 October 2009

Innovative Approaches to Teaching Computer Science (Part 1)

What we teach in Computer Science depends a lot on how we think of Computer Science as a discipline. According to Lewis and Smith (2005), the segregationists think that it is mainly problem solving, algorithmic analysis, theory building, and not an art. The integrationists think that it should be driven by what is needed in other computing fields and majors, such as applied computing in bioinformatics, engineering, and only partly by industries. The synergists think it should transcend any discipline where computing concepts can be applied in much broader terms in non-computing specific areas. As an example, the computing concept of pattern matching may be applied to DNA sequence matching initially (synergistic model), but now it is core to DNA analysis in bioinformatics (integration model), and complexity theories may come out of special algorithms in this area (segregation model).

How we teach Computer Science can also be influenced by these three models. One of the synergistic ways of teaching Computer Science is to consider the approaches to teaching in fine arts and how these can be applied to our discipline. Computer Science is traditionally taught in a format that is instructor centered (instructor is the expert, students are the novices), where the subject matter is abstracted from its practical use (toy programs vs. real life applications), and taught in individualized, non-collaborative (to avoid cheating) environment. In contrast, the fine art approach to teaching has a lot more student - student collaboration, student - instructor engagement, etc. (Barker et al. 2005). This is starting to change as we see more Just in Time teaching, use of clicker questions during lectures, pair programming, peer instruction, peer evaluations, in class activities, group projects, two-stage exams, media programming, etc. to increase enrollment and reduce attrition especially for female students in Computer Science. The paper by Barker et al. also has a good background summary on the attrition of women in Computer Science, and how fine arts approach to teaching may help in Computer Science teaching.

An integrative approach to teaching Computer Science can be seen in the paper by Cushing et al. (2009) where he reported an entry level Computer Science course integrated with Computational Linguistics that included case studies, term project, lecture series and seminars. Out of 70 students that completed the course, 24 students went on to the next quarter of Computer Science with several of them not originally intended to. It is not clear how this compares to other years.

References:

Lewis, T. and Smith, W. (June 2005). The Computer Science Debate: It's a Matter of Perspective. The SIGCSE Bulletin. 37(2), pp 80 - 84.

Barker, L. Garvin-Doxas, K., Roberts, E. (February, 2005). What Can Computer Science Learn From a Fine Arts Approach to Teaching? SIGCSE 2005, pp 421 - 425.

Cushing, J., Hastings, R., Walter, B. (2009). CS0++ Broadening Computer Science At The Entry Level: Linguistics, Computer Science, And The Semantic Web. The Journal of Computing Sciences in Colleges, Papers of the Sixteenth Annual CCSC Midwestern Conference, October 9 - 10, 2009. pp 135 - 142.

12 March 2009

SIGCSE Presentations on Making CS More Relevant & Engaging

Here are a few highlights from SIGCSE 2009, Chattanooga, TN. These highlights are about making computer science "interesting" and "more relevant" to students that normally bypass traditional CS courses:

1. "Rediscovering the Passion, Beauty, Joy, and Awe"--panel presentation:

Dan Garcia (Berkeley): CHANGE (Obama style?) has come to computing. Let's avoid the old style of syntax-driven CS 0/1 curriculum. Let's let students choose their own projects, mix of CS courses, partners, etc. In elementary schools, parents help out after school; so, why can't we get [CS-type] moms & dads to help out in the computing club? "But, we want a winning basketball team, so not just any mom or dad will do." When constructing assignments and putting together lecture material, think relevance! We need to motivate students so that they will want to spend hours of their own free time on programming ... just for fun.

Eric Roberts (Stanford): CS enrollment at Stanford is "skyrocketing", wiping out previous CS1 losses post-dot-com. Programming continues to be a very important skill that needs to be emphasized and taught more effectively. "The best programmers are several orders of magnitude better than the average programmer." At Google, for example, they represent one-tenth of 1% of the applicant pool. The best programmers are 300 times as good/productive as Google's typical programmer.

Zachary Dodds (Harvey Mudd College): suggests a breadth-first approach to CS, including functional programming. Right now, "What is learned is the square root of what is taught."--implying not much is learned/remembered from a typical CS course.

2. Microsoft's exhibit on computational thinking. An excellent book, edited by Yan Xu (former MSc student at UBC) is: Transform Science: Computational Education for Scientists (CEfS), Special Edition. Microsoft Research was giving away free copies at the conference. Many authors, including former UBC STLF Beth Simon, contributed 1-2 page positions and short research papers on educational themes in computer science, focusing on the current mismatch between typical CS programs and typical science programs. For example, many authors claim that CS courses are not serving biology, chemistry, physics, earth & ocean science, biological engineering, etc., students very well. We need to develop new courses that take the highlights of numerous first, second, and third year CS courses, and condense them into digestible units for such non-CS students. Such highlights include topics in programming principles, an easy-to-learn powerful language (say Python), discrete math, algorithms, complexity, scripting, database topics, etc., should be made available to biology students using examples (taken from biology, etc.) that are relevant and interesting to the students. Forget about command-line driven programs that compute interest, etc.; instead, stick with real bioinformatics examples. Incorporate visualization techniques, problem-driven applications, modelling, simulation, etc.

3. Owen Astrachan created a new CS course at Duke University for arts students, theater students, varsity athletes, would-be lawyers, etc. Owen created a very interesting, non-programming, non-math, CS course that would appeal to non-CS/non-science types. And it did! 250 students enrolled in his experimental and engaging course. He got several guest speakers (some of whom were Duke alumni) to speak on their areas of expertise. The topics included case studies of network protocols, privacy issues, social issues, copyright issues, high-profile/controversial law cases, etc. Owen gave us take-home copies of his midterm and final exam. The exams included questions on IETF standards, Internet voting, DNS servers, security, Skype and security, worms, Flickr, BitTorrent, Richard Stallman's Free Software Foundation, copyright act and RIAA, IPv6, spam, cookies, iTunes, iPhone, P2P, etc.