2.7 Oral Final

2.5 Oral Final

The oral final will consist of a one-on-one, 20-minute discussion which will assess your knowledge of programming concepts. The exam will take place in a meeting room in the southeast area of iTEC, near room A122 on the Wausau campus (or online via Slack and Google Hangouts if you are an online/remote student). Dress professionally (business casual or better), arrive five minutes before your scheduled appointment. If you attend online, notify me via a Slack Direct Message when you are ready. Contact me in your f-channel with alternate arrangements if needed.

1.Schedule your Oral Final

Register early, as times are first-come, first-served.

A Using the Starfish link in Canvas, select your instructor, then select Teaching, Other, and select a time that works for you
B Submit a note in Canvas with the date and time that you signed up for in Canvas

If there are no time slots in Starfish, please message your instructor via Slack to arrange a time for your Oral Final. Please also suggest several time windows when reaching out.

2.Create diagrams for the final

A component of the final will be to discuss your completed 2.5 Date Night diagrams. Ensure that they are submitted, without errors, before your scheduled time.

A Be prepared to write code necessary to instantiate and configure List<> objects as specified on the object diagram
B Be prepared to write code necessary to define List<> fields as specified on the class diagram
C Be prepared to write code necessary to define methods as specified on the sequence diagram
D Be prepared to write code defining a foreach loop as specified on the activity diagram
3.Study for the following questions

You may use any means of researching/preparing for this exam, including discussing it with your classmates. Study groups are welcome and supported.

You can bring one sheet of notes with you to the final, but since the final is intended to measure your understanding of concepts rather than memorization, you may find that notes are not needed. Often, preparing notes is more valuable than the notes themselves.

A Study the code below
public class Company
{
    private readonly List<Employee> employees;

    public Company()
    {
        this.employees = new List<Employee>();
    }

    public void AddEmployee(Employee employee)
    {
        this.employees.Add(employee);
    }

    public void GiveEmployeeRaises()
    {
        foreach (Employee e in this.employees)
        {
            e.Salary = this.GiveEmployeeRaise(e.Salary, e.JobPerformance);
        }
    }
}
1 Be prepared to identify what this code is/does using correct terminology
2 Be prepared to identify each element of this code using correct terminology
B Study the code below
public class Company
{
    // Not all class code shown.

    private readonly List<Employee> employees;

    public decimal GetAverageEmployeeSalary()
    {
        decimal totalSalary = 0.00m;

        foreach (Employee e in this.employees)
        {
            totalSalary = e.Salary;
        }

        decimal theAverage = totalSalary / this.employees.Count;

        return theAverage;
    }
}
1 Be prepared to identify what this code is/does using correct terminology
2 Be prepared to identify each element of this code using correct terminology
3 Be prepared to discuss any problems with this code
C Study the code below
public class Company
{
    // Not all class code shown.

    private string name;

    private readonly List<Employee> employees;

    public Employee FindEmployee(string name)
    {
        Employee result = null;

        foreach (Employee e in this.employees)
        {
            if (e.Name == name)
            {
                result = e;
            }
        }

        return result;
    }
}
1 Be prepared to identify what this code is/does using correct terminology
2 Be prepared to identify each element of this code using correct terminology
3 Be prepared to discuss any problems with this code
D Study the code below
public class Company
{
    private string name;

    private readonly List<Employee> employees;

    public Company(string name)
    {
        this.name = name;
    }

    public void AddEmployee(Employee employee)
    {
        this.employees.Add(employee);
    }
}
1 Be prepared to identify what this code is/does using correct terminology
2 Be prepared to identify each element of this code using correct terminology
3 Be prepared to discuss any problems with this code
E Study the code below
public class Company
{
    // Not all class code shown.

    public Employee FindEmployee(string name)
    {
        // Method successfully returns an Employee object based on passed-in n
    }

    public void GiveEmployeeBonus(string name, decimal amount)
    {
        Employee employee = null;

        this.FindEmployee(name);

        employee.ReceiveBonusCheck(amount);
    }
}
1 Be prepared to identify what this code is/does using correct terminology
2 Be prepared to identify each element of this code using correct terminology
3 Be prepared to discuss any problems with this code
F Be prepared to discuss the Call Stack window in Visual Studio. What information does it show you? What do you use it for?
4.Attend the final