3.7 Oral Final

3.7 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 3.4 Date Night diagrams. Ensure that they are submitted, without errors, before your scheduled time.

A Be prepared to write code necessary to define an abstract class
B Be prepared to write code necessary to define an interface
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 To be successful in this oral final, it is necessary to be familiar with all content covered in Modules 3.1 through 3.4 (not Module 3.5)

A more specific list of topics can be found on the following page: Programming Concepts C Content Pages

B Study the code below
public interface IManager
{
    public void AssignWork();
}
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 decimal GetAverageEmployeeSalary()
{
    decimal totalSalary = 0.00m;

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

    return totalSalary / this.employees.Count;
}

public decimal AverageEmployeeSalary
{
    get
    {
        decimal totalSalary = 0.00m;

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

        return totalSalary / this.employees.Count;
    }
}
1 Be prepared to compare and contrast these two techniques using correct terminology
2 Be prepared to write code that utilizes both techniques
D Study the code below
private decimal salary;

public override decimal PaycheckAmount
{
    get
    {
        return this.salary / 26;
    }
}

protected decimal Salary
{
    get
    {
        return this.salary;
    }
    set
    {
        if (value > 0)
        {
            this.salary = value;
        }
    }
}

private decimal salary;

public override decimal PaycheckAmount
{
    get
    {
        return this.Salary / 26;
    }
}

protected decimal Salary
{
    get
    {
        return this.salary;
    }
    set
    {
        if (value > 0)
        {
            this.salary = value;
        }
    }
}
1 Be prepared to compare and contrast these two techniques using correct terminology
E Study the code below
if (reviewResult == "Excellent")
{
    result = salary * 1.1m;
}
else if (reviewResult == "Good")
{
    result = salary + 100.00m;
}
else
{
    result = salary + 1.00m;
}

switch (reviewResult)
{
    case "Excellent":
        result = salary * 1.1m;

        break;
    case "Good":
        result = salary + 100.00m;

        break;
    default:
        result = salary + 1.00m;

        break;
}
1 Be prepared to compare and contrast these two techniques using correct terminology
F Study the code below
public abstract class Employee
{
    private string name;

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

public class Manager : Employee
{
    private decimal salary;

    public Manager(string name, decimal salary)
        : base(name, salary)
    {
        this.salary = salary;
    }
}
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
G Study the code below
public interface IManager
{
    void AssignWork();
}

public interface IWorker
{
    void DoWork();
}

public class Manager : Employee, IManager, IWorker
{
    public void AssignWork()
    {
    }

    public void Work()
    {
    }
}
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
H Study the code below
public abstract class Employee
{
    public void TakeBreak()
    {
    }
}

public class Worker : Employee
{
    public override void TakeBreak()
    {
        // Clock out.

        // Read magazine.

        // Clock in.
    }
}
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
4.Attend the final