CS265 – Advanced Programming Techniques


Phone: No need to call me
Course Webpage:
Office Hours:

You can ask me questions during class, right before or after class, or during my office hours. Use the discussion board for questions on material, or general administrata.

An appropriate use of email would be to ask for a meeting, or, e.g., to let me know you'll miss class because you find yourself in the hospital.

Teaching Assistant:

See http://www.cs.drexel.edu/clc — the Cyber Learning Center website. Click on your course to see your TAs, and those who are willing to help.


The texts might be found online at the Drexel Library. See the "Textbooks" section on the course Blackboard page.

NOTE: If you choose to steal textbooks, download unsanctioned electronic copies, do not advertise this fact to your instructor. That will likely end the conversation.

Course Description:

An introduction to the C language, and the command line in a Linux environment. Practice with some common developer tools, including RegEx and scripting.

Course Goals:

To provide students with the skills needed to effectively design, develop, implement, debug, test, and maintain programs and more generally to solve problems using a computer. The course will teach these skills through the use of different programming languages, tools, and environments, though the general principles are independent of any particular language, tool, or environment. General themes include clarity, simplicity, generality, and automation.

Course Objectives:

This course will acomplish several things. You will:


Not only do I use the terminal tools we learned constantly all day, everyday, but the scripting tools have saved me a bunch of time and headaches at work. CS265 had provided me a sturdy tool belt that has been very useful for my experience in industry so far.

— Ethan Alfonso


This is a required sophomore level course for Computer Science students. The student has had 6 credits of some programming language, at a CS1 level, such as Python. So, the student knows assignment, branches, and looping.


It is expected that you have had at least 6 credits of a higher-level imperative programming language, and have had some experience with an OO language.

Your account on the department servers should have been created. If it is not, try https://support.cci.drexel.edu/act/tux/reset/. If that doesn't bring you joy, please contact ihelp@drexel.edu .

I will mail grades for assignments to your Drexel account (e.g., abc12@drexel.edu), so you should have that enabled and check that, or have it forwarded somewhere.

Please note that while high school algebra isn't listed as a prerequisite, it is a prerequisite for the BS program in CS.


  1. The Unix Programming Environment - basic commands, editor, shell, file system, filters
  2. Program development tools - context sensitive editor, make, debugger
  3. Scripting languages - Bash, AWK
  4. The C language
  5. Testing and debugging programs
  6. Performance

Course Requirements and Grading:

Weekly Labs 35%
Assignments 30%
In-class Activities 10%
Final Exam 25%

Lab and assignment evaluations will have a 20% reduction for each day they are late. Labs and assignments will have a 2-day hard deadline.

Last date to withdraw with a "W" grade:

Extra Credit


We'll try to put aside at least 40 min. each week for group work. You will work in groups of 2 or 3. Nobody works alone.

The activity will be due that evening.

You must be in class the entire time to get credit for activities.


There are weekly labs. It is recommended that you can the lab before the last meeting each week so that you can ask questions in class. Or, use the discussion board on Blackboard.

Lab work must be done on your own, except as specified.


There will be a final, in the spirit of a quizz. Just an hour. The questions will be broad, but not very deep. We're looking to see that you showed up each week w/your pads on, ready to play. Revieing the notes and your labs should be amply sufficient as a strategy.

You must know your section number and your Drexel username (not your studentID). Use flashcards, if you have trouble. You may not ask your neighbor, nor look at your phone during an exam.

Exams are closed-book. No notes, phones, computers, etc.


Do not pull stuff off the Web. Odds are decent you'll get a 0, or be given an F for the course.

You are expected to abide by the deadlines. If you missed submitting by 2 minutes, then it's late. If submission closed 2 minutes before you tried to submit, you were late by 2 days and 2 minutes. We will not accept it.

Assignments must be all original work.

Under no circumstance will you email your work, w/out prior consent.

Target Platform

Because there are differences, even amongst flavors of Unix, all projects will be graded on the department Linux workstations (accessed through tux.cs.drexel.edu). Do all of your work on tux. Test on tux, before submitting.

Do all of your work on the department machines. Ask CCI-IT (at ihelp@drexel.edu) why there aren't any lab machines that boot to Linux any more.

On my front page are some links for basic Unix commands, and a quick reference for using the vi editor. Please also visit the Resources frame on this site.

The department Unix machines

If you have, or have had, a CS course you should have an account on the CS servers. If not, email ihelp@drexel.edu .

You can access your files and have shell access to tux from anywhere on the Internet. You simply need an SSH client. Mac, simple, open a terminal, ssh (and scp and rsync) is installed. Windows, I don't know. I'd recommend downloading and using PuTTY.

The department has a Web server where you can post content that we may play with at some point.

Classroom Discussion Board

Use the discussion board on Blackboard to ask questions about the course, or material studied in this course. Do not email instructors and TAs questions that all students might benefit from.

Only email instructors or TAs about individual administrative matters.

Some guidelines for posting to the discussion board:

Classroom Attendance

Attendance is part of your grade. Bring your ID with you. Get permission from your instructor before attending a different section.

In class, I don't want to see any phones. And you are not to be on the computer unless it is lab time. If you would take notes to learn, then you should hand-write them. See this article, Attention, Students: Put Your Laptops Away, on NPR.

Academic Honesty