Microcontrollers are the brains of the electronic world, but in order to …
Microcontrollers are the brains of the electronic world, but in order to play with one, you must first get it connected! For this maker challenge, students learn how to connect their Arduino microcontroller circuit boards to computers. First, students are walked through the connection process, helped to troubleshoot common pitfalls, and write their first Arduino programs (setup and loop functions, semicolons, camel case, pin 13 LED). Then they are given the open-ended challenge to create their own blinking LED code—such as writing Morse code messages and mimicking the rhythm of a heartbeat. This practice helps students become comfortable with the fundamental commands before progressing to more difficult programs.
This book introduces concepts in mobile, autonomous robotics to 3rd-4th year students …
This book introduces concepts in mobile, autonomous robotics to 3rd-4th year students in Computer Science or a related discipline. The book covers principles of robot motion, forward and inverse kinematics of robotic arms and simple wheeled platforms, perception, error propagation, localization and simultaneous localization and mapping. The cover picture shows a wind-up toy that is smart enough to not fall off a table just using intelligent mechanism design and illustrate the importance of the mechanism in designing intelligent, autonomous systems. This book is open source, open to contributions, and released under a creative common license.
Data Carpentry lesson to learn how to work with Amazon AWS cloud …
Data Carpentry lesson to learn how to work with Amazon AWS cloud computing and how to transfer data between your local computer and cloud resources. The cloud is a fancy name for the huge network of computers that host your favorite websites, stream movies, and shop online, but you can also harness all of that computing power for running analyses that would take days, weeks or even years on your local computer. In this lesson, you’ll learn about renting cloud services that fit your analytic needs, and how to interact with one of those services (AWS) via the command line.
Developed by the NYCDOE CS education team, the Introduction to Computational Media …
Developed by the NYCDOE CS education team, the Introduction to Computational Media is a yearlong (108 hours) creative computing course for high schools using the open source Javascript library p5.js. By understanding how code can be a medium for creative expression, students will learn the fundamentals of computer science while designing and prototyping interactive projects that run on a browser. Additionally, students will learn how HTML/CSS elements can interact with p5.js to fully take advantage of developing content for a browser. This course has been implemented in NYC schools via CS4All’s Software Engineering Program (SEP), revised by classroom teachers with guidance from the Processing Foundation, and aligns with the CS4All Blueprint for CS education that emphasizes a hands-on CS approach called creative computing. Watch this video and view this fact sheet for more information.
Introduction to Computer Graphics is a free, on-line textbook covering the fundamentals …
Introduction to Computer Graphics is a free, on-line textbook covering the fundamentals of computer graphics and computer graphics programming. This book is meant for use as a textbook in a one-semester course that would typically be taken by undergraduate computer science majors in their third or fourth year of college.
Welcome to the website for An Introduction to Computer Networks, a free …
Welcome to the website for An Introduction to Computer Networks, a free and open general-purpose computer-networking textbook, complete with diagrams and exercises. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP. Particular attention is paid to congestion; other special topics include queuing, real-time traffic, network management, security and the ns simulator.
The book is suitable as the primary text for an undergraduate or introductory graduate course in computer networking, as a supplemental text for a wide variety of network-related courses, and as a reference work.
Welcome to the website for An Introduction to Computer Networks, a free …
Welcome to the website for An Introduction to Computer Networks, a free and open general-purpose computer-networking textbook, complete with diagrams and exercises. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP. Particular attention is paid to congestion; other special topics include queuing, real-time traffic, network management, security, mininet and the ns simulator.
The book is suitable as the primary text for an undergraduate or introductory graduate course in computer networking, as a supplemental text for a wide variety of network-related courses, and as a reference work.
Dear student! You are starting to learn about computation and its purpose. …
Dear student! You are starting to learn about computation and its purpose. This course covers the same materials as an introductory class for undergraduate computer science majors. Its curriculum, which includes software, hardware and algorithms, resembles that of a one- or two-semester first-year college course or the high school Advanced Placement (AP) Computer Science. It does not require a formal computer science background.
This course is a continuation of the first-semester course titled Introduction to …
This course is a continuation of the first-semester course titled Introduction to Computer Science I. It will introduce the student to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. The student will begin with a comparison between Java--the programming language utilized last semester--and C++, another popular, industry-standard programming language. The student will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what they have learned learned last semester and familiarizing themselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced topics, including the Standard Template Library, Exceptions, Recursion, Searching and Sorting, and Template Classes. By the end of the class, the student will have a solid understanding of Java and C++ programming, as well as a familiarity with the major issues that programmers routinely address in a professional setting. Upon successful completion of this course, the student will be able to: Demonstrate an understanding of the concepts of Java and C++ and how they are used in Object-Oriented Programming; Demonstrate an understanding of the history and development of Object-Oriented Programming; Explain the importance of the C++ Standard Template Library and how basic components are used; Demonstrate a basic understanding of the importance of run-time analysis in programming; Demonstrate an understanding of important sorting and search routines in programming; Demonstrate an understanding of the generic usage of templates in programming for C++ and Java; Compare and contrast the features of Java and C++. (Computer Science 102; See also: Mathematics 303)
This is part of MIT’s OpenCourseWare website. It includes a course syllabus, …
This is part of MIT’s OpenCourseWare website. It includes a course syllabus, reading list, lecture videos, Powerpoint slides and code, in-class questions and video questions as well as assignments – all available for download. The course is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
As technology becomes ever integrated into our food system and everyday life, …
As technology becomes ever integrated into our food system and everyday life, our food industry and supply become ever more vulnerable to attack. Cyber attacks continue to threaten large and small companies, government agencies, individuals, and food and agriculture. This module, ‘Securing the Food Industry,’ aims to introduce the idea of cyberbiosecurity through a lecture format along with three case studies allowing students to interact and think through the concepts and materials. This module was built for implementation into college level courses with connection or interest in the food industry, food science, and agriculture as well as and technology courses focused on real world applications. The lecture starts by introducing the amount of technology in food science and the food industry then transitions into concerns about security. After discussing multiple subtypes of security already integrated into the food industry, cyberbiosecurity is introduced. The term and definition are discussed before the categories of cyber attacks are introduced. The lecture relates these ideas back to the food industry before sharing a few real-life examples of detrimental cyber-attacks. The lecture concludes are explain the impact a cyber attack can cause, who is responsible for preventing and recovering from these attacks, as well as suggested practices to reduce vulnerabilities. Three theoretical but realistic case studies with discussion questions follow the lecture. These studies were written to act as small group discussion starters but could be used for whole class discussion, individual writing assignments, or other applications. A list of additional resources can be found with the course material. This list provides a small sampling of additional documents which discuss cyberbiosecurity. The resources listed at the end of the lecture are not included in the additional resources document but also provide helpful information in the exploration and understanding of cyberbiosecurity. Food science resources are also included in this document to provide additional background around the food industry portion of this course material.
Securing the Food Industry is an open educational resource (OER). Instructors reviewing, adopting, or adapting the module should indicate their interest at https://forms.gle/orFRGhYs8owBP7gD6.
Data Carpentry lesson to understand data structures and common storage and transfer …
Data Carpentry lesson to understand data structures and common storage and transfer formats for spatial data. The goal of this lesson is to provide an introduction to core geospatial data concepts. It is intended for learners who have no prior experience working with geospatial data, and as a pre-requisite for the R for Raster and Vector Data lesson . This lesson can be taught in approximately 75 minutes and covers the following topics: Introduction to raster and vector data format and attributes Examples of data types commonly stored in raster vs vector format Introduction to categorical vs continuous raster data and multi-layer rasters Introduction to the file types and R packages used in the remainder of this workshop Introduction to coordinate reference systems and the PROJ4 format Overview of commonly used programs and applications for working with geospatial data The Introduction to R for Geospatial Data lesson provides an introduction to the R programming language while the R for Raster and Vector Data lesson provides a more in-depth introduction to visualization (focusing on geospatial data), and working with data structures unique to geospatial data. The R for Raster and Vector Data lesson assumes that learners are already familiar with both geospatial data concepts and the core concepts of the R language.
Data Carpentry lesson to open, work with, and plot vector and raster-format …
Data Carpentry lesson to open, work with, and plot vector and raster-format spatial data in R. The episodes in this lesson cover how to open, work with, and plot vector and raster-format spatial data in R. Additional topics include working with spatial metadata (extent and coordinate reference systems), reprojecting spatial data, and working with raster time series data.
This book was written to introduce students to assembly language programming in …
This book was written to introduce students to assembly language programming in MIPS. As with all assemblylanguage programming texts, it covers basic operators and instructions, subprogram calling, loading andstoring memory, program control, and the conversion of the assembly language program into machine code.
However this book was not written simply as a book on assembly language programming. The larger purposeof this text is to show how concepts in Higher Level Languages (HLL), such as Java or C/C++, arerepresented in assembly. By showing how program constructs from these HLL map into assembly, theconcepts will be easier to understand and use when the programmer implements programs in languages likeJava or C/C++. Concepts such as references and variables, registers, binary and Boolean operations, subprogram execution, memory types (heap, stack, and static), and array processing are covered to clarify thedecisions made when implementing HLL. Program control is presented using a mapping from structuredprograms in pseudo code to help students understand structured programming, and why it exists. Memoryaccess in assembly is presented to high light the difference between references (pointers) and values, and howthese impact HLL.
This book has numerous code examples, and many problems at the end of each chapter, and it is appropriate for a class in Assembly Language, or as a extra resource for a class in Computer Organization.
This course provides a general overview of databases, including topics such as …
This course provides a general overview of databases, including topics such as database history, modern database systems, the different models used to design a database, and Structured Query Language (SQL), which is the standard language used to access and manipulate databases. Upon successful completion of this course, the student will be able to: compare and contrast the database approach and the file system approach; explain what a database management system is as well as the various components; identify the various people involved in database management systems; explain the historical background of database management systems; compare the various database models; describe the functions of a database management system; explain the three-schema database architecture; describe what tables, indexes, and views are as well as discuss the differences among them; explain the entity-relationship model; develop an entity-relationship model based on user requirements; describe the relational database model; explain the process of normalization; convert an entity-relationship diagram to a set of normalized relations; explain referential integrity; identify how relational algebra is used to construct queries; describe and use data definition commands; describe and use data manipulation commands; explain how to join tables together for queries. (Computer Science 403)
Developed by the NYCDOE CS education team, the Introduction to Physical Computing …
Developed by the NYCDOE CS education team, the Introduction to Physical Computing course is a 54-hour long introductory computer science course that guides students to explore fundamental CS concepts through tinkering with the micro:bit, a simple programmable computer device. Each unit of the course guides students through the learning process with three practices: analyzing computer applications around them based on a given issue; prototyping a project that reflects the result of the analysis plus their interest; and communicating about their projects, including the functionality of a project, a project development process, influence from other projects and their contribution to a project when working in a group. The curriculum and support sessions assist educators in discovering the most effective way of facilitating this course for their own classroom, while helping them to become comfortable with the main tool, the micro:bit.
This is a recording of a 45 minute introductory webinar on preprints. …
This is a recording of a 45 minute introductory webinar on preprints. With our guest speaker Philip Cohen, we’ll cover what preprints/postprints are, the benefits of preprints, and address some common concerns researcher may have. We’ll show how to determine whether you can post preprints/postprints, and also demonstrate how to use OSF preprints (https://osf.io/preprints/) to share preprints. The OSF is the flagship product of the Center for Open Science, a non-profit technology start-up dedicated to improving the alignment between scientific values and scientific practices. Learn more at cos.io and osf.io, or email contact@cos.io.
This book is directed mainly towards beginning programmers, although it might also …
This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. It is certainly not meant to provide complete coverage of the Java language.
No restrictions on your remixing, redistributing, or making derivative works. Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make derivative works.
Most restrictive license type. Prohibits most uses, sharing, and any changes.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based educators, or other custom arrangements. Go to the resource provider to see their individual restrictions.