In this lesson, students will be presented with a project that they will decompose with their partners without having access to its code and without access to a computer. Students will work in teams to recreate the project shown in the following lesson.
" This is a graduate course on the design and analysis of algorithms, covering several advanced topics not studied in typical introductory courses on algorithms. It is especially designed for doctoral students interested in theoretical computer science."
Following a brief classroom discussion of relevant principles, each student completes the paper design of several advanced circuits such as multiplexers, sample-and-holds, gain-controlled amplifiers, analog multipliers, digital-to-analog or analog-to-digital converters, and power amplifiers. One of each student's designs is presented to the class, and one may be built and evaluated. Associated laboratory emphasizing the use of modern analog building blocks. Alternate years.
Recent results in cryptography and interactive proofs. Lectures by instructor, invited speakers, and students. Alternate years. The topics covered in this course include interactive proofs, zero-knowledge proofs, zero-knowledge proofs of knowledge, non-interactive zero-knowledge proofs, secure protocols, two-party secure computation, multiparty secure computation, and chosen-ciphertext security.
" This course covers concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming Assignments and Labs are an integral part of the subject. There will be extensive programming Assignments and Labs, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or some other "functional" language."
In this unplugged lesson, students will learn how to develop algorithms and the importance of providing specific instructions while making a simple deli sandwich.
The Big Idea: Why are detailed instructions important when communicating ideas with others?
In this unplugged lesson, students will learn how to develop algorithms and the importance of providing specific instructions while making a simple deli sandwich. This lesson is part of the Virginia K-12 Computer Science Pipeline which is partly funded through a GO Virginia grant in partnership with Chesapeake Public Schools, Loudoun County Public Schools, and the Loudoun Education Foundation.
In this unplugged CS lesson, students will learn the importance of giving detailed directions when sharing ideas. This transfers to programming when students are told that when they provide instructions to the computer, they too need to be detailed and specific. This lesson is part of the Virginia K-12 Computer Science Pipeline which is partly funded through a GO Virginia grant in partnership with Chesapeake Public Schools, Loudoun County Public Schools, and the Loudoun Education Foundation.
In-depth study of an active research topic in computer graphics. Topics change each term. Readings from the literature, student presentations, short assignments, and a programming project. Animation is a compelling and effective form of expression; it engages viewers and makes difficult concepts easier to grasp. Today's animation industry creates films, special effects, and games with stunning visual detail and quality. This graduate class will investigate the algorithms that make these animations possible: keyframing, inverse kinematics, physical simulation, optimization, optimal control, motion capture, and data-driven methods. Our study will also reveal the shortcomings of these sophisticated tools. The students will propose improvements and explore new methods for computer animation in semester-long research projects. The course should appeal to both students with general interest in computer graphics and students interested in new applications of machine learning, robotics, biomechanics, physics, applied mathematics and scientific computing.
Alquimétricos is a collection of open source didactic toys: building blocks to mount structures and learn-while-playing about geometry, maths, architecture, mechanics, physics, chemistry, and much more. The initiative is focused on the design of DIY educational materials which are meant to be produced using a wide range of procedures, from ultra-low-cost-low-tech tool set (scissors and nails) to high-end-FabLab-standards (laser cutter, CNC milling, 3D printing), using an equally wide ranged material sort, including recycled packaging plastics, rubbers, cloths and cardboard composites throughout textile-embedded polymers, organic fibers or even lab-harvested fungus. Alquimétricos are meant to play, learn and share.
This course will provide an overview of a new vision for Human-Computer Interaction (HCI) in which people are surrounded by intelligent and intuitive interfaces embedded in the everyday objects around them. It will focus on understanding enabling technologies and studying applications and experiments, and, to a lesser extent, it will address the socio-cultural impact. Students will read and discuss the most relevant articles in related areas: smart environments, smart networked objects, augmented and mixed realities, ubiquitous computing, pervasive computing, tangible computing, intelligent interfaces and wearable computing. Finally, they will be asked to come up with new ideas and start innovative projects in this area.
Students will work with a partner to write, solve, check, and animate a division story problem based on a division expression using a sharing model.