CSCE A211 Final/Midterm 3 Exam Topics
The exam is open book and open notes. However,
they are not open-neighbor. You can use a computer to access any notes you may have taken, programs you wrote, handouts or programs I have provided, or to read your book (if you have an electronic version). However, you are not allowed to use the computer to compile and run programs or to do anything online. You will have a variety of questions on the exam. There may
be a small number of short-answer and multiple choice questions. There will be more
questions where you will be given some code and asked to trace through it when executed, or given small bits of code to write. The coverage is based on the lecture material. The topics that will be covered are listed
below:
Anything from Midterms 1 and 2
- But the emphasis is on material since the last midterm
Inheritance
- Concept of inheritance and polymorphism, where it is helpful
- Difference between a virtual function and overriding a function
- C++ vs. Java virtual function
- Calling parent constructor from child constructor
- Why use a virtual function and how to implement one
- Be able to walk through code that uses virtual / non-virtual functions and know what is called
- Know what functions are available due to inheritance, how to call base function in derived class
- Abstract classes and abstract functions
Graphics
- Coordinate system, pixels, RGB color model
- Draw simple shapes (rectangle, square, line)
Linked Data Structures
- How to create a linked list, add, insert or delete from the list, correctly handle special conditions at the front or end of the list
- Possibly create/interpret some other structure that is linked together
- Free up nodes to eliminate memory leaks
Exceptions
- try/catch/throw mechanism, ability to throw different data types
- Creating our own exception class and throwing it
- When to use exceptions vs. returning error codes or handling directly in the code when the exception occurs
Templates in C++
- Why use a template class, what does it do for us?
- Steps to create a template class
- How to use a template class, i.e. make a class with some instantiated type
Standard Template Library
- Adding to a vector, iterating through a vector
- How to use an iterator and the ranged-for loop
- Using the map class, adding, searching, iterating through keys and values
Regular Expressions
- Familiarity with using regex_match, create regular expressions to validate things like dates, phone numbers, monetary values, zip code, etc.
- Using character classes like \d or \w
Misc
- std::array, what's it good for?
- shared_ptr, concept of reference counting and limitations; be able to convert code using regular pointers to code using shared_ptr
- C programming: printf, scanf, malloc, free