<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://132.161.132.157/drupal6"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Computer Science - curriculum</title>
 <link>http://132.161.132.157/drupal6/taxonomy/term/9/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Thursday Extra 2/21/19: On the design of CSC 321/22</title>
 <link>http://132.161.132.157/drupal6/node/1008</link>
 <description>&lt;p&gt;Thursday, February 21, 2019&lt;br /&gt;
4:15 p.m. in Science 3821&lt;br /&gt;
Refreshments at 4:00 p.m. in the Computer Science Commons (Science 3817)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developing Soft and Technical Skills Through Multi-Semester, Remotely Mentored, Community-Service Projects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Professor Samuel A. Rebelsky will present a talk discussing the design rationale for CSC 321/22 (now CSC 324/26), in preparation for a talk that he and Dr. Janet Davis will be giving at the 50th SIGCSE Technical Symposium in Computer Science Education.&lt;/p&gt;
</description>
 <comments>http://132.161.132.157/drupal6/node/1008#comments</comments>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/182">alumni</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/31">collaborative learning</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/530">community project</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/616">curriculum development</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/27">software design</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/42">Thursday Extras</category>
 <pubDate>Tue, 19 Feb 2019 14:45:10 +0000</pubDate>
 <dc:creator>petersos</dc:creator>
 <guid isPermaLink="false">1008 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>TUESDAY Extra 10/10: Chat with CS Alumni</title>
 <link>http://132.161.132.157/drupal6/node/936</link>
 <description>&lt;p&gt;&lt;strong&gt;TUESDAY&lt;/strong&gt;, October 10, 2017&lt;br /&gt;
4:15 p.m. in Science 3821&lt;br /&gt;
Refreshments at 4:00 p.m. in the Computer Science Commons (Science 3817)&lt;/p&gt;

&lt;p&gt;Come meet with Wes Beary &#039;05, Cassie Koomjian &#039;05, Terian Koscik &#039;12, Alex Leach &#039;06, and Ian Young &#039;08, the alumni mentors for CSC 321.  They will discuss issues they have encountered as computing professionals and answer questions you have about life after Grinnell.&lt;/p&gt;</description>
 <comments>http://132.161.132.157/drupal6/node/936#comments</comments>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/182">alumni</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/70">careers</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/422">mentors</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/42">Thursday Extras</category>
 <pubDate>Mon, 09 Oct 2017 16:31:10 +0000</pubDate>
 <dc:creator>petersos</dc:creator>
 <guid isPermaLink="false">936 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Textbooks, Fall 2017</title>
 <link>http://132.161.132.157/drupal6/textbooks-fall2017</link>
 <description>&lt;p&gt;&lt;em&gt;Unfortunately, the College bookstore does not currently permit us to include notes about textbooks in their postings.  For example, we have no way to indicate that an earlier edition is permissible, or that a free legal version is available online.  This page serves as a temporary alternative.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;CSC 151 (all sections)&lt;/h2&gt;

&lt;p&gt;There is no required textbook.  All materials are available for free online.&lt;/p&gt;

&lt;h2&gt;CSC 161 (all sections)&lt;/h2&gt;

&lt;p&gt;
King, C. N.  &lt;i&gt;C Programming, A Modern Approach&lt;/i&gt; (2nd Edition).  W. W. Norton and Company.  ISBN 978-0393979503.
&lt;/p&gt;

&lt;p&gt;
It appears that Amazon currently has new copies for under $100 and used copies for about $60.
&lt;/p&gt;

&lt;h2&gt;CSC 207 (all sections)&lt;/h2&gt;

&lt;p&gt;There are no required textbooks for this course. Course readings will be provided through the schedule on the course website. For additional resources on the topics presented in this course, please consult the resource page. If you would like to purchase a textbook reference, here are some recommendations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mitpress.mit.edu/books/introduction-algorithms&quot;&gt;&lt;i&gt;Introduction to Algorithms&lt;/i&gt; by Cormen, Leiserson, Rivest, and Stein&lt;/a&gt;. Also known as &lt;em&gt;CLRS&lt;/em&gt;, this is one of the canonical algorithms textbooks. It is also frequently used as the main textbook in our algorithms course (CSC 301).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://amzn.com/0321541405&quot;&gt;&lt;i&gt;Data Structures and Problem Solving Using Java&lt;/i&gt; by Mark Allen Weiss&lt;/a&gt;. This has been used as the primary textbook in some previous iterations of the course.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://amzn.com/0321356683&quot;&gt;&lt;i&gt;Effective Java&lt;/i&gt; by Joshua Bloch&lt;/a&gt;. A classic Java reference for refining the Java skills you learn in this course.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;CSC 211&lt;/h2&gt;

&lt;p&gt;Our primary textbook is &lt;a href=&quot;http://books.google.com/books?id=U6lpXmu7OngC&amp;amp;printsec=frontcover&quot;&gt;David A. Patterson and John L. Hennessy, &lt;i&gt;Computer Organization and Design: The Hardware/Software Interface&lt;/i&gt;, Revised 4th Edition&lt;/a&gt;, Elsevier, 2012. ISBN 978-0-12–374750-1.
I will supplement our primary textbook with eReserves and handouts from other textbooks, videos, and the occasional lecture.&lt;/p&gt;

&lt;p&gt;Our textbook is fondly known as “Patterson &amp;amp; Hennessy” (not to be confused with “Hennessy and Patterson”, which is a more advanced textbook). Please acquire the revised printing (with a &lt;a href=&quot;&quot;&gt;dull green cover&lt;/a&gt;), not the original printing (with a blue cover). Do not buy other editions as they are quite different, including the newer 5th edition. I do not recommend the Kindle edition as it has received rather poor reviews. Some supplemental materials are included with the book on a CD. We will be reading from these materials early in the course. If the version of the book you have purchased does not include the CD, you can &lt;a href=&quot;http://booksite.elsevier.com/9780123747501/CD_ROM_Files.zip&quot;&gt;download all supplemental materials&lt;/a&gt; from the publisher. Finally, watch out for international editions that use ARM rather than MIPS as the primary example architecture.&lt;/p&gt;

&lt;h2&gt;CSC 301 (both sections)&lt;/h2&gt;

&lt;p&gt;We will use two main textbooks in this course.&lt;/p&gt;

&lt;p&gt;The second edition of &lt;a href=&quot;http://www.algorist.com/&quot;&gt;&lt;i&gt;The Algorithm Design Manual&lt;/i&gt; by Steven Skiena.&lt;/a&gt;.  Skiena does an excellent job of presenting the intuition behind many core algorithms and helps you build the skills to design your own.&lt;/p&gt;

&lt;p&gt;The third edition of &lt;a href=&quot;https://mitpress.mit.edu/books/introduction-algorithms&quot;&gt;&lt;i&gt;Introduction to Algorithms&lt;/i&gt; by Cormen, Leiserson, Rivest, and Stein&lt;/a&gt; (aka &lt;q&gt;CLRS&lt;/q&gt;) provides a more precise and more complete coverage of algorithms, including most of what we think of as the core &quot;literature&quot; of algorithms.  We will use this text as we think about more formal aspects of algorithm design and analysis, as well as in covering some algorithms and data structures not covered in Skienna.&lt;/p&gt;

&lt;p&gt;Note that the second edition of CLRS is also perfectly acceptable.  Coverage of some topics is slightly different, but not enough so to make a difference in most cases.  However, if you can get the third edition for a reasonable price, you should select that edition.  You will appreciate having it on your bookshelf.&lt;/p&gt;

&lt;h2&gt;CSC 321&lt;/h2&gt;

&lt;p&gt;Fox, Armando and Patterson, David (2016). &lt;i&gt;&lt;a href=&quot;https://www.amazon.com/Engineering-Software-Service-Approach-Computing-ebook/dp/B00CCEHNUM/&quot;&gt;Engineering Software as a Service: An Agile Approach Using Cloud Computing&lt;/a&gt;&lt;/i&gt;, latest edition.&lt;/p&gt;

&lt;p&gt;Our core textbook. Fox and Patterson synthesized a lot of ideas to produce a textbook that grounds software engineering principles in a new model of computing. This textbook is rapidly evolving. I would recommend that you purchase the Kindle edition through Amazon, which has free updates available. (With the Kindle Cloud Reader, available at https://read.amazon.com/ or an appropriate app, you should be able to read the book on almost any electronic device.)&lt;/p&gt;

&lt;p&gt;Metz, Sandi (2013).  &lt;i&gt;&lt;a href=&quot;http://www.poodr.com/&quot;&gt;Practical Object-Oriented Design in Ruby: An Agile Primer&lt;/a&gt;&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;This text will help you get more deeply involved in programming in Ruby and thinking like object-oriented programmers.&lt;/p&gt;

&lt;h2&gt;CSC 322&lt;/h2&gt;

&lt;p&gt;
  There are no additional texts for CSC 322.  You should, however, have copies of the CSC 321 texts.
&lt;/p&gt;

&lt;h2&gt;CSC 341&lt;/h2&gt;

&lt;p&gt;The required textbook we are using is &lt;i&gt;&lt;a href=&quot;http://www.cengage.com/c/introduction-to-the-theory-of-computation-3e-sipser/9781133187790&quot;&gt;Introduction to the Theory of Computation&lt;/a&gt;&lt;/i&gt;, by Michael Sipser.
We will be referring to this book regularly, so it is important that every student has access to a copy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edition:&lt;/strong&gt; Both the 2nd and 3rd editions acceptable. The new chapters included in the 3rd edition will only be mentioned in passing, and you will not be tested over it. Some errors were corrected in the 3rd edition, but Sipser maintains a helpful &lt;a href=&quot;https://math.mit.edu/~sipser/book.html&quot;&gt;list of errata&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Electronic copy:&lt;/strong&gt; You can rent an electronic copy of the 3rd edition for under $50 from &lt;a href=&quot;https://www.cengagebrain.com/shop/isbn/9781133187790&quot;&gt;Cengage&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reserve Copy:&lt;/strong&gt; A physical copy of the 3rd edition has been put on reserve and is accessible from the Kistle Library.&lt;/p&gt;

&lt;h2&gt;CSC 395&lt;/h2&gt;

&lt;p&gt;(Information forthcoming.)&lt;/p&gt;</description>
 <comments>http://132.161.132.157/drupal6/textbooks-fall2017#comments</comments>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/632">textbooks</category>
 <pubDate>Tue, 04 Apr 2017 19:05:03 +0000</pubDate>
 <dc:creator>rebelsky</dc:creator>
 <guid isPermaLink="false">914 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Thursday Extra: &quot;Off-campus study and computer science&quot;</title>
 <link>http://132.161.132.157/drupal6/node/755</link>
 <description>&lt;p&gt;
On Thursday, November 6, Professor Janet Davis and Richard Bright, Director of Off-Campus Study, will lead a discussion of options for combining off-campus study with study of computer science.  CS majors who have studied abroad are welcome to come share their experiences. &lt;/p&gt;

&lt;p&gt;
Refreshments will be served at 4:15&amp;nbsp;p.m. in the Computer Science Commons (Noyce&amp;nbsp;3817).  The presentation, &amp;ldquo;Off-campus study and computer science,&amp;rdquo; will begin at 4:30&amp;nbsp;p.m. in Noyce&amp;nbsp;3821.  Everyone is welcome to attend!
&lt;/p&gt;
</description>
 <comments>http://132.161.132.157/drupal6/node/755#comments</comments>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/479">off-campus study</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/42">Thursday Extras</category>
 <pubDate>Thu, 06 Nov 2014 00:29:45 +0000</pubDate>
 <dc:creator>stone</dc:creator>
 <guid isPermaLink="false">755 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Planning with Grinnell&#039;s New CS Curriculum and Major</title>
 <link>http://132.161.132.157/drupal6/node/680</link>
 <description>&lt;p&gt;
Grinnell&#039;s computer science curriculum and major are in transtion!  
&lt;/p&gt;

&lt;p&gt;
As discussed in past &lt;i&gt;Thursday Extras&lt;/i&gt;, revisions to the curriculum have been motivated by faculty perspectives, alumni feedback, and recommendations by the national professional societies (ACM and IEEE-CS).  New and revised offerings reflect emerging subject areas, expansion of cutting-edge pedagogy, and explicit connections with Grinnell&#039;s core values.  The innovative packaging of topics ensure that majors will cover numerous core subjects within the field, while allowing students to select a range of courses that support their career and educational goals.
&lt;/p&gt;

&lt;p&gt;
Final approvals for this new curriculum were completed about two weeks ago, and the full proposal will go into effect over this coming summer.  
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;Thursday Extra&lt;/i&gt; on Thursday, February 26, will look ahead to highlight new courses, consider scheduling possibilities, and suggest possible options for students with various varying interests.
&lt;/p&gt;

&lt;p&gt;
Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The presentation, “Planning with Grinnell&#039;s New CS Curriculum and Major,” will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend! 
&lt;/p&gt;
</description>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/340">major requirements</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/507">preregistration</category>
 <pubDate>Fri, 21 Feb 2014 13:50:57 +0000</pubDate>
 <dc:creator>walker</dc:creator>
 <guid isPermaLink="false">680 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>A Possible Revision of Grinnell&#039;s CS Curriculum and Major</title>
 <link>http://132.161.132.157/drupal6/node/664</link>
 <description>&lt;p&gt;
Grinnell&#039;s CS faculty regularly reviews and updates the CS curriculum in response to curricular  recommendations, feedback from alumni, and discussions with colleagues around the country. For example, over several semesters, the faculty has drawn upon feedback in discussing alternative approaches for team-based, project courses.
&lt;/p&gt;

&lt;p&gt;
Also since 2010, the major professional computing societies, ACM and IEEE-CS, have been working toward new curricular recommendations for undergraduate CS.  The forthcoming recommendations propose adjustments in some areas (e.g., programming languages) and substantial expansion in others (e.g., security).
&lt;/p&gt;

&lt;p&gt;
Recently, synergy between these two efforts has led to a proposal for substantial changes in Grinnell&#039;s CS program, including some course revisions, new courses in emerging areas, and increased flexibility in the major.
&lt;/p&gt;

&lt;p&gt;
The CS faculty will present current ideas for a revised CS curriculum and major on Monday, November 11, 2013, at 4:30 in Science 3821, with refreshments served at 4:15 pm in the CS Commons.  Everyone interested in computing is encouraged to attend. 
&lt;/p&gt;

&lt;p&gt;
Feedback on the draft curriculum and major will be encouraged!
&lt;/p&gt;

</description>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/7">courses</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/111">major</category>
 <pubDate>Wed, 06 Nov 2013 13:40:05 +0000</pubDate>
 <dc:creator>walker</dc:creator>
 <guid isPermaLink="false">664 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Diagram of the Computer Science curriculum</title>
 <link>http://132.161.132.157/drupal6/curriculum/diagram</link>
 <description>&lt;p&gt;
&lt;img width=&quot;100%&quot;
     src=&quot;/drupal6/sites/default/files/CS_Curriculum_2018_0.png&quot;
     alt=&quot;Computer Science Courses at Grinnell College&quot; /&gt;
&lt;/p&gt;
&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://132.161.132.157/drupal6/sites/default/files/CS_Curriculum_2018_0.pdf&quot;&gt;CS_Curriculum_2018.pdf&lt;/a&gt;&lt;/td&gt;&lt;td&gt;91.35 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/111">major</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/110">prerequisites</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/109">requirements</category>
 <enclosure url="http://132.161.132.157/drupal6/sites/default/files/CS_Curriculum_2018_0.pdf" length="93546" type="application/pdf" />
 <pubDate>Thu, 27 Aug 2009 16:11:13 +0000</pubDate>
 <dc:creator>walker</dc:creator>
 <guid isPermaLink="false">44 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Links to current courses</title>
 <link>http://132.161.132.157/drupal6/curriculum/current-courses</link>
 <description>&lt;h2&gt;Spring 2019&lt;/h2&gt;

&lt;p&gt;
&lt;a href=&quot;http://digitalage19.sites.grinnell.edu/&quot;&gt;CSC 105.01: The Digital Age&lt;/a&gt; (Rodrigues)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.cs.grinnell.edu/~rebelsky/Courses/CSC151/2019S/&quot;&gt;CSC 151.01: Functional problem solving&lt;/a&gt; (Rebelsky)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;http://www.cs.grinnell.edu/~hamidfah/courses/csc151spring2019/index.html&quot; --&gt;CSC 151.02: Functional problem solving&lt;!-- /a --&gt; (Hamid)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~weinman/courses/CSC161/2019S&quot;&gt;CSC 161.01: Imperative problem solving and data structures&lt;/a&gt;  (Weinman)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~johnsonba/CSC161/2019S&quot;&gt;CSC 161.02: Imperative problem solving and data structures&lt;/a&gt; (Johnson)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~rebelsky/Courses/CSC207/2019S/01/&quot;&gt;CSC 207.01: Object-oriented problem solving, data structures, and algorithms&lt;/a&gt;  (Rebelsky)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~rebelsky/Courses/CSC207/2019S/02/&quot;&gt;CSC 207.02: Object-oriented problem solving, data structures, and algorithms&lt;/a&gt;  (Rebelsky)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://unity.homelinux.net/courses/discrete-structures/&quot;&gt;CSC 208.01 and CSC 208.02: Discrete Structures&lt;/a&gt;  (Stone)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;https://www.cs.grinnell.edu/~curtsinger/teaching/2019S/CSC213/&quot; --&gt;CSC 213.01: Operating systems and parallel algorithms&lt;!-- /a --&gt;  (Curtsinger)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;http://www.cs.grinnell.edu/~weinman/courses/CSC262/2019S&quot; --&gt;CSC 262.01: Computer vision&lt;!-- /a --&gt;  (Weinman)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;http://vostinar.sites.grinnell.edu/csc-301-f18-analysis-of-algorithms/&quot; --&gt;CSC 301.01: Analysis of Algorithms&lt;!-- /a --&gt;  (Vostinar)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~johnsonba/CSC324/2019S/index.html&quot;&gt;CSC 324.01: Software design and development&lt;/a&gt;  (Johnson)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;http://vostinar.sites.grinnell.edu/csc-324-s19-software-design/&quot; --&gt;CSC 324.02: Software design and development&lt;!-- /a --&gt;  (Vostinar)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;http://www.cs.grinnell.edu/~hamidfah/courses/csc341spring2019/index.html&quot; --&gt;CSC 341: Automata, formal languages, and computational complexity&lt;!-- /a --&gt; (Hamid)
&lt;/p&gt;

&lt;p&gt;
&lt;!-- a href=&quot;https://www.cs.grinnell.edu/~curtsinger/teaching/2019S/CSC95/&quot; --&gt;CSC 395.01: Advanced operating systems&lt;!-- /a --&gt;  (Curtsinger)
&lt;/p&gt;

&lt;h2&gt;Fall 2018&lt;/h2&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.cs.grinnell.edu/~curtsinger/teaching/2018F/CSC151/&quot;&gt;CSC 151.01: Functional problem solving&lt;/a&gt; (Curtsinger)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~hamidfah/courses/csc151fall2018/index.html&quot;&gt;CSC 151.02: Functional problem solving&lt;/a&gt; (Hamid)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~walker/courses/161.fa18/&quot;&gt;CSC 161.01: Imperative problem solving and data structures&lt;/a&gt; (Walker)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~johnsonba/161.fa18/&quot;&gt;CSC 161.02: Imperative problem solving and data structures&lt;/a&gt; (Johnson)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://unity.homelinux.net/courses/computational-linguistics/&quot;&gt;CSC 205.01: Computational linguistics&lt;/a&gt; (Stone)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://unity.homelinux.net/courses/object-oriented-programming/&quot;&gt;CSC 207.01: Algorithms and object-oriented design&lt;/a&gt; (Stone)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~walker/courses/207.fa18/&quot;&gt;CSC 207.02: Algorithms and object-oriented design&lt;/a&gt;  (Walker)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://unity.homelinux.net/courses/discrete-structures/&quot;&gt;CSC 208.01: Discrete Structures&lt;/a&gt;  (Stone)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.cs.grinnell.edu/~curtsinger/teaching/2018F/CSC211/&quot;&gt;CSC 211.01: Computer organization and architecture&lt;/a&gt;  (Curtsinger)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~weinman/courses/CSC211/2018F&quot;&gt;CSC 211.02: Computer organization and architecture&lt;/a&gt;  (Weinman)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://vostinar.sites.grinnell.edu/csc-295-evolutionary-algorithms-and-artificial-life/&quot;&gt;CSC 295.01: Special topic, &quot;Evolutionary algorithms and artificial life&quot;&lt;/a&gt; (Vostinar)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://vostinar.sites.grinnell.edu/csc-301-f18-analysis-of-algorithms/&quot;&gt;CSC 301.01 and .02: Analysis of Algorithms&lt;/a&gt;  (Vostinar)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~johnsonba/CSC324/2018F/index.html&quot;&gt;CSC 324.01: Software design and development&lt;/a&gt;  (Johnson)
&lt;/p&gt;

&lt;p&gt;
CSC 326.01: Software development leadership  (Johnson)  (Leadership roles within &lt;a href=&quot;http://www.cs.grinnell.edu/~johnsonba/CSC324/2018F/index.html&quot;&gt;CSC 324.01: Software design and development&lt;/a&gt;  (Johnson)) 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.cs.grinnell.edu/~hamidfah/courses/csc341fall2018/index.html&quot;&gt;CSC 341: Automata, formal languages, and computational complexity&lt;/a&gt;  (Hamid)
&lt;/p&gt;

&lt;h3&gt;&lt;a href=&quot;/drupal6/node/31&quot;&gt;Links to previously offered courses&lt;/a&gt;&lt;/h3&gt;</description>
 <comments>http://132.161.132.157/drupal6/curriculum/current-courses#comments</comments>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/7">courses</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <pubDate>Sun, 02 Aug 2009 19:15:11 +0000</pubDate>
 <dc:creator>stone</dc:creator>
 <guid isPermaLink="false">30 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Upper-division courses and the computer science major</title>
 <link>http://132.161.132.157/drupal6/curriculum/upper-level</link>
 <description>&lt;p&gt;
&lt;img src=&quot;/drupal6/sites/default/files/20181010.classroom.computerscience.232.jpg&quot;
        alt=&quot;Collaborative student problem solving&quot; 
        style=&quot;padding:10px; float: right&quot;
 /&gt;
&lt;/p&gt;

&lt;h3&gt;Core Courses, Electives, and the Computer Science Major&lt;/h3&gt;

&lt;p&gt;
Grinnell&#039;s introductory courses introduce fundamental views of problem solving 
and different supporting programming languages.  Upper-level courses include several &lt;a href=&quot;http://www.cs.grinnell.edu/drupal6/curriculum#core&quot;&gt;core courses&lt;/a&gt; and many &lt;a href=&quot;http://www.cs.grinnell.edu/drupal6/curriculum#electives&quot;&gt;elective courses&lt;/a&gt;.  The major provides some flexibility to allow students to follow their personal interests and career goals.
&lt;/p&gt;

&lt;a id=&quot;core&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Requirements for the CS Major&lt;/h3&gt;


&lt;p&gt;
The Computer Science Major balances requirements in foundational areas with some flexibility.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Algorithms and theory
&lt;ul&gt;
&lt;li&gt;
CSC 301, &lt;i&gt;Analysis of Algorithms&lt;/i&gt; (fundamental problem-solving techniques,
corresponding data structures, and analysis of efficiency)
&lt;/li&gt;

&lt;li&gt;
CSC 341, &lt;i&gt;Automata, Formal Languages, and Computational Complexity&lt;/i&gt;
(the theory of computation&amp;mdash; connecting with perspectives of the liberal arts)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;i&gt;&quot;Systems&quot; courses:&lt;/i&gt; (one required, both strongly recommended)

&lt;ul&gt;
&lt;li&gt;
CSC 211, &lt;i&gt;Computer Organization and Architecture&lt;/i&gt; (hardware basics)
&lt;/li&gt;

&lt;li&gt;
CSC 213, &lt;i&gt;Operating Systems and Parallel Algorithms&lt;/i&gt; 
(fundamentals of parallel computation)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
Software development
&lt;ul&gt;
&lt;li&gt;
CSC 324, &lt;i&gt;Software Design and Development&lt;/i&gt; (software lifecycle, agile development methods, professional tools, and software design principles with application to a large-scale project for a local organization/client)
&lt;/li&gt;

&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
Electives (4 credits)
&lt;/li&gt;

&lt;li&gt;
Supporting mathematics
&lt;ul&gt;
&lt;li&gt;
CSC 208/MAT 208 Discrete Structures or MAT 218 Combinatorics (foundational mathematics used throughout computing)
&lt;/li&gt;
&lt;li&gt;
Math elective to support specific student interests and goals
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;br style=&quot;clear:right&quot; /&gt;

&lt;img src=&quot;/drupal6/sites/default/files/20181010.classroom.computerscience.322.jpg&quot;
        alt=&quot;Students working on circuits lab for Computer Organization and Architecture&quot; 
        style=&quot;padding:10px; float: left&quot;
 /&gt;

&lt;a id=&quot;extended-major&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Computer Science Major to meet international curricular guidelines&lt;/h3&gt;

&lt;p&gt;
Grinnell&#039;s regular Computer Science Major requires 32 credits of computer science and 8 credits in supporting mathematics.  This level of background supports many student interests and career goals.  However, students interested in careers in computing are advised that the following courses should be taken either as Electives for the Computer Science Major or as additional courses:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
    CSC 211 - Computer Organization and Architecture 4 credits
&lt;/li&gt;
&lt;li&gt;
    CSC 213 - Operating Systems and Parallel Algorithms 4 credits
 &lt;/li&gt;
&lt;li&gt;
   CSC 214 - Computer and Network Security 2 credits
&lt;/li&gt;
&lt;li&gt;
    CSC 216 - Computer Networks 2 credits
  &lt;/li&gt;
&lt;li&gt;
  CSC 312 - Programming Language Implementation 2 credits
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
With these selections, students cover the full range of recommendations recommended by  Association for Computer Machinery (ACM), the Computer Society of the Institute of Electrical and Electronics Engineers (IEEE-CS).  This extended major includes 32 credits of computer science and 8 credits in supporting mathematics and is identified by the professional societies as a &lt;a href=&quot;http://www.cs.grinnell.edu/drupal6/curriculum/international-recognition&quot;&gt;curricular exemplar&lt;/a&gt;.
&lt;/p&gt;

&lt;br style=&quot;clear:left&quot; /&gt;

&lt;a id=&quot;electives&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Electives, Mentored Advanced Projects (MAPs), Special Topics&lt;/h3&gt;

&lt;p&gt;
&lt;img src=&quot;/drupal6/sites/default/files/20181010.classroom.computerscience.274.jpg&quot;
        alt=&quot;Students discussing their project work&quot; 
        style=&quot;padding:10px; float: right&quot;
 /&gt;
&lt;/p&gt;

&lt;p&gt;
The Computer Science Department offers a range of electives to extend 
student backgrounds beyond the undergraduate core.  In addition to
regularly scheduled courses, special topics courses address particular
interests of both students and faculty.  
&lt;/p&gt;

&lt;p&gt;

Some recently-offered electives have included artificial intelligence,
computer networks, computer vision,  computational linguistics, 
and evolutionary algorithms, and data visualization.  
&lt;/p&gt;

&lt;p&gt;
Complementing regular courses, students work with faculty on a wide
range of guided reading courses, independent projects, 
and &lt;a href=&quot;/drupal6/curriculum/student-faculty-research&quot;&gt;mentored advanced projects&lt;/a&gt;.
&lt;/p&gt;

&lt;br style=&quot;clear:right&quot; /&gt;

</description>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/20">algorithms</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/23">architecture</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/21">automata</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/530">community project</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/18">core</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/28">database</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/19">elective</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/24">operating systems</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/27">software design</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/22">theory of computation</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/17">upper-division</category>
 <pubDate>Tue, 28 Jul 2009 18:25:02 +0000</pubDate>
 <dc:creator>walker</dc:creator>
 <guid isPermaLink="false">7 at http://132.161.132.157/drupal6</guid>
</item>
<item>
 <title>Curriculum</title>
 <link>http://132.161.132.157/drupal6/curriculum</link>
 <description>&lt;h3&gt;&lt;a href=&quot;http://catalog.grinnell.edu/preview_program.php?catoid=16&amp;poid=1588&quot;&gt;Computer Science in the &lt;i&gt;Academic Catalog&lt;/i&gt;&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;
&lt;/p&gt;

&lt;h3&gt;Vital Elements of Grinnell&#039;s Computer Science Curriculum&lt;/h3&gt;

&lt;img src=&quot;/drupal6/sites/default/files/20181010.classroom.computerscience.187.jpg&quot;
        alt=&quot;Faculty and student interaction&quot; 
        style=&quot;padding:10px; float: right&quot;
 /&gt;

&lt;p&gt;
Grinnell&#039;s computer science curriculum has several special strengths, 
including:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;/drupal6/curriculum/intro&quot;&gt;Innovative introductory courses&lt;/a&gt; 
that emphasize &lt;a href=&quot;#paradigms&quot;&gt;multiple views of problem solving 
and several programming languages,&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;a href=&quot;curriculum/upper-level&quot;&gt;Curricular options&lt;/a&gt; cover the core of undergraduate computing and also provide flexibility to address student interests and career options.
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;#core&quot;&gt;Core courses&lt;/a&gt; explore fundamental ideas, principles, algorithms, structures, and 
problem solving techniques with care, rigor, and thoroughness.
&lt;/li&gt;

&lt;li&gt;
One or more &lt;a href=&quot;#project&quot;&gt;software development projects&lt;/a&gt; connect principles and practices with experience developing software to meet client needs and serve the community
&lt;/li&gt;

&lt;li&gt;
&lt;a href=&quot;#electives&quot;&gt;Electives&lt;/a&gt; that build upon core topics and provide breadth.
&lt;/li&gt;
&lt;/ul&gt;

&lt;/li&gt;&lt;li&gt;
Balance of theory and application,
&lt;/li&gt;


&lt;li&gt;
&lt;a href=&quot;/drupal6/curriculum/pedagogy&quot;&gt;Varied and innovative pedagogy,&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;
Extensive opportunities for &lt;a href=&quot;/curriculum/student-faculty-research&quot;&gt;student-faculty
research.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;br style=&quot;clear:right&quot; /&gt;

&lt;a id=&quot;paradigms&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Problem-Solving Perspectives&lt;/h3&gt;  

&lt;p&gt;
Computer science recognizes at least four problem-solving approaches as
being fundamental to work in the discipline.  Each approach involves a
distinct way of thinking, and each is supported by a range of computer
languages.  These paradigms may be outlined as follows: 
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;i&gt; Functional Paradigm:  &lt;/i&gt; &lt;br /&gt;

Supported by such languages as Scheme, LISP, ML, Miranda
&lt;/li&gt;

&lt;li&gt; &lt;i&gt; Imperative Paradigm:  &lt;/i&gt; &lt;br /&gt;
Supported by such languages as Pascal, C, FORTRAN
&lt;/li&gt;

&lt;li&gt; &lt;i&gt; Object-Oriented Paradigm:  &lt;/i&gt; &lt;br /&gt;
Supported by such languages as Smalltalk, C++, Java
&lt;/li&gt;

&lt;li&gt; &lt;i&gt; Logic Paradigm:  &lt;/i&gt; &lt;br /&gt;
Supported by such languages as Prolog, G&amp;ouml;del
&lt;/li&gt;
&lt;/ul&gt; 

&lt;img src=&quot;/drupal6/sites/default/files/20181010.classroom.computerscience.122.jpg&quot;
        alt=&quot;Intro. CS lab work&quot;
        style=&quot;padding:10px; float: left&quot;
 /&gt;


&lt;p&gt;
Since different approaches have advantages for different problems,
people involved with computing should be comfortable with several of these
paradigms.  
&lt;/p&gt;

&lt;p&gt;
Grinnell&#039;s introductory courses provide students with considerable practice 
and insight for each of these approaches early in the curriculum, introducing 
the functional, object-oriented, and imperative paradigms.  
&lt;/p&gt;

&lt;br style=&quot;clear:left&quot; /&gt;

&lt;a id=&quot;core&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Core courses in theory and systems&lt;/h3&gt;

&lt;p&gt;
Grinnell&#039;s curriculum identifies both theory and systems as core areas, and the overall curriculum has achieved &lt;a href=&quot;curriculum/international-recognition&quot;&gt;international recognition&lt;/a&gt; for four-year, undergraduate computer science programs.  
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;i&gt;Algorithms and theory:&lt;/i&gt;  All majors take two foundational courses:
&lt;ul&gt;
&lt;li&gt;
Analysis of algorithms
&lt;/li&gt;
&lt;li&gt;
Automata, formal languages, and computational complexity
&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;Systems:&lt;/i&gt;  All majors take at least one systems course; both of the following are strongly recommended
&lt;ul&gt;
&lt;li&gt;
Computer organization and architecture
&lt;/li&gt;
&lt;li&gt;
Operating systems and parallel algorithms
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;

&lt;img src=&quot;/drupal6/sites/default/files/20180404.plantation.project114.jpg&quot;
        alt=&quot;Students working in immersive experience lab&quot; 
        style=&quot;padding:10px; float: right&quot; 
 /&gt;

&lt;a id = &quot;project&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Software development project(s)&lt;/h3&gt;

&lt;p&gt;
People use computers because they can provide services and help in the solving of problems. Thus, many courses and much research throughout the College utilize various aspects of computing.  The computer science curriculum includes two upper-level courses with a strong software-development orientation.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;i&gt;Software Design and Development&lt;/i&gt; examines methodologies for the effective development of large-scale software packages and uses a team approach to apply principles to actual projects that serve the needs of clients within the local community.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Software Development Leadership&lt;/i&gt; offers experience working with clients and mentoring and supervising peers in teams developing software for community organizations.&lt;/li&gt;
&lt;/ul&gt;

&lt;a id = &quot;electives&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Electives provide options and flexibility&lt;/h3&gt;
&lt;p&gt;
The computer science curriculum includes several electives, in addition to courses already mentioned.  Students choose electives as well as foundational courses, as they work with their adviser about appropriate alternatives to support their interests and career goals.  The following list of electives illustrates the range of topics offered regularly.
&lt;/p&gt;

&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;
Artificial intelligence
&lt;/li&gt;
&lt;li&gt;
Computer vision
&lt;/li&gt;
&lt;li&gt;
Computer networks
&lt;/li&gt;
&lt;li&gt;
Computer security
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;
Human-computer interaction
&lt;/li&gt;
&lt;li&gt;
Computational linguistics
&lt;/li&gt;
&lt;li&gt;
Implementation of programming languages
&lt;/li&gt;
&lt;li&gt;
Learning from alumni
&lt;/li&gt;
&lt;li&gt;
Thinking in C and Unix
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;



&lt;br style=&quot;clear:right&quot; /&gt;
</description>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/8">classes</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/7">courses</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/9">curriculum</category>
 <pubDate>Tue, 28 Jul 2009 15:24:14 +0000</pubDate>
 <dc:creator>walker</dc:creator>
 <guid isPermaLink="false">5 at http://132.161.132.157/drupal6</guid>
</item>
</channel>
</rss>
