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.
This is a textbook for first year Computer Science. Algorithms and Data Structures With Applications to Graphics and Geometry.
This is a textbook for first year Computer Science. Algorithms and Data Structures With Applications to Graphics and Geometry.
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.
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.
This set of cards can be used in a workshop or a "Maker Faire" type of event. They give quick tidbits of code for building mini-apps with App Inventor. Use them in exhibits, parent nights, STEM fairs, after-school clubs, or anywhere that you need to get people jump-started using App Inventor.
This course introduces students to the basic knowledge representation, problem solving, and learning methods of artificial intelligence. Upon completion of 6.034, students should be able to develop intelligent systems by assembling solutions to concrete computational problems, understand the role of knowledge representation, problem solving, and learning in intelligent-system engineering, and appreciate the role of problem solving, vision, and language in understanding human intelligence from a computational perspective.
The excitement for the creative power of programming and the questions about how to assess students’ creative work prompted us to undertake this project, which was funded through the generous support of Google’s Computer Science Education Research program. In this project, we were guided by a central question: How do K-12 computing teachers assess creative programming work? Our approach was simple: during the summer of 2019, we talked to 80 K–12 computing teachers across the U.S. about how they supported and assessed creative work in programming activities. In our conversations, typically between two teachers and a member of our team, teachers brought a pair of assessment examples and used those examples as the foundation for a broader discussion about creativity, programming, and assessment.
Through these conversations, as well as an examination of the assessment research literature, we identified key principles that guide the assessment of creative programming activities:
-Foster a classroom culture that values assessment.
-See student process as well as product.
-Understand what is creative for the student.
-Support students by incorporating feedback from multiple perspectives.
-Scaffold opportunities for students to develop judgment of their own work.
Thanks to these incredible teachers who met with us and generously shared their thinking about their practice, we were able to gather more than 300 assessments, ranging from class project rubrics to examples of student project portfolios. In this document, we are sharing our understandings in two ways: (1) a collection of four case studies, and (2) a selection of 50 assessments. The case studies tell the stories of four teachers who are putting the guiding principles of creative assessment into practice in the complex, real-life contexts of their classrooms.
The 50 assessments represent a curated collection of real assessments that teachers are using in their classrooms, accompanied by quotes from teachers about what the assessment of creative work entails.
This course provides a challenging introduction to some of the central ideas of theoretical computer science. Beginning in antiquity, the course will progress through finite automata, circuits and decision trees, Turing machines and computability, efficient algorithms and reducibility, the P versus NP problem, NP-completeness, the power of randomness, cryptography and one-way functions, computational learning theory, and quantum computing. It examines the classes of problems that can and cannot be solved by various kinds of machines. It tries to explain the key differences between computational models that affect their power.
Graduate-level introduction to automatic speech recognition. Provides relevant background in acoustic theory of speech production, properties of speech sounds, signal representation, acoustic modeling, pattern classification, search algorithms, stochastic modeling techniques (including hidden Markov modeling), and language modeling. Examines approaches of state-of-the-art speech recognition systems. Introduces students to the rapidly developing field of automatic speech recognition. Its content is divided into three parts. Part I deals with background material in the acoustic theory of speech production, acoustic-phonetics, and signal representation. Part II describes algorithmic aspects of speech recognition systems including pattern classification, search algorithms, stochastic modelling, and language modelling techniques. Part III compares and contrasts the various approaches to speech recognition, and describes advanced techniques used for acoustic-phonetic modelling, robust speech recognition, speaker adaptation, processing paralinguistic information, speech understanding, and multimodal processing.
The PFACS game engages students in playing the role of a music producer who must use data and computational thinking to promote their artist’s careers. “Data and Analysis” is one of five strands in the CS K-12 Framework — and it is a strand that readily bridges to mathematics and science content that you already teach. By giving students time to play the game and then having related classroom discussions, you can gain insight into your students’ progress in understanding these concepts.
This game does NOT require any coding skills nor knowledge of any programming language. It is about making choices using computational thinking concepts, not about writing code.
Beats Empire was designed for teachers:
In middle schools classrooms
That integrate data science, computational thinking and related concepts
For about an hour of use spread over 2-3 class periods
Where students have access to any computer, laptop or desktop, with Chrome or Firefox browser (not recommended for tablets or phones).
The key goals of Beats Empire are:
Students explore how their data skills addresses a real world challenge
Students gain career awareness of attractive data science jobs
Teachers increase their understanding of what students know and can do
In this lesson, students use the Bee Bots to move throughout their space. If Bee Bots are inaccessible, the lesson can be adapted by using the online coding platform. 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.
This textbook was written for a community college introductory course in spreadsheets utilizing Microsoft Excel. While the figures shown utilize Excel 2016, the textbook was written to be applicable to other versions of Excel as well. The book introduces new users to the basics of spreadsheets and is appropriate for students in any major who have not used Excel before.
Study of an area of current interest in theoretical computer science. Topic varies from term to term. This course is a study of Behavior of Algorithms and covers an area of current interest in theoretical computer science. The topics vary from term to term. During this term, we discuss rigorous approaches to explaining the typical performance of algorithms with a focus on the following approaches: smoothed analysis, condition numbers/parametric analysis, and subclassing inputs.
Quick introduction, then two short videos about Steve Jobs and Bill Games, then a description of computational artifacts and creative process.
In this week 1 of 6 hyperdocs, students are presented a problem and solve it through the use of one of the Computational Thinking strategies. This lesson is designed with K-5 in mind, and can be adapted to meet the needs of any classroom.Week 1 Problem: James has just learned that he has to stay inside for a few weeks and can’t play with his friends. He has an iPad, but his mom said he can only have it for 30 minutes a day. He also has toys, but says he is bored of them and has nothing fun to do. His mom said he could have anything in her craft room, but he doesn’t know what to do with the boxes, string, fabric, tape, sticks, and paint. What can James do to make his day fun?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.
Social media is an important tool for learning about current events and practicing active and informed citizenship. However, fake Twitter accounts called ‘bots’ have been used to try to influence public opinion—and not always for the better.About 30 percent of social media users have been deceived by a computer-generated bot at one point or another. Students will watch the PBS NewsHour video, ‘Cracking the stealth political influence of bots,’ which examines how bots play a role in influencing public opinion and design their own bot to help spread awareness about an issue they care about.
Students will take a sequence of events or steps for some process and create an algorithm. This could apply to any content area. They will display the algorithm in flowchart form. This activity can be modified for all grade levels and content areas.