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.
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 will introduce students to the field of computer science and …
This course will introduce students to the field of computer science and the fundamentals of computer programming. No prior programming experience is required. Upon successful completion of this course, students will be able to: Demonstrate an understanding of the history of computing as well as fundamental hardware and software concepts; Demonstrate an understanding of the programming life cycle; Explain how the JVM translates Java code into executable code; Demonstrate an understanding of Object-Oriented Programming concepts; Demonstrate an understanding of basic Java concepts by writing simple programs; Demonstrate an understanding of logical and relational operators as well as control structures; Demonstrate proficiency in basic Java I/O techniques by writing small programs. (Computer Science 101; See also: Mathematics 302)
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 subject is aimed at students with little or no programming experience. …
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.
This introductory course is designed to familiarize students with the general concepts …
This introductory course is designed to familiarize students with the general concepts of computers and information sciences. The course will introduce students to the features and uses of common applications software such as word processing, spreadsheet, database, and operating systems such as Windows. Students will also learn about the various hardware components and basic computer terminology. This course was originally built in Blackboard Learn Original.
This course presents the fundamentals of object-oriented software design and development, computational …
This course presents the fundamentals of object-oriented software design and development, computational methods and sensing for engineering, and scientific and managerial applications. It cover topics, including design of classes, inheritance, graphical user interfaces, numerical methods, streams, threads, sensors, and data structures. Students use Java programming language to complete weekly software assignments. How is 1.00 different from other intro programming courses offered at MIT? 1.00 is a first course in programming. It assumes no prior experience, and it focuses on the use of computation to solve problems in engineering, science and management. The audience for 1.00 is non-computer science majors. 1.00 does not focus on writing compilers or parsers or computing tools where the computer is the system; it focuses on engineering problems where the computer is part of the system, or is used to model a physical or logical system. 1.00 teaches the Java programming language, and it focuses on the design and development of object-oriented software for technical problems. 1.00 is taught in an active learning style. Lecture segments alternating with laboratory exercises are used in every class to allow students to put concepts into practice immediately; this teaching style generates questions and feedback, and allows the teaching staff and students to interact when concepts are first introduced to ensure that core ideas are understood. Like many MIT classes, 1.00 has weekly assignments, which are programs based on actual engineering, science or management applications. The weekly assignments build on the class material from the previous week, and require students to put the concepts taught in the small in-class labs into a larger program that uses multiple elements of Java together.
This course aims to give students the tools and training to recognize …
This course aims to give students the tools and training to recognize convex optimization problems that arise in scientific and engineering applications, presenting the basic theory, and concentrating on modeling aspects and results that are useful in applications. Topics include convex sets, convex functions, optimization problems, least-squares, linear and quadratic programs, semidefinite programming, optimality conditions, and duality theory. Applications to signal processing, control, machine learning, finance, digital and analog circuit design, computational geometry, statistics, and mechanical engineering are presented. Students complete hands-on exercises using high-level numerical software. Acknowledgements The course materials were developed jointly by Prof. Stephen Boyd (Stanford), who was a visiting professor at MIT when this course was taught, and Prof. Lieven Vanderberghe (UCLA).
An introduction to several fundamental ideas in electrical engineering and computer science, …
An introduction to several fundamental ideas in electrical engineering and computer science, using digital communication systems as the vehicle. The three parts of the course - bits, signals, and packets - cover three corresponding layers of abstraction that form the basis of communication systems like the Internet. The course teaches ideas that are useful in other parts of EECS: abstraction, probabilistic analysis, superposition, time and frequency-domain representations, system design principles and trade-offs, and centralized and distributed algorithms. The course emphasizes connections between theoretical concepts and practice using programming tasks and some experiments with real-world communication channels.
This course is an introductory subject in the field of electric power …
This course is an introductory subject in the field of electric power systems and electrical to mechanical energy conversion. Electric power has become increasingly important as a way of transmitting and transforming energy in industrial, military and transportation uses. Electric power systems are also at the heart of alternative energy systems, including wind and solar electric, geothermal and small scale hydroelectric generation.
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 is an introduction to linear optimization and its extensions emphasizing …
This course is an introduction to linear optimization and its extensions emphasizing the underlying mathematical structures, geometrical ideas, algorithms and solutions of practical problems. The topics covered include: formulations, the geometry of linear optimization, duality theory, the simplex method, sensitivity analysis, robust optimization, large scale optimization network flows, solving problems with an exponential number of constraints and the ellipsoid method, interior point methods, semidefinite optimization, solving real world problems problems with computer software, discrete optimization formulations and algorithms.
This subject provides an introduction to modeling and simulation, covering continuum methods, …
This subject provides an introduction to modeling and simulation, covering continuum methods, atomistic and molecular simulation, and quantum mechanics. Hands-on training is provided in the fundamentals and applications of these methods to key engineering problems. The lectures provide exposure to areas of application based on the scientific exploitation of the power of computation. We use web based applets for simulations, thus extensive programming skills are not required.
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)
" This course is an introduction to software engineering, using the Java™ …
" This course is an introduction to software engineering, using the Java™ programming language. It covers concepts useful to 6.005. Students will learn the fundamentals of Java. The focus is on developing high quality, working software that solves real problems. The course is designed for students with some programming experience, but if you have none and are motivated you will do fine. Students who have taken 6.005 should not take this course. Each class is composed of one hour of lecture and one hour of assisted lab work. This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs from the first week of January until the end of the month."
This course offers an introduction to the interdisciplinary study of videogames as …
This course offers an introduction to the interdisciplinary study of videogames as texts through an examination of their cultural, educational, and social functions in contemporary settings. Students play and analyze videogames while reading current research and theory from a variety of sources in the sciences, social sciences, humanities, and industry. Assignments focus on game analysis in the context of the theories discussed in class. Class meetings involve regular reading, writing, and presentation exercises. No prior programming experience required. Students taking the graduate version complete additional assignments.
This course is an introduction to the consideration of technology as the …
This course is an introduction to the consideration of technology as the outcome of particular technical, historical, cultural, and political efforts, especially in the United States during the 19th and 20th centuries. Topics include industrialization of production and consumption, development of engineering professions, the emergence of management and its role in shaping technological forms, the technological construction of gender roles, and the relationship between humans and machines.
Introductory course with the general concepts of computers and information sciences. The …
Introductory course with the general concepts of computers and information sciences. The course will introduce students to the features and uses of common applications software such as Windows. Students will also learn about the various hardware components and basic computer terminology. This is Module One in a series.Videos:“All GCFGlobal.org® content is available for free at edu.gcfglobal.org.”Parts of this course were created by Ziko Rizk and is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
This introductory course is designed to familiarize students with the general concepts …
This introductory course is designed to familiarize students with the general concepts of computers and information sciences. The course will introduce students to the features and uses of common applications software such as word processing, spreadsheet, database, and operating systems such as Windows. Students will also learn about the various hardware components and basic computer terminology. This is Module two of the series.
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.