{"id":655,"date":"2019-12-02T14:05:53","date_gmt":"2019-12-02T20:05:53","guid":{"rendered":"https:\/\/wp.stolaf.edu\/cs\/?page_id=655"},"modified":"2026-04-06T08:20:16","modified_gmt":"2026-04-06T13:20:16","slug":"cscurriculum","status":"publish","type":"page","link":"https:\/\/wp.stolaf.edu\/cs\/cscurriculum\/","title":{"rendered":"Computer Science Curriculum"},"content":{"rendered":"<div data-modular-content-collection><p><!-- begin-migrated-from-panel-builder --><\/p>\n\n\t\t\t<div\n\t\t\tclass=\"site-section site-panel__explore panel panel-explore site-section__bg--normal\"\n\t\t\tdata-depth=\"\"\n\t\t\tdata-js-panel=\"explore\"\n\t\t>\n\t\n\t\t\t<div class=\"site-section__inner l-wrapper  explore\">\n\t\n\t\n\t\n    <div class=\"site-panel__explore-chevron site-panel-shape-bbc--gold-navy\"><\/div>\n\n    <div class=\"site-grid site-grid__wrapper site-section__content site-panel__explore-content\">\n\n        <div class=\"t-content site-panel__explore-desc site-grid__col site-grid__col--flex-2\">\n            <h2 class=\"site-section__title h3\" id=\"computer-science-curriculum\" data-name=\"title\" data-livetext data-depth=\"0\" data-index=\"0\">Computer Science Curriculum<\/h2>\n\n            <h4 dir=\"ltr\">Pedagogical philosophy<\/h4>\n<p dir=\"ltr\">Broadly speaking, the CS program\u2019s pedagogical philosophy is to support the inquiry of students in contexts that make sense to them.\u00a0 Students learn well by working together on team projects. The abstract concepts of computer science are more compelling when they advance some goal that is shared by a group of peers, and where abstractions are connected to accessible artifacts.<\/p>\n<p dir=\"ltr\">In the early courses of the curriculum, projects are often small, enabling a student or team to verify or correct their understanding of a fundamental concept quickly.\u00a0 The end of the Software Design course marks the first extensive team project, comprising the final third of the course.\u00a0 On reflection, many students have described this project as a defining moment, where they prepare themselves to invest in other team project experiences throughout the curriculum.<\/p>\n<p dir=\"ltr\">In the middle of the curriculum, students plunge into areas that require more background.\u00a0 Here they become acquainted with standard core topic areas in computer science, such as algorithms, systems, languages, and theory, which they will need to take on projects with more impact. At St. Olaf, we include computing ethics among the required core topics, focusing on a practical method of socio-technical analysis.<\/p>\n<p dir=\"ltr\">The upper-level curriculum includes the Senior Capstone &#8212; a one-semester course that features a modest team research project, an ethical analysis of that project, and multiple forms of communication about students\u2019 work throughout the project.<\/p>\n<p dir=\"ltr\">Together, the determination and creativity of our students, combined with specific knowledge of the faculty in their respective research areas, help to create an effective learning community.<\/p>\n<h3>CS major<\/h3>\n<div>\n<p dir=\"ltr\">The major begins with foundation courses that present fundamental skills and an introduction to CS problem solving through hands-on experience. The foundation and subsequent core courses are intended to span many of the expectations for an undergraduate computer science major curriculum set forth in the ACM\/IEEE 2013 guidelines, and advanced courses and electives provide options for depth. Several themes appear throughout the major: breadth-first introductory courses; team collaboration (often interdisciplinary) and project-based learning; development of communication skills; thoughtful, structured analysis of ethical and social issues in computing; and undergraduate research, beginning with project-building skills in early courses and continuing through more advanced experiences.<\/p>\n<p>A student arranges for a computer science major by completing an individual plan in consultation with a computer science faculty member or CS program director.<\/p>\n<p style=\"margin-bottom: 6pt;\"><strong>Required CS courses (6 courses):<\/strong><\/p>\n<ul>\n<li>Introductory course in CS (either 121 or 125) or prior relevant experience,<\/li>\n<li dir=\"ltr\">Introduction to Data Structures in C++ (CSCI 221),<\/li>\n<li dir=\"ltr\">Hardware Design (CSCI 241),<\/li>\n<li dir=\"ltr\">Software Design (CSCI 251),<\/li>\n<li>Ethical Issues in Software Design (CSCI 263),<\/li>\n<li dir=\"ltr\">Analysis of Algorithms (CSCI 353).<\/li>\n<\/ul>\n<p style=\"margin-bottom: 6pt;\"><strong>Required mathematics courses (2 courses):<\/strong><\/p>\n<ul>\n<li>Linear Algebra (MATH 220),<\/li>\n<li>Discrete Mathematical Reasoning (MATH 234).<\/li>\n<\/ul>\n<p style=\"margin-bottom: 6pt;\"><strong>Upper-level electives (3 courses):<\/strong><\/p>\n<ul>\n<li>At least two of CSCI 273, CSCI 276, CSCI 379, CSCI 333.<\/li>\n<li>See the <a href=\"https:\/\/wp.stolaf.edu\/cs\/csmap\/\" target=\"_blank\" rel=\"noopener\">CSMaP<\/a> for a list of other electives.<\/li>\n<\/ul>\n<\/div>\n\n        <\/div>\n\n                    <div class=\"site-grid__col t-content\">\n                <h3 class=\"h5\">Courses and Forms<\/h3>\n\n                <ul class=\"list-icon \">\n                                            <li class=\"chevron-right\">\n                            <a href=\"https:\/\/wp.stolaf.edu\/cs\/files\/2023\/04\/CS-3-Year-Course-Plan-for-Students-2022-2025.pdf\" target=\"_blank\">\n                                Course Planning Guide\n                            <\/a>\n                        <\/li>\n                                            <li class=\"chevron-right\">\n                            <a href=\"http:\/\/catalog.stolaf.edu\/academic-programs\/computer-science\/\" target=\"_blank\">\n                                CS Academic Catalog\n                            <\/a>\n                        <\/li>\n                                            <li class=\"chevron-right\">\n                            <a href=\"https:\/\/wp.stolaf.edu\/cs\/csmap\/\" target=\"_blank\">\n                                CS Major Plan (CSMaP)\n                            <\/a>\n                        <\/li>\n                                    <\/ul>\n\n                            <\/div>\n        \n            <\/div>\n\n\n\t\t\t\t\n\t\t\t<\/div>\n\t\n\t\t\t<\/div>\n\t\n\n\n<p><!-- end-migrated-from-panel-builder --><\/p><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2163,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/page-full-width.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-655","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/pages\/655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/users\/2163"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/comments?post=655"}],"version-history":[{"count":49,"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/pages\/655\/revisions"}],"predecessor-version":[{"id":1374,"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/pages\/655\/revisions\/1374"}],"wp:attachment":[{"href":"https:\/\/wp.stolaf.edu\/cs\/wp-json\/wp\/v2\/media?parent=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}