Exam 2 Review
The midterm exam will be 50 minutes, closed book, closed note, and handwritten. Illegible (not clear enough to be read) answers will be subject to assumptions regarding the written content or in extreme cases, not graded at all. All answers should be concise reponses to the prompts. Excessively verbose responses that do not address the question directly will not receive full credit.
The following is a potential question pool for the exam. While the content of the questions will be conceptually derived from this list, wording and/or presentation may differ on the actual examination.
Format
13 Questions:
- 1 applied UML class diagramming question
- 6 written response questions
- 1 multiple choice
- 3 Fill-in the blank
- 2 True/False
Topic/Question Pool
Coding Style (SLIDES)
- Developers [BLANK] code more than they [BLANK] code.
- What are the 5 essential parts of good coding style?
- List and describe the three characteristics of a coding style.
- You were recently hired to a software company. You sit down at your desk to begin your first day of work and you notice that while the code looks okay, it does not follow standard stylistic design that you are familiar with or prefer. What do you do?
Naming (SLIDES)
- Why is good naming important in software engineering?
- The things we name in software are called [BLANK].
- In terms of parts of speech…
- [BLANK] are used for naming variables, parameters, types, classes, fields, and files.
- [BLANK] are used for naming functions and methods.
- Explain what is wrong with the names used for the following variables or functions?
- run = True
- def initialize_reporting_service_to_connect_to_credit_card_vendor_endpoint():
- def calculateRTPforENX():
Software Design (SLIDES)
- Explain the concepts of coupling and cohesion in class design.
- When desigining software, we strive for low [BLANK] and high [BLANK].
OOP (SLIDES)
- List and define the four pillars of OOP?
Class UML (SLIDES)
- Given a small Python application, create a UML Class diagram representing the classes and their relationships. The diagram should use proper UML format discussed in class and on the slides.
Design Principles (SLIDES)
- The SOLID design principles are [BLANK] for Object-Oriented Design.
- List and explain the 5 SOLID Principles.
- A good practice is to code to an [BLANK] and not an [BLANK].
- Use SRP Analysis to decide which functions do and do not belong in the following class. Explain your decisions and SHOW YOUR WORK!
- SRP Example
- Explain the difference between the approaches of the Meyer’s Open/Closed Principle and the Polymorphic Open/Closed Principle.
- True/False: Use of SOLID design principles guarantees a better software design. Why or why not?
Design Patterns
- Resources:
- Why do we have software design patterns?
- List and describe the three categories of sofware design patterns.
- State the design pattern that best fits the following problem/program description (ONLY PATTERNS WE DISCUSSED ON SLIDES):
- Users need to receive notifications about new videos posted by their favorite social media content creators.
- When designing software we try to favor [BLANK] over [BLANK].
Database Terminology (DD4MM Book CH3)
- Name the three types of tables.
- True/False: Only one field can be a primary key.
- True/False: A table can only have one primary key.
- Describe the relationship between a primary and foreign key.
- What are the three types of relationships that can exist between a pair of tables?
- According to DD4MM, list and explain the three common types of database fields that appear in an improperly or poorly designed database?
Table Structure (DD4MM Book CH7)
- State at least X guidelines for naming tables.
- State at least X of the elements of the Ideal Field.
- State at least X of the elements of the Ideal Table.
Keys (DD4M Book CH8)
- Why is a primary key important?
- State at least X elements of a primary key.
Relationships (DD4MM Book CH10)
- What are three reasons why table relationships are important?
- What type of table is necesary to create a many-to-many relationship, and how do you create it?
Database Normalization (YouTube Video)
- What are the rules for 1NF, 2NF, and 3NF respectively?