Teaching Introductory Programming Course for Computer Programming Majors at the Department of Mathematics and Mechanics of Saint-Petersburg University

  • Георгий Алексеевич Чернышев SPbSU, Saint-Petersburg, Russia
Keywords: Software Development Fundamentals, SDF, programming, quiz, lab session, course program, faculty of mathematics and mechanics, Saint-Petersburg University

Abstract

In this paper we describe the experience of teaching introductory programming course for computer programming majors at the department of mathematics and mechanics of Saint-Petersburg University. We describe the course program, studied topics, a typical seminar session, assessment methods, developed units and books used to built them. The core of this approach - the home reading with control quizzes is presented in detail. We also describe the entrance test which is used to tailor course programs for each group. Finally, a short survey of similar approaches featuring home reading and quizzes is provided. This survey includes both research studies and existing course programs from the Computer Science Curriculum 2013.

Author Biography

Георгий Алексеевич Чернышев, SPbSU, Saint-Petersburg, Russia

Chernishev G. A.

References

1. Обобщенные классы. URL: http://pascalabc.net/wiki/index.php?title=Обобщенные_классы (дата обращения 06.10.2015).
2. Георгий Чернышев, личная страница. URL: www.math.spbu.ru/user/chernishev/ (дата обращения 06.10.2015).
3. Запись в журнале «Делаем русский глоссарий по информационному поиску». URL: http://ru-ir.livejournal.com/87096.html (дата обращения 06.10.2015).
4. Запись в журнале «Проектировщики айфонов учат это, а не хипстерщину». URL: http://panchul.livejournal.com/469643.html (дата обращения 06.10.2015).
5. Маннинг Кристофер Д., Рагхаван Прабхакар, Шютце Хайнрих. Введение в информационный поиск. М.: Вильямс, 2011.
6. Тулупьев А.Л., Фильченков А.А., Тулупьева Т.В., Чернышев Г.А., Азаров А.А. Информатика: рабочая программа учебной дисциплины. Направление 230700, бакалавриат, семестр 1–2. СПб.: СПбГУ, 2011.
7. Абельсон Харольд, Сассман Джеральд Джей. Структура и Интерпретация Компьютерных Программ. М.: Добросвет, КДУ, 2010.
8. Керниган Б.В., Ричи Д.М. Язык программирования Си. Третье издание. СПб.: Невский Диалект, 2001.
9. Мэтью Нэйл, Стоунс Ричард. Основы программирования в Linux. 4-е издание. СПб.: БХВПетербург, 2009.
10. Хорстман К., Корнелл Г. Java 2. Библиотека профессионала. Том 1. Основы, 8-е издание. М.: Вильямс, 2009.
11. Хорстман К., Корнелл Г. Java 2. Библиотека профессионала. Том 2. Тонкости программирования, 8-е издание. М.: Вильямс, 2009.
12. Харрис Дэвид, Харрис Сара. Цифровая схемотехника и архитектура компьютера, второе издание. Morgan Kaufmann, 2012.
13. Стиллмен Э., Грин Д. Изучаем C#. 2-е изд. / Включая .NET 4.0 и Visual Studio 2010. СПб.: Питер, 2012.
14. Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес. Приемы объектноориентированного проектирования. Паттерны проектирования СПб.: Питер, 2016.
15. Кубенский А.А. Создание и обработка структур данных в примерах на Java. СПб.: БХВПетербург, 2001.
16. Вопросы к зачету по курсу «Экспертные Системы», 2013 (осень), СПбГУ, Лектор Чернышев Г.А. (предварительная версия). URL: https://docs.google.com/document/d/1n2A6hlmk6TmQtz4XFuqU-fjihl5xGlUwnMuIjRab37A/edit (дата обращения 30.11.2015).
17. Переписка по теме перевода книги Криса Окасаки “Purely Functional Data Structures”. URL:http://lj.rossia.org/users/gogabr/109945.html (дата обращения 30.11.2015).
18. Терехов А. Н. Как готовить системных программистов // Компьютерные инструменты в образовании, 2001. № 3–4. С. 3–20.
19. Терехов А. А. Десять программистских книг, которые потрясли мир, но все еще неизвестны в России // Компьютерра, 2004. № 13.
20. Терехов А. Н. Вспоминая о статье «Как готовить системных программистов» // Компьютерные инструменты в образовании, 2007. № 4. С. 3–13.
21. Окулов С.М. Программирование в алгоритмах. М.: Бином. Лаборатория знаний, 2002.
22. Шень А. Программирование: теоремы и задачи. 2-е изд. М.: МЦНМО, 2004.
23. Роббинс А. Linux: программирование в примерах, 3-е издание. СПб.: КУДИЦ-ПРЕСС, 2008.
24. Шилдт Г. Java: руководство для начинающих. 4-е изд. М.: Вильямс, 2009.
25. Фуско Дж. Linux. Руководство программиста. СПб.: Питер, 2011.
26. Прата Стивен. Язык программирования C++ лекции и упражнения. 6 издание. М.: Вильямс, 2012.
27. Рихтер Д. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. 4-е изд. СПб.: Питер, 2013.
28. Троелсен Эндрю. Язык программирования C# 5.0 и платформа .NET 4.5. М.: Вильямс, 2015.
29. Кормен Т., Лейзерсон Ч., Ривест Р.Л., Штайн К. Алгоритмы: построение и анализ. 2-е издание. М.: Вильямс, 2005.
30. Эрик Фримен, Элизабет Фримен, Кэтти Сьерра, Берт Бейтс. Паттерны проектирования. СПб.: Питер, 2011.
31. Переписка по теме перевода SICP. URL: http://lj.rossia.org/users/gogabr/99986.html?thread=556690#t556690 (дата обращения 06.10.2015).
32. Георгий Чернышев. Опрос 5: Окружение Linux. Интернационализация и локализация (вводная лекция). URL:www.math.spbu.ru/user/chernishev/papers/teaching/Introduction-Linux-5.pdf (дата обращения 06.10.2015).
33. Страница перевода книги “Benjamin C. Pierce, Types and Programming Languages”. URL: http://newstar.rinet.ru/~goga/tapl/ (дата обращения 06.10.2015).
34. Справка PascalABC.NET. URL: http://pascalabc.net/downloads/pabcnethelp/index.htm (дата обращения 06.10.2015).
35. Anonymous function. List of languages. URL: https://en.wikipedia.org/wiki/Anonymous_function#List_of_languages (дата обращения 06.10.2015).
36. Blackboard Learning System™ (Release 6) Product Overview White Paper. URL: http://library.blackboard.com/docs/r6/orientation/LSR6WP.pdf (дата обращения 06.10.2015).
37. Bloch Joshua, Gafter Neal. Java Puzzlers: Traps, Pitfalls, and Corner Cases. Addison-Wesley Professional, 2010.
38. Cavus N., Ibrahim D. Using learning objects to teach programming languages // Creating the Future 3rd FAE International Symposium, 2004. P. 303–308. URL: http://files.eric.ed.gov/fulltext/ED503158.pdf (дата обращения 06.10.2015).
39. Control Structures (CS 241), страница курса. URL: http://www.cs.du.edu/~cag/courses/CS/Regis/cs241/ (дата обращения 06.10.2015).
40. Data Structures, Containers, Collections. URL: http://wiki.freepascal.org/Data_Structures,_Containers,_Collections (дата обращения 06.10.2015).
41. De Raadt Michael, Watson Richard, Toleman Mark. Language Trends in Introductory Programming Courses // Proceedings of Informing Science + IT Education Conference. IS’2002. 2002. URL: http://proceedings.informingscience.org/IS2002Proceedings/papers/deRaa136Langu.pdf (дата обращения
06.10.2015).
42. FPCUnit. URL: http://wiki.freepascal.org/fpcunit (дата обращения 06.10.2015).
43. Finland ditches handwriting for typing lessons in school curriculums. URL: http://www.itproportal.com/2014/12/01/finland-ditches-handwriting-typing-school-curriculums/ (дата обращения 06.10.2015).
44. Finlay Sara-Jane, Faulkner Guy. Tˆ ete ` a tˆ ete: Reading groups and peer learning // Active Learning in Higher Education, 2005. № 6. P. 32–45.
45. Generics. URL: http://wiki.freepascal.org/Generics (дата обращения 06.10.2015).
46. Haden P., Mann S. The Trouble with Teaching Programming // Proceedings of the NACCQ, 2003. P. 63–70. URL: http://www.citrenz.ac.nz/conferences/2003/papers/63.pdf (дата обращения 06.10.2015).
47. Helping university students to ‘read’ scholarly journal articles: the benefits of a structured and collaborative approach / Yuka Fujimoto, Pauline Hagel, Paul Turner et al // Journal of University Teaching & Learning Practice, 2011. Vol. 8, № 3. URL: http://ro.uow.edu.au/jutlp/vol8/iss3/6 (дата обращения 06.10.2015).
48. Jabłonowski Janusz. Some remarks on teaching of programming // Proceedings of the 5th international conference on Computer systems and technologies (CompSysTech ’04). New York, NY, USA : ACM, 2004. P. IV.10–1–IV.10–6. URL: http://ecet.ecs.uni-ruse.bg/cst04/Docs/sIV/410.pdf (дата обращения 06.10.2015).
49. Kerrisk Michael. The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press, 2010.
50. LazSVNPkg. URL: http://wiki.freepascal.org/LazSVNPkg (дата обращения 06.10.2015).
51. Lee University Catalog 2015-2016. Каталог курсов Университета Ли, курс CSCI 260 — Introduction To Pascal Programming. URL: http://catalog.leeuniversity.edu/preview_course_nopop.php?catoid=8&coid=18115 (дата обращения 06.10.2015).
52. Louisiana State University-Eunice Archived Academic Catalog 2014–2015. Курс CSC 1248 — Introduction to Pascal Programming. URL: http://catalog.lsue.edu/preview_course_nopop.php?catoid=6&coid=4228 (дата обращения 06.10.2015).
53. Micha¨ el Van Canneyt. Reference guide for Free Pascal, version 2.6.4. Document version 2.6. March 2014. Chapter 15. Operator overloading. URL: http://www.freepascal.org/docs-html/ref/refch15.html (дата обращения 06.10.2015).
54. Moodle Manuals. URL: https://docs.moodle.org/29/en/Moodle_manuals (дата обращения 06.10.2015).
55. Nevest “freepascal” questions — Stackoverflow. URL: http://stackoverflow.com/questions/tagged/freepascal (дата обращения 06.10.2015).
56. Nevest “java” questions — stackoverflow. URL: http://stackoverflow.com/questions/tagged/java (дата обращения 06.10.2015).
57. PascalABC.NET. Что нового. URL: http://pascalabc.net/en/chto-novogo (дата обращения 06.10.2015).
58. Railton Diane, Watson Paul. Teaching autonomy ‘Reading groups’ and the development of autonomous learning practices // Active Learning in Higher Education, 2005. Vol. 6, № 3. P. 182–193.
59. Reading Groups — Interdisciplinary Doctoral Program at the Humanities — Princeton University. URL: https://www.princeton.edu/ihum/reading-groups/ (дата обращения 06.10.2015).
60. Reading Groups. Department of philosophy. URL: http://philosophy.columbia.edu/content/reading-groups (дата обращения 06.10.2015).
61. Reading Groups. English Graduate Student Organization @ UW. URL: https://students.washington.edu/enggso/reading-working-groups/ (дата обращения 06.10.2015).
62. Mar Mateos, Ruth Villal´ on, Maria Jose De Dios, Elena Mart´ ın. Reading and writing tasks on different university degree courses: what do the students say they do? // Studies in Higher Education, 2007. Vol. 32, № 4.
63. Severance Charles. The Art of Teaching Computer Science: Niklaus Wirth // Computer, 2012. Vol. 45, № 7. P. 8–10. URL: http://dx.doi.org/10.1109/MC.2012.245 (дата обращения 06.10.2015).
64. Sierra Kathy, Bates Bert. SCJP Sun® Certified Programmer for Java™ 6 Study Guide Exam (310-065). McGraw-Hill, 2008.
65. Stackoverflow. How can I use anonymous methods in Free Pascal? URL: http://stackoverflow.com/questions/7799077/how-can-i-use-anonymous-methods-in-free-pascal (дата обращения 06.10.2015).
66. Templates. URL: http://wiki.freepascal.org/Templates (дата обращения 06.10.2015).
67. Texas A&M University Undergraduate Catalog. Архив курсов Computer Science (CPSC) за 2008 год. Курс CPSC 110. URL: http://regcatalogarchives.tamu.edu/07-08_UG_Catalog/course_descriptions/cpsc. htm (дата обращения 06.10.2015).
68. The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) IEEE Computer Society. Computer Science Curricula 2013. Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. December 20, 2013. URL: https://www.acm.org/education/CS2013-final-report.pdf (дата обращения 06.10.2015).
69. The Texas General Education Core Web Center. URL: http://statecore.its.txstate.edu/cat.pl?cat=90 (дата обращения 06.10.2015).
70. University of Houston-Clear Lake, Undergraduate Catalog 2014-2015, Roster of Courses, CSCI —Computer Science. Курс CSCI 1318 Pascal Programming I. URL: http://uhcl.smartcatalogiq.com/en/2014-2015 (дата обращения 06.10.2015).
71. Using new to create new storage and returning a reference. URL: http://stackoverflow.com/questions/27647239/using-new-to-create-new-storage-and-returning-a-reference (дата обращения30.11.2015).
72. Willis Cheryl L., Miertschin Susan L. Mind maps as active learning tools // J. Comput. Sci. Coll., 2006.Vol. 21, №. 4. P. 266–272.
Published
2015-12-30
How to Cite
Чернышев, Г. А. (2015). Teaching Introductory Programming Course for Computer Programming Majors at the Department of Mathematics and Mechanics of Saint-Petersburg University. Computer Tools in Education, (6), 43-66. Retrieved from http://cte.eltech.ru/ojs/index.php/kio/article/view/1450
Section
Training of specialits: studying programms