16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CSC 312 – Implementation of Programming Languages (2 credits, new course)<br />

http://www.cs.grinnell.edu/courses/csc312<br />

Because Grinnell’s introductory sequence follows a multi-paradigm approach, students are<br />

exposed to many of the core concepts of a typical programming languages course early in their<br />

careers. Hence, in the past, faculty members chose their own approach to the programming<br />

languages course. Comparison with CS 2013 recommendations motivated a focus on a smaller<br />

core of topics, particularly on parsing and semantics, grounded in implementation. The course<br />

will likely draw upon the first half of Friedman and Wand’s Essentials of Programming<br />

Languages.<br />

CSC 321 – Tools and Principles of Software Development (2 credits, new course) and<br />

CSC 322 – Community-Based Software Development (2 credits, new course)<br />

http://www.cs.grinnell.edu/courses/csc321<br />

http://www.cs.grinnell.edu/courses/csc322<br />

Over the past few years, the department has been considering revisions to its software<br />

development curriculum. At the core of this revision is the idea of having students work on a<br />

large, multi-semester project that will serve a community organization. Following the Purdue<br />

model, students will have the opportunity to work on the project in multiple semesters, thereby<br />

having the chance to work on different stages of a project and to explore different roles in the<br />

project. To achieve this approach, earlier 4-credit, project-based courses will be split into two<br />

courses. CSC 322 is the “hands on” portion of the course which students will be able to repeat<br />

for credit. CSC 321 provides the foundations – training in methodologies of software<br />

development, some underlying theory, and a bit of practice in core issues. Exploration of CS<br />

2013 gave further encouragement to try this approach and guided selection of topics essential for<br />

CSC 321.<br />

CSC 341 – Automata, Formal Languages, and computational Complexity<br />

http://www.cs.grinnell.edu/courses/csc341<br />

CSC 341 explores the logical and mathematical foundations of computer science. Topics<br />

covered in some depth include models of computation, the Chomsky language hierarchy,<br />

solvable and unsolvable problems, and P and NP complexity classes. The course follows a<br />

formal and rigorous style, and students write many formal proofs to explain logical arguments.<br />

Although many of the core topics in CSC 341 are designated as Tier 3 in CS 2013, we consider<br />

them essential knowledge for our liberal arts students.<br />

CSC 364 – Computer Networks (2 credits, new version of earlier 4-credit course)<br />

http://www.cs.grinnell.edu/courses/csc364<br />

The previous, 4-credit course focused on the communications protocols used in computer<br />

networks — their functionality, specification, verification, implementation, and performance.<br />

The course also considered the use of network architectures and protocol hierarchies to provide<br />

more complex services. Existing protocols and architectures provided the basis of discussion and<br />

study. The revised, 2-credit course is envisioned to discuss network layers and congestion<br />

management, but various topics in the 4-credit version will either be reduced or omitted in this<br />

smaller version. In addition to collaborative exercises and laboratory assignments, the new<br />

course is likely to include a <strong>final</strong> project.<br />

- 491 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!