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.

CSCI 237 – Computer Organization<br />

This course studies the basic instruction set architecture and organization of a modern computer.<br />

Over the semester the student learns the fundamentals of translating higher level languages into<br />

assembly language, and the interpretation of machine languages by hardware. At the same time,<br />

a model of computer hardware organization is developed from the gate level upward. Final<br />

projects focus on the design of a complex control system in hardware or firmware.<br />

Format: lecture/laboratory<br />

CSCI 256 – Algorithm Design and Analysis<br />

This course investigates methods for designing efficient and reliable algorithms. It introduces<br />

several algorithm design strategies that build on data structures and programming techniques<br />

introduced in Computer Science 136. These include induction, divide-and-conquer, dynamic<br />

programming, and greedy algorithms. Particular topics of study include graph theory, hashing,<br />

and advanced data structures.<br />

Format: lecture<br />

See course exemplar in Appendix C<br />

CSCI 334 – Principles of Programming Languages<br />

This course examines the concepts and structures governing the design and implementation of<br />

programming languages. It presents an introduction to the concepts behind compilers and runtime<br />

representations of programming languages; features of programming languages supporting<br />

abstraction and polymorphism; and the procedural, functional, object-oriented, and concurrent<br />

programming paradigms. Programs are required in languages illustrating each of these<br />

paradigms.<br />

Format: lecture<br />

See course exemplar in Appendix C<br />

CSCI 361 – Theory of Computation<br />

This course introduces a formal framework for investigating both the computability and<br />

complexity of problems. Students study several models of computation including finite<br />

automata, regular languages, context-free grammars, and Turing machines. Topics include the<br />

halting problem and the P versus NP problem.<br />

Format: lecture<br />

http://dept.cs.williams.edu/~heeringa/classes/cs361/f12/<br />

CSCI 336 – Computer Networks<br />

This course explores the principles underlying the design of computer networks. It examines<br />

techniques for transmitting information efficiently and reliably over a variety of communication<br />

media. It looks at the addressing and routing problems that must be solved to ensure that<br />

transmitted data gets to the desired destination. Students come to understand the impact that the<br />

distributed nature of all network problems has on their difficulty. The course examines the ways<br />

- 511 -

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

Saved successfully!

Ooh no, something went wrong!