This course covers special topics of current interest and usually differs each time it is offered.
Prerequisite: varies with topic. (Fall and/or Spring)
Fall 2009
Advanced Topics in Memory Systems (290A):
Advanced topics in the organization, architecture, and implementation
of modern memory subsystems. Topics include power, performance,
reliability, and quality-of-serivce issues in DRAM memory systems and
Flash-based SSDs; high-performance memory controllers and interfaces;
memory system design for datacenters and enterprise systems; and an
introduction to emerging resistive memory technologies. The course
will have a significant research component, where students will learn
the background needed to tackle existing and upcoming research
problems in this area, complete a project, and write a high-quality
paper about it. Prerequisites CSC 252 or ECE 201/401 or permission of instructor.
Human Machine Interface (290B): The course will involve the examination of the design, implementation, and evaluation of human-computer interfaces. Class lectures will involve studying theoretical methods for interface design and evaluation including requirements gathering, usability heuristics, user interface inspections, usability studies, information visualization, and prototyping. These will be augmented with case studies of interface successes and failures. Students will apply the theoretical knowledge to assignments which involve portions of the design, implementation, and evaluation cycle. Prerequisites: CSC 171 or permission of instructor. Must be able to program in Java or C++.
Spring 2010
Collaborative Software Engineering (290A): Running on low-cost, powerful computers,
immense
storage, and ubiquitous networks, a new generation of software has
radically changed how information is distributed and accessed and is
opening new possibilities in how (fast) knowledge is created and
used. This revolution has been compared to the advent of printing,
and the pertinent expertise and skill are considered as basic and
essential as reading and writing.
This experimental course teaches principles and practices of collaborative software development and its use in converting data into knowledge and knowledge into tools. The topics include fundamentals of programming (more for organizing information than for managing computers), lessons from past information systems, and current practice and tools for teamwork and (virtual) collaboration. The main assignments are a series of group projects including the final project of developing a possibly on-line recommendation system. The projects will be evaluated based on the design, implementation, and deployment, including an end-of-semester competition based on a user survey. Prerequisites: CSC 173; CSC 254 recommended.
Machines and
Consciousness (190B/290B) An exploration of the possibility of
consciousness in machines, both in the sense of perceptual
awareness and self-awareness. Readings are from the AI literature
as well as from philosophy and cognitive science, with emphasis on
scientific and computational aspects. The course will be suitable
for writing credit. Prerequisites: An introductory computer
programming course (CSC161 or CSC171). (Cross-listed with CSC190B - see course description for prerequisites.)
Advanced Robotics: (290C) This course is an introduction to the basics of modeling, design, planning and control of robotics systems. It includes survey coverage of relevant results from geometry, kinematics, statics, dynamics and control theory. Lectures, readings, labs and weekly problems sets. Prerequisites: CSC 172 or equivalent experience required.
Last changed 8/14/09 by Marty Guenther (marty@cs.rochester.edu)