Notes on C, Unix and Scripting
Minimum price
Suggested price

Notes on C, Unix and Scripting

About the Book

These are the notes I developed while teaching a very unusual course at Carnegie Mellon University over 10 years ago. The course was expected to provide first year Computer Science students with a quick introduction to C, Unix and Scripting. Most students only knew Java and did not know a low-level programming languages or scripting that are critical to succeed in upper level courses. Hence the notes that helped cover those topics, not in depth, but just enough to get by. Over the years, people have found these notes online and used them. Now I thought of assembling them together. This might help you learn some of these topics quickly, but you need to find other books to supplement if you need to get a deeper understanding of any of these topics. I plan to add more supplemental material to this book in the coming months and years. I hope I have attributed credits to any material I have used in the book or I will do so, as I find them. The book is not formatted at the moment, but will be in the future and you will receive free updates..

I have intentionally revisited the same topics again and again. As we revisit these topics, the reader will be able to reinforce them more. There can be some errors in book. I appreciate if you let me know by sending email to I hope you will find this material useful in getting a quick overview of C programming in UNIX, Shell and Perl Scripting and Assembly Programming and Basics of Systems Programming. You can find lot more material such as skills labs, programming labs and demo code at the old site The site is not well formatted, but hope it is useful.

About the Author

Andy Gunawardena
Andy Gunawardena

Dr. A. D. (Andy) Gunawardena is a faculty member in the department of computer science at Princeton University. He served as an Associate Teaching Professor of Computer Science at Carnegie Mellon University from 1998-2013 and is now a courtesy faculty at CMU. He is a long time advocate of technology in education and the application of the principles of learning sciences to teaching and learning. He is the co-author of two college textbooks in computational linear algebra published by Springer-Verlag and Thompson Brooks-Cole and is the author and co-author of over 45 research articles. His textbooks have been translated into other languages. He is the co-creator of Classroom Salon, a platform to increase student engagement through annotations and analytics. He has received over US$ 1 million in funding from NSF, Qatar Foundation, Hewlett Packard, Microsoft, Google and many other foundations. His many honors include: leadership in technology award from HP, service award from Jesse Jones institute, ACM appreciation award from ACM houston chapter, and Exceptional achievement award (highest honor given to Sri Lankan expatriate) from Sri Lanka foundation. He was also a founding fellow of HP Catalyst Institute in 2010. From 2010-2013, he co-led the HP's measuring learning consortium, a multi-million dollar effort to introduce data driven learning. He is the principle inventor of US Patent 10,061,756 sponsored by Carnegie Mellon University and is the principle inventor of Princeton University based patent- machine assisted segmentation of video collections. He also recently founded CUvids, inc, a company aiming to provide indexing and search capabilities for large video collections. He is currently the stream editor for learning analytics at the International Journal of innovation in online education. He typically teaches courses in data science, computer algorithms, discrete structures, systems programming, data science and pen-based computing. His research interests include technology in education, learning sciences and Human Computer Interaction. 

Table of Contents

Chapter 01 - Introduction to C and Unix

Chapter 02 - Arrays, Functions and IO

Chapter 03 - Pointers and Strings

Chapter 04 - Arrays and Pointers

Chapter 05 - Pointer to a Pointer

Chapter 06 - Debugging and Memory Leaks

Chapter 07 - Advanced Topics in Pointers

Chapter 08 - Dealing with Dynamic Memory

Chapter 09 - Structs and Linked Lists

Chapter 10 - Linked List Operations

Chapter 11 - Array of Linked Lists

Chapter 12 - Doubly Linked Lists and Recursion

Chapter 13 - Function Pointers

Chapter 14 - Generic Data Structures

Chapter 15 - Introduction to Hashing

Chapter 16 - Bit Operations

Chapter 17 - Regular Expressions

Chapter 18 - Perl Programming

Chapter 19 - Advanced Perl Programming

Chapter 20 - Shell Scripting

Chapter 21 - Shell Scripting II

Chapter 22 - Systems Programming

Chapter 23 - Systems Programming II

Chapter 24 - Assembler Fundamentals

Chapter 25 - C and Assembly

Authors have earned$10,257,955writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.

Learn more about writing on Leanpub

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub