по Magdin Stoica 15 дней назад
106
Больше похоже на это
Create object-oriented programs using a variety of objects you use in real-life
Create graphical user interfaces using MAUI that work with business logic objects
Using many objects will teach you to switch your hat when implementing your object-oriented programs
Draw your "thinking map" in UML to ensure you don't get lost
Implement something interesting with each object
Access the object's properties using accessor and mutation methods
Create object and set its properties
Interact with the user to ask for values of properties of the object
Extend in-class exercises with additional functionality
Add functionality to your objects (e.g. add perimeter calculation to an object that can calculate area)
Add information to your objects via field variables
Interactivity
Design/extend GUIs for the exercises we have done in class
Implement any TODOs left for practice in the in-class exercises
Re-create the same exercises from scratch. Just change the words (e.g. instead of Account use Employee)
Verify your understanding in the in-class exec ises
Use the Debugging functionality of the IDE for every program we have done in class
Incremental development
Do NOT write all the code before you compile and run the program for the first time
Run the program often.
If you think the code should have no runtime errors verify it by running the program
Debug the program often
Verify your assumptions
Compile very often. Know the keyboard shortcut.
If you think the code should have no syntax errors verify as often as you can
Take it step by step, one small step at a time
Must use your laptop
If your laptop is not working you will take the exam on paper
You will be evaluated as if you would have taken the exam using an IDE on your laptop
Make sure it works
Implement using the IDE used in class
DO NOT FORGET TO COMMIT YOUR FINAL CODE
There will be no time to study something for the first time during the exam. The open book is useful so you don't have to memorize things that are readily available like function names, predefined modules and classes etc.
NOT allowed access to AI assistants of any kind (e.g. ChatGPT, Perplexity, GitHub Copilot)
NOT allowed to post or send any information outside of the classroom on the Internet
NOT allowed any means of communicating with someone
NOT allowed to use someone else's work
Access to the professor's solutions for exercises and assignments
Access to YOUR OWN solutions for exercises and assignments
Access to the Internet for online documentation
Access to textbook(s)
Access to slides
Practice
Troubleshooting and fixing errors leads to very detailed and through understanding of what you are reading
Verify your solutions against solutions provided in SLATE
Practice using recommended execises
Complete all assignments using provided solutions
Finish all in-class exercises
MS Teams Content
Your notes
Slides
Simple code fragments. The main programming question is left for the practical section of the exam
Fill-in the blanks
Analyze the code and identify output or function
Short Answers
Matching Questions
Fill-in the Blanks
True/False
Multiple-Choice
Please ensure only one tab is used in the browser for SLATE
Have the LockDown Browser installed
Please bring your laptop
CollectionView
with objects
Tabs
Grid Layout
ListView
with string items
Entry
Labels
Horizontal Stack Layout
Buttons
Vertical Stack Layout
Programming Assumptions using Asserts
Documentation
XML Comments
Comments and Pseudo-code
Conditional Loops
do-while
while
break and continue
Counted Loops
foreach
for
Naming the counter variable
Common mistakes
Iteration
Condition
Counter variable
Common "switch" errors
switch
Conditional expressions
Common "if" errors
if / else if / else
if/else
if
Typecasting between objects
Method overriding
override
virtual
Calling methods in the base class
Constructors and Inheritance
Derived classes
Base clas
C# Properties
Derived Properties
Calculated
Generally read-only properties
Write-Only Properties
Read-Only Properties
Read-Write Properties
Accessor and Mutator Methods
Method expressions
Constructors
Constructors in derived classes
Constructor chaining
Constructor overloading
Default constructors
Scopes
Visibility
Internal vs. Public
Private vs. Public
Types of Named Scopes
Method Scope
parameter variables
local variables
executable statements
User Defined Scopes
Class scopes
field variables
Namespace Scopes
using statement
namespace statement
Named vs. Unnamed Scopes
What are scopes?
Type Transformations
Compatible and Incompatible Types
Parse()
Conversion from a string to a specific type
ToString()
Conversion from any type to a string
Type casting
Explicit casting
Implicit casting
Parametrized Types
Working with List collections
Initialization
Initializing field variables
Defining a constructor
public visibility (most of the time)
No return type
Same name as the class
Initialization of object variables
Calling the constructor
Using the "new" operator
Initialization gives the variable its first value through an assignment statement
Declarations
Local Variables
What is the difference between local and field variables?
Methods
What is the "type" of a method?
Parameter types
Return type
Field Variables
Specifying field variable visibility and type
How is it done?
Where is it done?
Declarations define the type of a variable or method
Declarations and Definitions
What is the difference?
What are they?
Enums
Structures
Literals
Literals and default types
Predefined Types in the .NET library
List class - Working with lists of objects
object
string
Boolean Type
bool
Character Type
char
Numeric Types
Floating-point Types
approximation errors
not all real numbers can be represented precisely
always signed
decimal (128 bit)
double (64 bit)
default floating-point type
float (32 bit)
Integral Types
Unsigned
ulong (64 bits)
uint (32 bits)
ushort (16 bits)
byte (8 bits)
Signed
long (64 bits)
int (32 bits)
default integral type
short (16 bits)
sbyte (8 bits)
Categories of Types
User-Defined Types
Enum
Stuct
Value type
Classes
Reference type
The types defined by the program itself
Predefined Types
User-defined types that are defined in the framework & libraries the program is using
Primitive Types
Boolean type
Character types
Numeric types
Types defined by the programming language
Memory Management with Types
Heap Memory
Reference types
Stack Memory
Value types
What are types?
Type Safety
Dynamic type checking
Static type checking
Types used in functions / methods
Types for variables
Forking repositories
Branching Code
Feature branches
Merging branches
How
When
Code Management Workflows
Integration-manager workflow
Centralized workflow
Colaborating in teams
Sync
Pull
Fetch
Push
Commit
Managing Versions and Merging Conflicts
Merging conflicts
Viewing History of Commits
By project
By file
Viewing Changes
Remote Repositories with GitHub
Synching a local repository with a remote one
Pushing changes (commits)
Pulling changes (commits)
Cloning a remote repository locally
Publishing local repository remotely
Create remote repository
Introduction to GIT
Commiting changes
Creating code repositories
Adding a project to source control
Distributed Version Control Systems
Management of Code
Version Control
Code Storage
Code Integration
.NET Assemblies
Module assemblies
Statically linked libraries
Class library assemblies
Dynamically linked libraries
Executable assemblies
Compilation process in .NET
Compilation to native code
Intermediate Language
.NET Framework for GUI Development
MAUI Apps
XAML UI / Universal Apps
Displaying a message with string interpolation
XAML Designer and Properties
OS Support via XAML Components
WPF
Windows Forms
Displaying a message with string formatting
File Structure
Code (behind)
form.cs file
Graphical Layout
Event Handlers
Properties
form.designer.cs source file
Visual Studio Designer View
OS Support via Win32 Graphical Components
MAUI Architecture
.NET Framework Evolution
WinUI 3
.NET 5+
Windows 8, 8.1, 10
3.0/3.5
2.0
Overview of the .NET framework
.NET Framework Building Blocks
Framework Class Libraries
Commong Language Runtime
Four components of the interoperability standard
What is language interoperability and how is it achieved
What is .NET and what isn't?
C# Console Program: Hello World
Program class
Main method
Entry Point
Top Level Statements
Meta Files
Solution File
Project File
Resources
...
Styles
Fonts
Images
App Lifecycle
Stopped
Deactivated
Running
Not Running
Architecture of MAUI Apps
Communication between these architectural significant classes
Page
Page Caching
Navigation Implementation
AppShell
Window Class
App
MauiProgram
Purpose
Platform Program class and the Main() method
Multi-Platform Applications
Windows
macOS
Android
iOS
Universal Applications
Characteristics
Outputs
Inputs
Gaming Inputs
Mobile Inputs
Standard Inputs
Mobility
Adaptable UI
Universal UI Design
Types of Programs
Server (Remote) Programs
Client (Local) Programs
Evolution in Computing
Types of User Interfaces
Web
multi-user
dependent on other programs
server (remote side)
browser (client side)
local and remote components
request / response
graphical
GUI
single or multi-user
user driven
non-sequential flow
graphical UI
Console
typically single user
local
stand-alone
application driven
sequential flow
text based UI
User Interfaces
Output
Input
Debugging Windows
Debugging Commands
Debugging Workflow
Stop Debugging
Step-By-Step Execution
Inspect Data (Post)
Inspect Flow
Execute Line
Inspect Data (Pre)
Breakpoint
Start Debugging
Add Breakpoints
Types of assumptions
Input/Output
Program Flow
Data
Test to verify the program
Implement program features incrementally, feature by feature
Debug to validate your assumptions
Code the feature
Define accessor and mutator methods as needed
Define all constructors
Declare all field variables
Declare all classes
Software Reuse
Stepwise Refinement
Separation of Concerns
Sequence Diagrams
Class Diagrams
IS-A
HAS-A
USES
Code
UML Symbol
UML name