CS 251: Software Systems Lab

Course Code CS 251
Course Name Software Systems Lab
Lecture 1
Tutorial 3
Practical 0
Credit 8
Reference Online tutorials for HTML/CSS, Inkscape, OODrawUnix Man Pages for all unix tools, Advanced Bash Scripting Guide from the Linux Documentation Project (www.tldp.org)The Python Tutorial Online Book (http://docs.python.org/3/tutorial/index.html)The Java Tutorials (http://docs.oracle.com/javase/tutorial/)Latex - A document preparation system, Leslie Lamport, 2/e, Addison-Wesley, 1994
Description 1. Vim/emacs HTML, CSS 2. Report and presentation software: latex, beamer, drawing software (e.g. inkscape, xfig, open-office) 3. IDE (e.g. eclipse, netbeans), code reading, debugging Basic Java Java collections, interfaces4. Java threads Java GUI Introduction to documentation: e.g. doxygen/javadocs 5. Version management: SVN/Git 6. Unix basics: shell, file system, permissions, process hierarchy, process monitoring, ssh, rsync 7. Unix tools: e.g. awk, sed, grep, find, head, tail, tar, cut, sort 8. Bash scripting: I/O redirection, pipes 9. Python programming10. Makefile, libraries and linking 11. Graph plotting software (e.g., gnuplot) 12. Profiling tools (e.g., gprof, prof) 13. Optional topics (may be specific to individual students302222 projects): intro to sockets, basic SQL for data storage, JDBC/pygresql A project would be included which touches upon many of the above topics, helping students see the connect across seemingly disparate topics. The project is also expected to be a significant load: 20-30 hours of work.