Computer Science 215 -Tools and Techniques for Software Development

[Catalog Description]  ·  [Who Should Take This Course]  ·  [Expected Outcomes]
[Course Outline   {Topics}  ·  {Lab Component}  ·  {Additional Components}]

Catalog Description

An intensive course on software development using an imperative language. Topics include typical program development tools such as debuggers and make files, software development and testing techniques such as separate module development and testing, pointers and explicit heap management, and low-level file I/O.

Credits: 3 (2,2)

Prerequisite: C or better in CP SC 102 or 212.

Who Should Take This Course

Required for: Majors in Computer Science and Computer Information Systems.
Elective for: Any interested student who satisfies the prerequisites.

Expected Outcomes

The student who completes this course:
  • Will have intermediate-level programming skills in the imperative language used in the course (C).
  • Will have an introductory-level knowledge of the facilities of C++.
  • Will be able to use basic Unix program development tools.
  • Will understand and be able to write programs for basic binary and non-sequential file operations.
  • Will understand and be able to apply basic testing and debugging techniques.
  • Course Outline

    Topics

    Topic Percent
    Programming in C
    Basic concepts, data, statements, operators and expressions.
    Functions, pointers, arrays, strings, structures, and unions.
    Dynamic memory allocation and deallocation.
    The preprocessor.
    35%
    Software implementation techniques
    Modules and separate compilations; stubs, drivers, and incremental development.
    Testing and debugging, including use of tools.
    15%
    Basic concepts of I/O
    Binary and text file I/O.
    Random access file I/O.
    20%
    Basic facilities of C++
    I/O streams.
    Parameter passing mechanisms.
    Classes and inheritance.
    15%
    Additional topics, quizzes and exams. 15%

    Lab Component

    The purpose of the laboratory component is to introduce and use tools and techniques that improve students' skills in developing programs in a Unix environment.

    Lab topics include:

    1. Basic and intermediate Unix commands; man pages; editors; files.
    2. Compilation, linking, and execution of programs in C and C++.
    3. Use of the C language.
    4. Make files.
    5. Debuggers.
    6. File I/O.
    7. Unix utilities, including awk and grep; I/O pipes and redirection.
    8. Unix system and hidden files.
    9. Writing shell scripts.

    Additional Components

    There will be several programming projects to be completed outside class and lab. At least one of the projects will be a major project requiring a substantial amount of work to complete.

    Return to top

    separator separator separator separator separator separator separator separator separator

    Last Updated:
    © Department of Computer Science. All rights reserved.
    Renovation, mistakes, and maintenance by the Webmaster.