Intensive Programming in Linux
This comprehensive program is designed to provide students with a strong foundation in programming concepts and practical skills within the Linux environment.
Instructor: Prof. Mohit Dale
Term: Spring
Course Overview
- Have a solid understanding of the Linux command line interface + Bash scripting and be able to navigate, manipulate files, and execute commands efficiently.
- Be proficient in using Regular Expressions for pattern matching and text processing in Linux.
- Debug C programs effectively, employing various debugging techniques to identify and fix issues in your code.
- Understand the binary representation of data and be able to perform bitwise operations.
- Learn radix-sort, a powerful sorting algorithm.
- C pointers and dynamic multi-dimensional arrays, essential for managing memory and manipulating complex data structures.
- Explore self-referential structures and linked lists, fundamental concepts in data structures and algorithms, and gain the ability to implement them in C.
- Learn A* search, a widely used algorithm for pathfinding.
- Develop proficiency in Linux file operations and directory operations, allowing you to create, modify, and manage files and directories programmatically.
- Learn how to write programs with multiple threads, enabling you to leverage parallelism and concurrency in your applications.
- Gain insight into parallel computing with MPI (Message Passing Interface).
- Explore web scraping, learning how to extract data from websites programmatically.
Textbooks
- “The C Programming Language” by Brian W. Kernighan and Dennis M. Ritchie
Schedule
| Week | Date | Topic | Materials |
|---|---|---|---|
| 1 | Introduction to Linux Environment (CLI) | ||
| 2 | Introduction to Bash Shell Scripting | ||
| 3 | Pattern Matching with Regular Expressions | ||
| 4 | Midterm Exam - 1 | ||
| 5 | Multiple topics
| ||
| 6 | Multiple topics
| ||
| 7 | C Pointer variables (Pointer-to-Pointer) and (Dynamic) multidimensional arrays | ||
| 8 | Midterm Exam - 2 | ||
| 10 | Multiple topics
| ||
| 11 | Programs with multiple threads | ||
| 12 | Parallel computing with MPI | ||
| 13 | Web Scraping |