Pre-College Programs
Summer@Brown Courses

« Return to Course Catalog

Learning Linux & Programming for Beginners

This course is expected to run but has not yet been scheduled.

Course Description

The main aim of the course is to enable students to learn about a powerful operating system and to become familiar with its most important scripting tools. Computer programming skills are a hot commodity in this ever connected world and this course will get students started on the path to become a software programmer. This course will therefore be attractive to all students who are interested in majoring in computer science or engineering in the future.

Most of you would have heard about iPod, Droid, iPhones, Macs and iPads, but did you know that the backbone software of all these cool machines is Linux? It is an operating system much like Windows but is often regarded as more powerful & stable. Linux was developed from an older operating system called UNIX, which was created by the AT&T groups at the Bell labs in 1969.

Linux was first released in 1991 by Linus Torvalds and has stayed as free & open source software ever since. Some of the most popular mainstream Linux distributions include Debian (Ubuntu), Fedora and openSUSE. They are currently used by a spectrum of people ranging from computer scientists, structural biologists, physicists, artists, F.A.A, US Navy, USPS, and Department of Defense. Practically speaking, if you have ever used a web browser, you are considered a Linux user. This course is designed to expose students to the flavors of Linux which has now emerged as an important operating system.

We will start with learning various shells in the Linux system mainly focusing on bash shell & C shell. The students will be first trained in basic file management and administration tasks.

They will learn to use important commands such as “vi” editor, “sort”, “grep”, “diff” & others with examples. The usage of wildcards, user account restriction and script run time management will also be discussed.

These commands will then be used in a sequence to make simple scripts. Those simple scripts will then be stitched in to a complex program performing a variety of tasks. The students will then be trained to use “for” and “while” loops in bash shell to create a multiple iteration sequence which executes tasks when a given set of conditions are met.

Coding assignments will be given at the end of each session and will be discussed in the following classes to emphasize logical & syntax errors. The assignments will be done in groups of two to facilitate teamwork as well. This course will essentially help students nurture logical ways of approaching scripts & help create the foundation for other higher languages such as Perl or C++.

Upon completion of this course, students will be able to write their own scripts using bash shell. They will become proficient in using the Linux operating system. It will also serve as a building block upon which other programming languages such as Perl, C++, Java & Python can be mastered in the future.

It is recommended that students seeking specialized or advanced programming skills, also take "Taste of Java - Programming in Java for Beginners" after taking this course.

This course is designed for students who are interested in learning linux and to start writing their own programs using C shell or bash shell scripting. There are no prerequisites or special books required for this course but access to a laptop is a must. Therefore students are strongly recommended to bring their own computers to the class for coding in class. Additional reading material will also be provided in the class.