Dec 26, 2024  
2020-2021 Undergraduate Academic Catalog 
    
2020-2021 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

SE 2040 - Software Development III

3 lecture hours 2 lab hours 4 credits
Course Description
This course introduces students to additional scripted, procedural, and object-oriented programming languages including C and C++. Students are introduced to the concepts of compilation, memory management, linking, low-level types, efficient implementation of objects, and the Standard Template Library. (prereq: CS 2852 )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Explain the key differences between Java and C/C++
  • Make use of C/C++ compiler pre-processor directives
  • Create and make use of C functions
  • Create and make use of C++ classes
  • Make use of the Standard C Library and C++ Standard Library
  • Distinguish and make use of argument passing by value, reference, and address
  • Make use of C++ polymorphism, particularly virtual vs. non-virtual methods
  • Manage C memory directly via malloc() and free()
  • Manage C++ memory directly via new and delete
  • Create and make use of C++ namespaces
  • Create and make use of C++ templates
  • Make use of C++ operator overloading
  • Discuss how typing systems influence efficiency, readability, and reliability
  • Write procedural and object-oriented programs in a scripting language

Prerequisites by Topic
  • Object-oriented programming, Java, data structures

Course Topics
  • Procedural, object-oriented programming in a scripting language
  • Procedural, object-oriented C++ programming
  • Arrays, pointers, and dynamic data structures in C++
  • Separate compilation and C++ namespaces
  • Memory management in C++
  • Templates and the Standard Template Library
  • Procedural programming in C
  • Type systems in a scripting language, C, C++, and Java

Laboratory Topics
  • Scripting languages (2 sessions)
  • C++ (7 sessions)
  • C (1 session)

Coordinator
Dr. Robert Hasker



Add to Portfolio (opens a new window)