16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Add:<br />

• Mathematical Foundations of Computer Science – this course would introduce topics<br />

from Discrete Mathematics in a more CS-focused manner. Basic computability topics<br />

could be integrated into this course.<br />

• Introduction to Software Design – this could be a third course following our traditional<br />

introductory sequence. It would introduce basic topics from software engineering and<br />

HCI, preparing students even better for our project electives. This would also have the<br />

side effect of freeing up time in those electives that is currently spent on basic project<br />

management and design issues.<br />

• Topics in Security and Parallel Processing to existing courses/electives as appropriate.<br />

Though a number of the Information Management learning outcomes fit well within a liberal arts<br />

context, quite a few seem less appropriate. Similarly, the topics we would introduce in our<br />

Software Design course would not literally follow the <strong>CS2013</strong> Software Engineering core.<br />

Appendix: Information on Individual Courses<br />

A note on tutorial format courses: Modeled on Oxford-style tutorials, these courses offer<br />

students the opportunity to take a heightened responsibility for their own intellectual<br />

development. Tutorials are typically limited to an enrollment of 10. Each week the professor<br />

sets the agenda, but the students are responsible for working through the material. Once each<br />

week, students meet in pairs with the instructor to present their work and together delve even<br />

more deeply into the material.<br />

CSCI 134 – Introduction to Computer Science<br />

This course introduces fundamental ideas in computer science and builds skills in the design,<br />

implementation, and testing of computer programs. Students implement algorithms in the Java<br />

programming language with a strong focus on constructing correct, understandable, and efficient<br />

programs. Students explore the material through the application area of computer networks.<br />

Topics covered include object-oriented programming, control structures, arrays, recursion, and<br />

event-driven programming.<br />

Format: lecture/laboratory<br />

http://dept.cs.williams.edu/~cs134/<br />

CSCI 136 – Data Structures and Advanced Programming<br />

This course builds on the programming skills acquired in Computer Science 134. It couples work<br />

on program design, analysis, and verification with an introduction to the study of data structures.<br />

Students are introduced to: lists, stacks, queues, trees, hash tables, and graphs. Students are<br />

expected to write several programs, ranging from very short programs to more elaborate systems.<br />

Emphasis is placed on the development of clear, modular programs that are easy to read, debug,<br />

verify, analyze, and modify.<br />

Format: lecture/laboratory<br />

http://dept.cs.williams.edu/~jeannie/cs136/index.html<br />

- 510 -

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

Saved successfully!

Ooh no, something went wrong!