CS 216 Introduction to Software Engineering Techniques

University of Kentucky
Department of Computer Science
CS 216 Introduction to Software Engineering Techniques
1.  Course Number/Name:  CS 216, Introduction to Software Engineering Techniques
2.  Credits and Contact Hours:  3 credits, 3 contact hours
3.   Instructor:  assigned by the department
4.   Textbook:  Lecture notes and online resources
5.    a.  Catalog Description:  Implementation of large programming projects using object-oriented design techniques and software tools in a modern development environment. Software engineering topics to include: life cycles, metrics, requirements specifications, design methodologies, validation and verification, testing, reliability and project planning.
b.  Prerequisites:  CS 215
c.    Required course:  Required
6.  a.   Outcomes of Instruction:  The students will reach mastery in programming in a modern object-oriented programming
            language. (The same language used in CS 215.) There will be a review and extension of some of the advanced topics from
            CS 215. Emphasis will be on larger projects and tools used in management of large projects. Students learn to develop
            programs in the Unix/Linux environment, and for the Internet. Students will be introduced to an interpretive programming
           Specifically, students will demonstrate knowledge of and skills in:
1.     programming in a modern object-oriented language; 
2.     designing, implementing and testing large projects;
3.     developing programs in the Unix/Linux environment;
4.     using an interpretive programming language;
5.     the software life cycle and software economics;
6.     methodology of software development for large projects.
b.   Contributions to Student Outcomes (ABET Criterion 3 for Computer Science)













CS 216












3- Strongly supported   2 – Supported   1 – Minimally supported
 7.   List of Topics Covered:
            1.   Introduction to Unix/Linux environment, practice Unix commands
            2.   Programming with C++ in the Unix/Linux environment
            3.   Shell script
            4.   GNU debugger and Unix makefile
            5.   Programming with exceptions
            6.   Review from CS215: List, Stack, Queue, and Binary Search Tree
            7.   Generic programming with templates
            8.   Software life cycle
            9.   System design
            10.  Recursion, Sorting and searching
            11.  Software testing