To navigate to a specific topic for COSC 1337, see the expanded menu options in the navigation tabs, or see the links below. Each lesson is titled "Module #"
Programming Methodologies and the Software Development Lifecycle: While a chapter in the book is not dedicated to this topic, we will begin by discussing the various programming methodologies available to us, and the pros and cons of each. We will also explore the stages of the Software Development Lifecycle, which will then be applied to completion of your group project.
Chapter 7: In this chapter the text begins to focus on the object-oriented paradigm. Students learn how to define their own classes and to create and use objects of these classes. Careful attention is paid to illustrating which functions belong in a class versus which functions belong in a client program that uses the class. In addition to demonstrating how to create and use constructors, students are introduced to member initialization lists, in-place member initialization, and constructor delegation. Good object-oriented practices are discussed and modeled, such as protecting member data through carefully constructed accessor and mutator functions and hiding class implementation details from client programs.
Chapter 12: This chapter covers standard library functions for working with characters and C-strings, as well as material on using string objects. It includes sections on character testing and character conversion functions, string class functions, functions in the C++11 string library, and overloaded to_string functions for converting numeric values to string objects.
Chapter 9: Here the student learns the basics of searching for information stored in arrays and of sorting arrays, including arrays of objects. The chapter covers the Linear Search, Binary Search, Bubble Sort, and Selection Sort algorithms and has an optional section on sorting and searching STL vectors. A brief introduction to algorithm analysis is included, and students are shown how to determine which of two algorithms is more efficient.
Chapter 10: This chapter explains how to use pointers. Topics include pointer arithmetic, initialization of pointers, comparison of pointers, pointers and arrays, pointers and functions, dynamic memory allocation, the nullptr key word, and more.
Chapter 11: This chapter continues the study of classes and object-oriented programming, covering more advanced topics such as inheritance and object aggregation and composition. Other topics include the this pointer, constant member functions, static members, friends, memberwise assignment, copy constructors, object type conversion operators, convert constructors, operator overloading, move constructors, move assignment operators, and overriding base class functions.
Chapter 15: The study of classes and object-oriented programming continues in this chapter with the introduction of more advanced concepts such as polymorphism and virtual functions. Information is also presented on abstract base classes, pure virtual functions, type compatibility within an inheritance hierarchy, and virtual inheritance.
Chapter 13: This chapter introduces more advanced topics for working with sequential access text files and introduces random access and binary files. Various modes for opening files are discussed, as well as the many methods for reading and writing their contents.