CS252 Outline

Spring 2024

1 Preamble

Below are the modules that comprise the course content.

Each module includes a mixture of lecture notes for you to read (required) and relevant textbook chapters (optional). Many of the lecture notes include “Try This” activities for you to perform while logged in to one of our Linux servers.

Most modules include at least one assignment that you should attempt to complete before moving on.

KEYS TO SUCCESS IN THIS COURSE:

  1. READ THE SYLLABUS

    The syllabus lays out the basic course policies. It tells you what you need to do to earn a passing grade. It tells you when you need to have done that by. It tells you how to get in touch with me if you run into problems.

  2. HAVE A SCHEDULE

    You have the freedom to schedule your own time in this course, but you DO need to set up a schedule. Don’t forget that this course exists and that you are registered for it. Don’t think you can repeatedly set it aside for weeks at a time and make up the time later.

    • There are 14 assignments in the course.
    • There are approximately 14 weeks in a Fall or Spring semester (12 in summer).
    • You can easily figure out what kind of pace you should be setting if you want to complete this course.
  3. IF YOU DON"T UNDERSTAND SOMETHING, ASK QUESTIONS

    In a web course, my role as Instructor changes from “lecturer” to “tutor”. You can ask questions in the course Forums. You can send me email. You can also contact me during office hours. You’ll find more information on these options in the syllabus and other documents on the Course Policies page.

    Some people are too shy to ask questions. Some are too proud to ask questions. My advice to both groups is to get over it! Part of being educated is knowing how to exploit your available information resources. In this course, I am one of those resources.

  4. READ THE LECTURE NOTES. DO THE “TRY THIS” EXERCISES.

    As a general rule, everything you need to complete the assignments and final exam are contained in the lecture notes and are things that you will practice with in the “Try This” exercises.

    The listed textbook readings are optional. Hunting the internet for additional info is possible, but can often lead to more confusion than enlightenment, so you do that at your own risk.

    When you read, read attentively. When you do the Try This exercises, be observant to the results you are getting and make sure that you understand them.

    • If you consistently find yourself starting the assignments thinking that you are prepared, then get stuck with no idea how to proceed, that’s a good sign that you were not really giving the lecture notes or Try This exercises enough attention.

1 Getting Started

Objectives

Upon completing this section, a student should…


  1. Read: Welcome to CS 252
  2. Read: CS 252 Syllabus - Spring 2024
  3. Read: Communications
  4. Why Unix?
  5. Unix account setup
  6. Peek: Preface, Ch 1
  7. Working from a Command Line

  8. Networks and Protocols
  9. Logging In to Remote Linux Machines
  10. See website for assignment.

2 Command Line Interface (CLI) – basics

2.1 Files and Directories

Objectives

Upon completing this section, a student should…


  1. The Unix File System
  2. Basic File Manipulation
  3. Peek: Ch 3
  4. Taylor, ch 3, 4, 6
  5. See website for assignment.

  6. Getting Help

2.2 The Elements of Unix Commands

Objectives

Upon completing this section, a student should be able to…


  1. Typing Unix Commands
  2. Text Editing
  3. Patterns for File Names: Wildcards
  4. Peek: Ch 4
  5. Quoting Special Characters
  6. See website for assignment.

2.3 Modifying and Combining Commands

Objectives

Upon completing this section, a student should be able to…


  1. Peek: Ch 5
  2. Venkateshmurthy, Ch. 4
  3. Redirection and Pipes
  4. Commands That Launch Other Commands
  5. Shell and Environment Variables
  6. See website for assignment.

3 Working with Files

3.1 File Transfer

Objectives

Upon completing this section, a student should be able to…


  1. Peek: Ch 6
  2. File Transfer
  3. See website for assignment.

3.2 File Security

Objectives

Upon completing this section, a student should be able to…


  1. File Protection
  2. Tansley, ch 1
  3. See website for assignment.

3.3 The X Window System

Objectives

Upon completing this section, a student should be able to…


  1. Peek: Ch 7

  2. The X Window System

  3. See website for assignment.

3.4 Editing Files

Objectives

Upon completing this section, a student should be able to…


  1. Editing in Text Mode
  2. Editing under X
  3. Sobell, ch 6,7
  4. See website for assignment.

4 Software Development

4.1 Compiling

Objectives

Upon completing this section, a student should be able to…


  1. Executing Programs
  2. Compiling Programs
  3. Dealing with Error Messages
  4. See website for assignment.

4.2 Build Management

Objectives

Upon completing this section, a student should be able to…


  1. Build Management with Make

  2. Other Build Managers

  3. See website for assignment.

4.3 Version Control (git & GitHub)

Objectives

Upon completing this section, a student should be able to…


  1. SSH Keys
  2. Version Control with git
  3. git: Beyond the Basics (optional reading)
  4. See website for assignment.

4.4 Integrated Development Environments (IDEs)

Objectives

Upon completing this section, a student should be able to…


  1. Development Environments
  2. IDEs & Remote Display
  3. IDEs & Remote Development
  4. See website for assignment.

4.5 Debugging

Objectives

Upon completing this section, a student should be able to…


  1. Debugging
  2. Debugging in IDEs
  3. See website for assignment.

  4. (Optional) Installing a C++ IDE and Compiler on your own PC

  5. (Optional) Installing a Java IDE and Compiler on your own PC

5 Command Line Interface (CLI) – advanced

5.1 Regular Expressions

Objectives

Upon completing this section, a student should be able to…


  1. Patterns for Text: Regular Expressions
  2. Tansley, ch 7-8, 10
  3. See website for assignment.

5.2 Customization

Objectives

Upon completing this section, a student should be able to…


  1. Tansley, ch 16-18, 20
  2. Shore Are a Lot of Shells!
  3. Customizing Your Unix Environment

5.3 Shell Scripts

Objectives

Upon completing this section, a student should be able to…


  1. Venkateshmurthy, Ch. 8
  2. Scripts

6 Important Dates

  1. Practice exam (on Canvas) Due: 04/17/2024, 12:00AM EDT
  2. All assignments for the semester are due by 11:59:59PM ET. Due: 04/22/2024
  3. Final Exam (on Canvas) 04/24/2024, 12:00AM EDT - 04/25/2024, 11:59PM EDT