Delftse Foundations of Computation is a textbook for a one quarter introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, set theory and the theory of computation, along with practical applications to computer science. It has no prerequisites other than a general familiarity with computer programming.
This text is designed to introduce and expand upon material related to the C programming language and embedded controllers, and specifically, the Arduino development system and associated Atmel ATmega microcontrollers. It is intended to fit the time constraints of a typical 3 to 4 credit hour course for electrical engineering technology and computer engineering technology programs, although it could also fit the needs of a hardware-oriented course in computer science. As such, the text does not attempt to cover every aspect of the C language, the Arduino system or Atmel AVR microcontrollers. The first section deals with the C language itself. It is assumed that the student is a relative newcomer to the C language but has some experience with another high level language, for example, Python.
The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians,computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That’s why this chapter is called “The way of the program.”
By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and applied mathematics, Introduction to Programming in Java takes an interdisciplinary approach to teaching programming with the Java(tm) programming language. Elements of Programming: Your First Program; Built-in Types of Data; Conditionals and Loops; Arrays; Input and Output. Functions and Modules: Static Methods; Libraries and Clients; Recursion. Object-Oriented Programming: Data Types; Creating Data Types; Designing Data Types. Algorithms and Data Structures: Performance; Sorting and Searching; Stacks and Queues; Symbol Tables. For all readers interested in introductory programming courses using the Java programming language.
The author takes an objects early approach to teaching Java, with the assumption that teaching beginners the big picture early gives them more time to master the principles of object-oriented programming. The text focuses on the motivation behind Java's strengths and the benefits of the object-oriented paradigm. It provides a solid understanding of objects and methods, concentrating on problem decomposition and program design. A firm grasp on these fundamentals allows the smaller details, and some of Javas advanced features, to fall into place from both instructor and student perspectives.
There are a number of excellent, comprehensive, and in-depth texts on MIPS assembly language programming. This is not one of them.The purpose of this text is to provide a simple and free reference for university level programming and architecture units that include a brief section covering MIPS assembly language programming. The text assumes usage of the QtSpim simulator. An appendix is included that covers the download, installation, and basic use of the QtSpim simulator.The scope of this text addresses basic MIPS assembly language programming including instruction set usage, stacks, procedure/function calls, QtSpim simulator system services, multiple dimension arrays, and basic recursion.
Think Java is an introduction to computer science and programming intended for people with little or no experience. The authors provide a well thought out, logical progression of concepts, from the most basic to recursion and object-oriented programming. All terms are defined when they are first used.
The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). While the provided code and various examples should work under any Linux-based 64-bit OS, they have only been tested under Ubuntu 14.04 LTS (64-bit). The x86-64 is a Complex Instruction Set Computing (CISC) CPU design. This refers to the internal processor design philosophy. CISC processors typically include a wide variety of instructions (sometimes overlapping), varying instructions sizes, and a wide range of addressing modes. The term was retroactively coined in contrast to Reduced Instruction Set Computer (RISC3).
Programming Methodology teaches the widely-used Java programming language along with good software engineering principles. Emphasis is on good programming style and the built-in facilities of the Java language. The course is explicitly designed to appeal to humanists and social scientists as well as hard-core techies. In fact, most Programming Methodology graduates end up majoring outside of the School of Engineering.
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 was learned in the previous course and investigating 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.
This course will introduce students to the field of computer science and the fundamentals of computer programming. No prior programming experience is required. This free course may be completed online at any time. See course site for detailed overview and learning outcomes.
The SEE course portfolio includes one of Stanford's most popular sequences: the three-course Introduction to Computer Science, taken by the majority of Stanford’s undergraduates, as well as more advanced courses in artificial intelligence and electrical engineering. Includes complete lecture videos. as well as syllabi, handouts, homework, and exams.
Provides access to more than 36,000 eBooks, including over 2,100 computer science and information technology books published by Cisco, Macromedia, Microsoft, O'Reilly, Pearson, SAMS, and others. Additionaly Safari features videos, expert-curated learning paths, O’Reilly conference videos, and other resources in technology, business, science, and other fields.
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.