CS 571 Advanced Programming Techniques - Syllabus

Term and Credits

Summer 2020-2021
3 Credits

Room and Time

Videos and readings will be posted to learn.drexel.edu (No Live Lectures)


Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058
Extention: 215-895-2347
Office Hours: Monday 10-12PM, Wednesday 3-5PM
Send a Direct Message in Slack or post to #questions.

Teaching Assistant(s)

Marius Garbea
Electronic Mail Address: mag487@drexel.edu
CLC Website: https://www.cs.drexel.edu/clc
Office: Online in Slack
Office Hours: Tuesday 8-10PM Slack
Schedule a Meeting

Course Description

Covers the Unix operating system, bash shell programming, awk programming, python programming, and basic principles of software design, testing, and development. Students will learn how to apply software engineering principles and use tools, such as version control, in support of programming. This course provides an introduction to intermediate programming techniques for students with only basic programming experience.

Course Objective and Goals

  1. Learn the basis of the Linux OS.
  2. Understand the basic tools built into Linux for programmers.
  3. Learn to use scripting language along with tools to build programs.
  4. Learn to test programs using built in tools.

Audience and Purpose within Plan of Study

This course is for graduate students with little prior knowledge of Linux. It serves to give such students a firm foundation for future graduate study, and it is a requirement of the Computer Science Minor and Computer Science Post Bachelor Certificate degree programs.

CS570 is a required co/prerequisites.

What Students Should Know Prior to this Course

  1. Basic Computer Usage Skills.
  2. Some experience with programming is strongly recommended.

What Students will be able to do upon Successfully Completing this Course:

  1. Use a Linux system with only command line access.
  2. Manage a GIT repository.
  3. Write scripts built on Linux Tools.
  4. Explain why Linux is popular with developers.
  5. Develop programs using only command line toolds.


A Practical Guide to Linux Commands, Editors, and Shell Programming (4th Edition)
Mark G. Sobell, Matthew Helmke
ISBN-13 978-0134774602
ISBN-10 9780134774602
See it on Amazon

Course Material




Research Papers

Slack Channel

Late Submissions

Special Circumstances

Course Policies

Academic Honesty Policy

The CCI Academic Honesty policy is in effect for this course. Please see the policy at http://drexel.edu/cci/resources/current-students/undergraduate/policies/cs-academic-integrity/.

Academic Honesty Violations will be reported to the University. Punishment will be determined by the severity of the incident. Punishments include, but are not limited to,

Grading and Policies

Final grades will be determined by your total points weighted according to this distribution. Grades may be curved but are generally computed via the formula below. It may be modified at the instructor's sole discretion, but letter grades will generally not be lower than those shown here.

University Policies
In addition to the course policies listed on this syllabus, course assignments or course website, the following University policies are in effect:

Tentative Course Schedule

Please see the appropriate assignment webpages for a detailed description of course deliverables.

Week Topic Reading Homework
1 (6/22/20) Introduction to Linux Chapter 2 of textbook
Chapter 17 of textbook
Homework 1
Due Tuesday 6/30/20 at 11:59PM
2 (6/29/20) The Utilities Chapter 3 of textbook Homework 2
Due Tuesday 7/7/20 at 11:59PM
3 (7/6/20) The File System Chapter 4 of textbook Homework 3
Due Tuesday 7/14/20 at 11:59PM
 Research Paper 1 Due Friday July 10, 2020 at 11:59PM
4 (7/13/20) The Shell Chapter 5 of textbook Homework 4
Due Tuesday 7/21/20 at 11:59PM
5 (7/20/20) The VIM Editor Chapter 6 of textbook Homework 5
Due Tuesday 7/28/20 at 11:59PM
6 (7/27/20) The EMACs Editor Chapter 7 of textbook Homework 6
Due Tuesday 8/4/20 at 11:59PM
7 (8/3/20) The Bourne Again Shell Chapter 8 of textbook Homework 7
Due Tuesday 8/11/20 at 11:59PM
 Research Paper 2 Due Friday August 7, 2020 at 11:59PM
8 (8/10/20) Programming the Bourne Again Shell Chapter 10 of textbook Homework 8
Due Tuesday 8/18/20 at 11:59PM
9 (8/17/20) Python as a Scripting Language Chapter 12 of textbook Homework 9
Due Tuesday 8/25/20 at 11:59PM
10 (8/24/20) Putting all the Pieces together Chapter 1 of textbook Homework 10
Due Tuesday 9/1/20 at 11:59PM
11 (8/31/20) Research Paper 3 Due Friday September 4, 2020 at 11:59PM