Topics will include
- C programming language for Java programmers (2 weeks, 2 assignments)
- summary of differences
- pre-processor
- strings
- stdio
- pointers and pointer arithmetic
- malloc/free
- unions
- function pointers
- Software development models, including open source
- Software development tools:
- Unix
- make
- automake
- autoconf -- cross-platform development
- CVS
- doc++ and other documentation tools Oxygen
- gdb and DDD
- purify, ElectricFence
- truss
- profiling: gprof
- Windows
- Program models: data driven, event driven, cgi, RPC, ...
- Data interchange
- classical Unix style
- serialization
- XML
- Scripting languages
- sh
- awk, sed
- Tcl, expect
- Perl
- Python
- Web programming models (servlets, cgi, JavaScript, PHP, ...)
- Web database interfaces (JDBC, mySQL, ...)
- Standard Unix system call interface:
- file access
- time and date manipulation
- system files
- process management
- signals
- getopt
- syslog
- Internationalization
- Secure programming
- UML
- Selected OO design patterns
Time permitting (these topics are also covered in CS 4118):
- threads and concurrency
- shared memory