首页> 外文会议>American Society for Engineering Education Annual Conference and Exposition >Teaching Theoretical Computer Science and Mathematical Techniques to Diverse Undergraduate Student Populations
【24h】

Teaching Theoretical Computer Science and Mathematical Techniques to Diverse Undergraduate Student Populations

机译:教学理论计算机科学与数学技术对不同的本科生群体

获取原文

摘要

We share our experience and insights gained from teaching foundations of computer science courses to diverse groups of undergraduate (and at times, also graduate) students coming from a broad variety of educational and social backgrounds. Among all required courses of contemporary Computer Science (CS) curricula across the US and Canadian universities, at most institutions (except for the very top research universities), theoretical computer science courses tend to be among the least popular. The reasons behind these prevalent attitudes among CS college students (esp. the undergraduates) tend to fall into two categories: i) theoretical CS courses are "all math" requiring proofs and rigorous formal reasoning that many CS and other engineering students aren't (yet) comfortable with; and ii) "why do we need all this theory anyway" if our career goal is to become software engineers, develop the next cool mobile app, and similar. Yet, most research universities, as well as quite a few non-research colleges, require at least 1-2 semesters of core undergraduate coursework in theoretical or foundational CS. We summarize some interesting lessons learned from teaching theoretical CS to mostly undergraduate upperclassmen (as well as a few non-traditional students) at two prominent public research universities in the US Pacific Northwest, as well as at comparable institutions in Canada (specifically, British Columbia). While the academic and professional backgrounds of the two authors of this paper are considerably different, we also share quite a bit in common: in particular, both of us have spent several years in high-tech industry prior to returning to the academic world as Computer Science faculty. In particular, when teaching various CS courses, we try to relate concepts and techniques covered to the "real-world" applications, and in particular the recent and current technology challenges and R&D done in industry. We have applied this general philosophy to virtually all courses we have taught, including the very theoretical ones -- such as those on Automata and Formal Languages. The goal is to get CS and other Engineering students intrigued by how, for example, finite automata or context-free grammars are used in compilers and interpreters (parsing, lexical analysis), or the formal specification of programming languages -- as well as to the more recently emerged technologies, such as computational/applied Natural Language Processing (NLP). Without sacrificing rigor, we try to present highly mathematical content in a manner that relates theoretical models and proofs of their properties to practical challenges in computer science and engineering. Some additional challenges we have encountered while teaching Theory of Computing courses stem from very diverse educational backgrounds of the students we have encountered: from graduate students overcoming true or perceived deficiencies in the CS foundations, to undergraduates transferring from local community colleges, many of whom still struggle with formulating a mathematical proof of any kind. This mix of students provides unique challenges, but also opportunities -- for example, to revisit teaching methodologies for the "mathematical side of computer science" curricula, how to best relate theory to practice (esp. in terms of technologies and applications these diverse students can most readily relate to), and how to best get students of broadly varying backgrounds actively engage in class discussions.
机译:我们分享我们的经验和见解,从计算机科学课程教学基金会获得了本科的不同群体(有时也研究生)的学生来自各种各样的教育和社会背景的到来。其中在美国和加拿大的大学,现代计算机科学(CS)课程的所有必修课程最多的机构(除了最高层研究型大学),理论计算机科学的课程往往是当中最不受欢迎的。 (尤指大学生)CS大学生中普遍存在,这些态度背后的原因往往分为两类:1)理论CS课程是“所有数学”,要求证明和严格的形式推理,许多CS和其他工程专业的学生都没有(还)舒服;和ii)“为什么我们需要所有这些理论呢,”如果我们的职业目标是成为软件工程师,开发下一代酷移动应用程序,以及类似的。然而,大多数研究型大学,还有相当多的非科研院校,需要在理论或基础CS核心课程本科至少1-2个学期。我们在加拿大(特别是不列颠哥伦比亚省在可比的机构总结为两个突出的公立研究型大学,在美国太平洋西北地区,从教学理论CS大多本科高年级学生学到了一些有意义的经验(以及一些非传统的学生)以及)。虽然本文的两位作者的学术和专业背景有很大的不同,我们也有着共同的相当多的:尤其是我们俩在高科技行业重返学术界的电脑前花了数年科学教师。特别是,教授各种CS课程时,我们试图覆盖相关的“真实世界”的应用理念和技术,特别是最近和目前的技术挑战,R&d行业完成。我们应用这个一般理念,我们教几乎所有的课程,包括了非常理论化的 - 比如那些在自动机和形式语言。我们的目标是让CS和其他工程的学生感兴趣的知识,例如,有限自动机或上下文无关文法的编译器和解释器使用(解析,词法分析),或编程语言的正式规范 - 以及对更最近出现的技术,诸如计算/施加自然语言处理(NLP)。在不牺牲严谨性,我们尝试在涉及理论模型和它们的性质的证明在计算机科学和工程实际挑战的方式来呈现高度的数学内容。我们都遇到过,而电脑课程的教学理论,从我们遇到的学生非常多样化的教育背景干一些额外的挑战:从研究生克服真实或想象的不足之处CS基础,以大学生从当地社区学院转,其中许多人仍然与制定任何形式的数学证明的斗争。学生的这种组合提供了独特的挑战,也是机会 - 例如,重温课程“计算机科学的数学方面”的教学方法,如何最好地涉及理论到实践(尤指技术和应用这些不同的学生而言。可以最容易涉及到),以及如何广泛不同背景的最好让学生积极参与课堂讨论。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号