An A-Frame Virtual Reality Programming activity for CS0 students. Part of the CUNY CS04All project.
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.
Este libro está dirigido, principalmente, a Estudiantes y Docentes que quieren aprender a programar como forma de fortalecer sus capacidades cognoscitivas y así obtener un beneficio adicional de su computador para lograr un mejor provecho de sus estudios. Dada la orientación del libro respecto a programar para resolver problemas asociados a las Ciencias e Ingenierías, el requisito mínimo de matemáticas que hemos elegido para presentar el contenido del mismo se cubre, normalmente, en el tercer año del bachillerato. No obstante, el requisito no es obligatorio para leer el libro en su totalidad y adquirir los conocimientos de programación obviando el contenido matemático.
- Computer Science
- Material Type:
- Project LATIn: The Latin American Open Textbook Initiative
- Héctor Fernández
- Juan Carlos Ruiz
- Sergio Rojas
- Date Added:
This two week assignment asks students to interpret and analyze the 1974 Arecibo Message sent by Drake and Sagan. Week 1 introduces the concepts behind the construction of the message and engages with a critical analysis of the architecture and the contents of the message. Week 2 asks students to develop software in a Jupyter Notebook (available for free from the Anaconda Python Distribution) to interpret messages that were similar to those produced by Drake and Sagan.
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.
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.
Blender 3D: Noob to Pro is a product of shared effort by numerous team members and anonymous editors. Its purpose is to teach people how to create three-dimensional computer graphics using Blender, a free software application. This book is intended to be used in conjunction with other on-line resources that complement it.
A Brief Introduction to Engineering Computation with MATLAB is specifically designed for students with no programming experience. However, students are expected to be proficient in First Year Mathematics and Sciences and access to good reference books are highly recommended. Students are assumed to have a working knowledge of the Mac OS X or Microsoft Windows operating systems. The strategic goal of the course and book is to provide learners with an appreciation for the role computation plays in solving engineering problems. MATLAB specific skills that students are expected to be proficient at are: write scripts to solve engineering problems including interpolation, numerical integration and regression analysis, plot graphs to visualize, analyze and present numerical data, and publish reports.
"A Byte of Python" is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you. There are many translations of the book available in different human languages.
C is the most commonly used programming language for writing operating systems. The first operating system written in C is Unix. Later operating systems like GNU/Linux were all written in C. Not only is C the language of operating systems, it is the precursor and inspiration for almost all of the most popular high-level languages available today. In fact, Perl, PHP, Python and Ruby are all written in C. By way of analogy, let's say that you were going to be learning Spanish, Italian, French, or Portuguese. Do you think knowing Latin would be helpful? Just as Latin was the basis of all of those languages, knowing C will enable you to understand and appreciate an entire family of programming languages built upon the traditions of C. Knowledge of C enables freedom.
Although C# is derived from the C programming language, it introduces some unique and powerful features, such as delegates (which can be viewed as type-safe function pointers) and lambda expressions which introduce elements of functional programming languages, as well as a simpler single class inheritance model (than C++) and, for those of you with experience in "C-like" languages, a very familiar syntax that may help beginners become proficient faster than its predecessors. Similar to Java, it is object-oriented, comes with an extensive class library, and supports exception handling, multiple types of polymorphism, and separation of interfaces from implementations. Those features, combined with its powerful development tools, multi-platform support, and generics, make C# a good choice for many types of software development projects: rapid application development projects, projects implemented by individuals or large or small teams, Internet applications, and projects with strict reliability requirements. Testing frameworks such as NUnit make C# amenable to test-driven development and thus a good language for use with Extreme Programming (XP). Its strong typing helps to prevent many programming errors that are common in weakly typed languages.
Students are presented with information relating to stand alone Python programs, stdin, stdout, and command line arguments. This is a lab exercise. After completion students should be able to create executable Python programs which can accept input from stdin or command line arguments.
This course analyzes issues associated with the implementation of higher-level programming languages. Topics covered include: fundamental concepts, functions, and structures of compilers, the interaction of theory and practice, and using tools in building software. The course includes a multi-person project on compiler design and implementation.
Suppose you want to build a computer network, one that has the potential to grow to global proportions and to support applications as diverse as teleconferencing, video on demand, electronic commerce, distributed computing, and digital libraries. What available technologies would serve as the underlying building blocks, and what kind of software architecture would you design to integrate these building blocks into an effective communication service? Answering this question is the overriding goal of this book—to describe the available building materials and then to show how they can be used to construct a network from the ground up.
This archive contains a series of lessons on cryptography suitable for use in a CS0 course. The only requirement is familiarity with Python, particularly dictionaries, lists, and file IO. It is also assumed that students know how to create stand-alone Python programs and interact with them through the terminal. Most of the work is done in Jupyter notebooks.
The material found in the notebooks is a combination of reading material, exercises, activities and assignments. Below are descriptions of each lesson or assignment and links to notebooks on Cocalc. The same files are available for batch download in this archive.
This course examines computers anthropologically, as artifacts revealing the social orders and cultural practices that create them. Students read classic texts in computer science along with cultural analyses of computing history and contemporary configurations. It explores the history of automata, automation and capitalist manufacturing; cybernetics and WWII operations research; artificial intelligence and gendered subjectivity; robots, cyborgs, and artificial life; creation and commoditization of the personal computer; the growth of the Internet as a military, academic, and commercial project; hackers and gamers; technobodies and virtual sociality. Emphasis is placed on how ideas about gender and other social differences shape labor practices, models of cognition, hacking culture, and social media.
Database Design - 2nd Edition covers database systems and database design concepts. New to this edition are SQL info, additional examples, key terms and review exercises at the end of each chapter.
A Python IF-ELSE activity - "The Dating Equation" - for CS0 students. Part of the CUNY CS04All project.