- Find Information
- Research Guides
- OER for COS
OER for COS
Open educational resources for UTSA's College of Science
- Getting Started: Finding OERToggle Dropdown
- Evaluating OER
- Biology
- Chemistry
- Computer Science
- Earth and Planetary Sciences
- Environmental Science and Ecology
- Mathematics
- Physics and Astronomy
Librarian
Charles Wu
Contact:
One UTSA Circle
University of Texas at San Antonio
San Antonio, TX 78249-0671
University of Texas at San Antonio
San Antonio, TX 78249-0671
(210)-458-4895
Website
CS 1063 & 1713
Introduction to Computer Programming I & II
- Delftse Foundations of Computation by Stefan Hugtenburg, Neil Yorke-SmithISBN: 9789463660839Publication Date: 2018Delftse 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.
- Embedded Controllers Using C and Arduino - 2e by James M. FiorePublication Date: 2018This 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.
- How to Think Like a Computer Scientist: C Version by Allen B. Downey, Thomas SchefflerPublication Date: 1999The 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.”
- Introduction to Programming in Java by Robert Sedgewick; Kevin WayneISBN: 9780321498052Publication Date: 2007-07-17By 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.
- Java, Java, Java Object-Oriented Problem Solving by Ralph MorelliISBN: 0130333700Publication Date: 2012-02-21The 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.
- MIPS Assembly Language Programming using QtSpim by Ed JorgensenPublication Date: 2017There 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: How to Think Like a Computer Scientist by Allen Downey; Chris MayfieldISBN: 1491929537Publication Date: 2016Think 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.
- x86-64 Assembly Language Programming with Ubuntu by Ed JorgensenPublication Date: 2019The 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).
- Introduction to Computer Science IThis 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.
- Introduction to Computer Science II SaylorThis 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.
- Programming Methodology StanfordProgramming 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.
- Stanford Engineering Everywhere (SEE)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.
CS 3873
Computer Networks
- Computer Networks: A Systems Approach by Larry Peterson, Bruce DaviePublication Date: 2019Suppose 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.