Fundamentals of UNIX This course is an introduction to the UNIX operating system from a user's point of view. The class covers the fundamentals of the UNIX operating system, basic commands, the C and Korn shell command line interpreters, the "vi" editor, email, redirecting the standard input and output streams, pipes, filters, text processing and manipulation using awk and sed, and network concepts. Students will be well versed in the basics of the UNIX operating system. See outline. UNIX Shell Programming This course is a continuation of Fundamentals of UNIX. Emphasis of the course is to develop scripts using C shell and Korn shell programming techniques. Each of these shells will be explored in detail: topics covered include aliases, environment variables, terminal and file I/O, basic decision-making and iteration, error-handling and debugging. Additionally, UNIX tools support for software development as well as an introduction to basic systems administration is covered. Students will be able to design, develop and debug shell scripts to enhance their ability to prototype solutions quickly and efficiently. See outline.
Perl Programming This course introduces users, programmers and system administrators to Perl (Practical Extraction and Report Language). Although Perl is hailed as the system administrator's language and is the standard de facto language for writing dynamic web pages, this practical course will be useful for anyone working with UNIX text files, databases and processes. The fundamental topics covered in this course are: data types, operators, regular expressions and pattern handling, conditional and looping constructs, file handles and filters, file testing, command arguments, subroutines and packages, the UNIX system interface, formatting and dbm files. See outline.
Programming Fundamentals This course provides a comprehensive introduction to programming, and builds a solid foundation of programming skills that can be used to master additional programming languages like C, C++, or Java. This course is ideal for those who want to transition to the C programming language from COBOL. Particular attention is given to block structure, scope and visibility of names, data types and representation of information, and use of subprograms/functions and arguments. Students will be able design and develop simple programs in the C programming language at the conclusion of the course. See outline.
C Language Programming This course thoroughly covers the basics of the C language, including data types, operators, selection and iteration control structures, blocks, functions, parameter passing, scope and lifetime of variables, arrays, string manipulation, structures and basic I/O. The course focuses on writing functions as process abstractions. Students will be able design and write basic programs in the C programming language at the conclusion of the course. See outline.
Advanced C Language Programming This course is a continuation of C Language Programming, focusing on advanced concepts of the C language. Topics include pointers and pointer algorithms, advanced I/O, bit manipulation, interfacing with standard library functions and operating system services, recursion, preprocessor directives, and software engineering with C. Students will be able to design and develop programs focusing on data structures and file I/O. See outline.
C++ Programming for Non-C Programmers This class provides a solid foundation in C++ for those with little or no C programming experience. The course will cover the core features of the C++ language and focus on the key concepts in the object-oriented paradigm. The student will first be introduced to the basic decision-making and looping constructs in the C language as well as structure and pointer concepts. Core topics in C++ include the following: defining and using classes, constructors, destructors, dynamic memory, function overloading and inheritance. Students will learn how to develop basic C++ programs employing object-oriented techniques. See outline
Fundamentals of C++ Programming This class provides the student with the necessary skills to design and develop basic programs in the C++ programming language, emphasizing object-oriented approaches to designing solutions. Topics include data abstraction, defining and using classes, constructors, destructors, dynamic memory, function and operator overloading, friend functions, inheritance, virtual member functions, and customizing input and output. Students will be able to develop basic C++ programs employing object-oriented techniques. See outline.
Advanced C++ Programming This course focuses on the more advanced features of the C++ language. The basic premise here is that the student has some experience with C++ language programming and is comfortable applying basic C++ concepts: creating abstract data types and using constructors and destructors. The advanced course will focus on the following features of the C++ language: function and operator overloading, friend functions, inheritance, virtual member functions, customizing input and output, templates and exception handling. Students will be able to understand and apply these more advanced features at the conclusion of the course. See outline.
Fundamentals of Java Programming The Fundamentals of Java Programming course introduces the student to the syntax of the Java programming language, including data types, variables, operators, decision-making and looping constructs. The object-oriented paradigm is also introduced, topics include: class creation, instance data, instance methods and parameter passing. Students will learn to apply the following concepts: references, arrays, strings, static data members and functions, applets and system properties. Students will be able to develop basic Java applications employing object-oriented techniques. See outline.
Advanced Java Programming The Advanced Java Programming course presents an in-depth discussion of the object-oriented paradigm. The object-oriented features of the language are formalized, including inheritance, abstract classes and methods as well as interfaces. In addition to developing more complex Java applications the student will get experience with creating graphical user interfaces (GUI), handling exceptions, using file input/output (I/O), threads and networking. Students will be able to develop more elaborate Java applications employing object-oriented techniques. See outline. |