The School of Electrical Engineering and Computer Science

CptS 224: Programming Tools

Catalog Information
Course Number: 
224
Credits: 
2
Offered: 
Spring
Offered: 
Fall
Pre-Requisites

C programming, basic data structures, advanced data structures (strongly recommended). Cpts 223 can be taken concurrently.

Class Information
Objectives: 

In a UNIX or Linux environment, students should be able to:

  • demonstrate a knowledge of basic shell commands
  • create, compile, link, and run C or C++ programs
  • debug a program using both strategic printf() statements and an interactive debugger such as gdb
  • write a make file to direct ``as-needed'' compilation of a program
  • write and comprehend small scripts in both a shell ( bash) and in a scripting language such as Perl, Python, or Tcl
  • build a user interface to a simple program using GUI toolkits such as xforms, Qt, Gtk+, and Tk
  • interact with both RCS (individual) and CVS (group) revision control systems
Topics: 
  • UNIX/Linux Programming (10.5 hrs.)
    • shell commands
  • revision control (RCS and subversion)
  • Scripting Languages (10.5 hrs.)
    • (Bourne) shell scripting
    • Python (or Perl or awk) (see below)
  • Debugging (12 hrs.)
    • bug taxonomy
    • debugging strategies
    • debugging with printf()
    • gdb
    • graphical debugging (xxgdb or ddd)
  • Introduction to Graphical User Interface Programming (9 hrs.)
    • event-driven programming
    • compiled GUIs (FLTK, Qt, Gtk+, or xforms)
    • interactive GUI designers (FLTK -> FLUID, Qt -> Qt Designer, Gtk+ -> glade, xforms -> fdesign)

The scripting language taught in (2b) should be only at the level necessary to perform system (esp. filesystem) interaction when a shell script is not appropriate. There is not time to cover advanced features like object orientation, exceptions, overloading, etc.

Lab Projects: 

A small amount of laboratory time may be scheduled to demonstrate the more interactive software tools such as the debugger or an interactive GUI designer such as fdesign) (part of xforms).

Requirements
Textbooks/References: 

Loukides and Oram, Programming with GNU Software, O'Reilly, 1997.
Kernighan and Pike, The UNIX Programming Environment, Prentice Hall, 1984.
Kernighan and Pike, The Practice of Programming, Addison-Wesley, 1999.

Computer Usage: 

The course makes extensive computer use, and it may be advantageous for the instructor to work examples ``live'' in the classroom. There will be from six to eight programming projects covering all topics, most of which will be completed by students in their own time as homework.

Professor/Coordinator: 
Bob Lewis
Contact us: webmaster@eecs.wsu.edu | Telephone: 509 335 6602 Fax: 509 335 3818 | Accessibility | Copyright | Policies
School of Electrical Engineering and Computer Science, PO BOX 642752, Washington State University, Pullman, WA, 99164-2752 USA