Bright Star Institute Mission Statement
Bright Star Institute is committed to providing cost effective paths for students to obtain new skills. Combining online training with mentored hands-on practice, our students achieve competency at the lowest cost possible. Our task-oriented curriculum is continually updated to provide the greatest return on time investment and provide the greatest possible relevance to real-world tasks.
Table of Contents Bright Star Institute Mission Statement ...... 1 Organizational Chart ...... 4 Admissions ...... 5 Distance Education ...... 5 Operating Calendar ...... 5 Tuition ...... 6 Cancellation and Refund Policy ...... 6 Financing Options ...... 6 Attendance...... 7 Leave of Absence ...... 7 Withdrawals ...... 7 Academic Advising and Student Evaluation ...... 7 Student Records ...... 7 Policy on Student Conduct and Dismissal ...... 8 Student Complaint/Appeal Process ...... 8 Informal Conflict Resolution Procedure ...... 8 Formal Conflict Resolution Procedure ...... 9 Reasonable Accommodations Policy – Individuals With Disabilities ...... 9 Notification of Rights Under FERPA with Respect to Student Records ...... 10 Unlawful Harassment Policy ...... 13 Names of Instructional Staff and Qualifications ...... 13 Description of Programs ...... 17 Course Descriptions ...... 18 Advanced .NET Framework Programming Using C# ...... 19 Advanced .NET Framework Programming Using VB.NET ...... 23 Advanced MVC: Building Web Applications Using the ASP.NET Web API with C# ...... 27 Advanced MVC: Building Web Applications Using the ASP.NET Web API with VB.NET ...... 30 Analyzing and Presenting Data with Power BI ...... 33 Analyzing Data using DAX and M Power Query ...... 37 Android™ Application Development ...... 39 ASP.NET MVC Programming for Experienced C# Programmers ...... 42 ASP.NET MVC Programming for Experienced VB.NET Programmers ...... 44 1
ASP.NET Web Forms Programming for Experienced C# Programmers ...... 46 ASP.NET Web Forms Programming for Experienced Visual Basic.NET Programmers ...... 49 ASP.NET Web Forms Programming Using C# ...... 52 C Programming ...... 56 C++ Programming for C Programmers ...... 59 Developing Mobile Websites with Responsive Web Design and jQuery Mobile ...... 62 Developing Web Applications Using Angular ...... 67 Effectively Using Java Packages and Features ...... 71 Introduction to Programming Concepts ...... 74 Introduction to Spring 5, Spring MVC and Spring REST ...... 77 Introduction to Spring Boot 2 ...... 81 Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX ...... 83 iOS Programming for iPhone® and iPad® Applications Using Objective-C ...... 87 Java Programming ...... 89 JavaScript Programming ...... 94 jQuery Programming ...... 98 Learning to Program with C# ...... 100 Learning to Program with Java ...... 103 Learning to Program with VB.NET ...... 106 Linux System Administration ...... 109 Microsoft SQL Server 2017 Administration ...... 113 Microsoft Transact-SQL Programming ...... 115 Node.js Application Development ...... 118 Object Oriented Analysis & Design with UML...... 121 Perl Scripting ...... 124 PHP Programming ...... 128 Python Programming ...... 132 SQL Programming ...... 135 SQL Server 2017 Business Intelligence: Integration Services and Analysis Services ...... 138 SQL Server 2017 Reporting Services ...... 141 Swift Programming for iPhone® and iPad® Applications...... 143 Test Driven Development (TDD), and Refactoring Legacy Code Using C# ...... 147 Test Driven Development (TDD), and Refactoring Legacy Code Using Java ...... 150 UNIX/Linux Fundamentals and Shell Scripting ...... 153 WCF Programming for Experienced C# Programmers ...... 156 Website Development with HTML5, CSS and Bootstrap ...... 158 Windows Forms Programming Using C# ...... 163 Windows Forms Programming Using Visual Basic.NET ...... 167 Windows Presentation Foundation Programming for Experienced C# Programmers ...... 171 Windows Presentation Foundation Programming for Experienced VB.NET Programmers ...... 174 Xamarin Cross-Platform Mobile Application Development ...... 177 2
3
Organizational Chart
Board of Directors Administrative Personnel
Robert Van Liew Patrick C. Spada, Executive Director Raymond Van Liew Robert Van Liew, CFO Roy Van Liew Raymond Van Liew, CMO Patrick Spada Roy Van Liew, CIO Steven Karl, CCO
Faculty Student Services Administrative Staff
Dana Wyatt, Instructor Jody Nelson, Registrar/Bursar Gary Cossaboom, Instructor Robert Van Liew, Registrar/Bursar Christopher Egan, Instructor Raymond Van Liew, Student Support Dominick A. Pante, Jr., Instructor Edgar Machado, Instructor Justin Meier, Instructor Kirk Smith, Instructor Robert D. Kieronski, Instructor
Technology Administrative Staff
Jody Nelson, Webmaster
4
Admissions
Bright Star Institute programs are open to all persons regardless of race, creed, gender, or national origin. Applicants must be at least 18 years of age, possess a high school diploma, GED, or an equivalent qualification, have access to an internet-connected computer and be able to benefit from the program
Corporate-sponsored applicants are exempt from the above minimum-education requirement.
Application for admission to Bright Star Institute may be completed online at www.brightstarinstitute.com. Admissions personnel may also be contacted by phone for any questions applicants may have about Bright Star or the admissions process.
Distance Education
At Bright Star Institute online learning gives you the flexibility to plan study time around the rest of your day. Our programs combine video, hands-on lab exercises and one-on-one facilitation to enable you to learn as your schedule allows. Labs are performed via remote access to a dedicated desktop PC lab machine and monitor (unless a student requests to utilize their own equipment).
Our unique commitment to student success begins with a low student-to-instructor ratio of 15 to 1 and includes a personal instructor to assure that your courses are completed on time and with full understanding of both the lecture content and the lab exercises.
If students are unable to complete a course within a reasonable time, the Institute’s policy is to be flexible and permit the student to complete the course at a later date. If a student is enrolled in a program consisting of multiple courses, all courses in the program must be successfully completed before a certificate is granted.
Operating Calendar
The Bright Star Institute operates year-round. Because Bright Star is a fully online institution, our students reside in many locations. All services are provided online and staff are available via email and chat. The main office of the Institute operates on Eastern Time and is open to students by appointment, except on the following holidays: News Year’s Day, Memorial Day, Independence Day, Labor Day, Thanksgiving Day and Christmas Day.
5
Tuition
The tuition cost for each program includes all fees needed to complete the course. There are no additional fees other than the cost of the program. Costs for all courses/programs are listed in the course catalog.
Cancellation and Refund Policy
If a student wishes to withdraw from a program or course, the student must notify the school in writing and mail or e-mail the letter to the school. A student is eligible for a full refund if they withdraw prior to class start. Once the student starts class, the refund of the tuition will be, per course:
A. After 0.001 percent enrollment time to 14.9 percent enrollment time of the course, 100 percent of the tuition will be refunded B. Between 15 percent to 24.9 percent enrollment time of the course, 55 percent of the tuition will be refunded C. Between 25 percent to 49.9 percent enrollment time of the course, 30 percent of the tuition will be refunded D. After 50 percent or more enrollment time of the course, the student may be obligated for the full tuition
Financing Options
Prospective students applying to the programs are provided the opportunity to utilize a number of financing options to assist with tuition payments. Detailed information can be obtained by calling Bright Star Institute.
6
Attendance
Courses begin every Monday except for weeks where observed holidays occur on a Monday – for a complete list of observed holidays, please see the Operating Calendar section earlier in this document. Classes will start on Tuesday of those exception weeks and will extend to the following Monday. Students may access the online content 24 hours a day. An instructor is assigned to assist you in completing lab exercises and to help with any questions about the course content.
Leave of Absence
If a student does not complete the coursework within the specified timeframe of the course, the student may receive a grade of Incomplete. All incomplete coursework should be resolved within eight (8) weeks of the end of the course. Students who require a longer time are required to apply for a leave of absence.
Withdrawals
If a student withdraws from a program or course, the student must notify the school in writing and mail or e-mail the letter to the school. Once withdrawn, refunds are based on completion percentage per course, as stated in the Refund Policy. It is the student’s responsibility to withdraw officially from the school. Failure to withdraw formally may result in additional financial obligations.
Academic Advising and Student Evaluation
The focus of Bright Star Institute is on the success of each student. Advisors are available to assist students, whether beginner or advanced, with selecting the appropriate courses to achieve their desired certificate.
For each class in their program, students are assigned a personal facilitator to assure successful completion and verify solid understanding of the course content through monitoring of lab exercises and dialogue with each student. Program certificates are awarded when all courses in the program have been completed satisfactorily.
Student Records
All student records and transcripts are kept on file permanently and are protected from fire, theft and other perils.
Students may request a copy of their program/course completions by contacting Bright Star Institute.
7
Policy on Student Conduct and Dismissal
There are typically very few problems with student misconduct in an online classroom. The instructor and administration do have the ability to delete offensive messages from any Discussion Board. The Institute also reserves the right to expel students for failure to observe acceptable online and Internet etiquette including, but not limited to, inappropriate behavior such as repeated posting of obscene or offensive messages. The Institute reserves the right to revoke a student’s password to the Online Classroom environment in order to prevent such behavior.
Students may be disciplined for acts of academic misconduct.
Student Complaint/Appeal Process
Bright Star Institute is committed to providing all of our students a quality educational experience that meets their career training needs. Students with complaints about any aspect of their experience with Bright Star Institute can have their concerns addressed. Bright Star Institute has both an informal and formal conflict resolution process as outlined below.
Informal Conflict Resolution Procedure
When a student believes that he/she has been treated unfairly by a Bright Star Institute staff member, the student shall communicate with the individual in a good faith effort to resolve the dispute promptly and fairly. Such communication shall be conducted via correspondence, email or phone communication at the option of the student. This is an informal process that promotes constructive dialogue and understanding, requiring no paperwork or forms.
Prior to pursuing the formal conflict resolution procedure, the student must use the following informal procedure:
● The student shall discuss the issue informally with the Bright Star Institute faculty or staff member. Both parties should openly discuss the matter in an attempt to understand varying perspectives, explore alternatives, and attempt to arrive at a satisfactory resolution to the issue within fifteen (15) instructional days from the date the student first makes the issue known. ● In the event of an absence from the Institute by the faculty or staff member for reasons such as vacation or termination of employment, the student shall contact the faculty or staff member’s supervisor for advice on how to proceed with the process. If the student feels that s/he cannot communicate directly with the faculty or staff member, s/he may contact the faculty or staff member’s supervisor directly. 8
● The faculty or staff member’s supervisor may act as a mediator to resolve the conflict in a prompt and fair manner.
Formal Conflict Resolution Procedure
1. In the event resolution is not achieved through the informal procedure, the student may initiate the formal procedure by writing a letter to the appropriate administrator or designee of the faculty or staff member. The letter must be submitted within ten (10) days of the conclusion of the unresolved informal process. The letter must include the following: A detailed description of the issue, including dates and time A summary of the actions taken by the student to resolve the issue A proposed solution 2. The appropriate administrator designee shall determine if the issue has merit. An issue without merit will be dismissed without further review and the student will be notified in writing of this determination. 3. If the issue is found to have merit, the administrator or designee shall attempt to resolve the issue by the following: a. Serving as an intermediary between the student and the faculty or staff member b. Considering all facts of the situation and talking with all parties involved c. Determining how to resolve the issue promptly and fairly 4. The administrator or designee handling the case will notify all parties in writing of the decision. 5. The student may appeal the decision to the Director. 6. The decision of the Director shall be final.
In the event a student has proceeded through the formal complaint process at Bright Star Institute and is unable to reach a resolution with the Institution, the student may file a complaint with the State of Delaware Department of Education, 35 Commerce Way, Suite 1, Dover, DE 19901.
Reasonable Accommodations Policy – Individuals With Disabilities
Bright Star Institute does not discriminate against individuals on the basis of physical or mental disability and is fully committed to providing reasonable accommodations to qualified individuals with a disability, unless providing such accommodations would result in an undue burden on the institution or fundamentally alter the nature of the relevant program, benefit, or service provided by Bright Star Institute. Students may request an accommodation by contacting the school. Individuals requesting an accommodation will need to complete a Request for Accommodation at least three weeks before beginning a program, or as soon as feasible. Disagreements regarding an appropriate accommodation or alleged violations of this policy may be addressed pursuant to Bright Star Institute’s grievance procedures.
9
Notification of Rights Under FERPA with Respect to Student Records
The Family Educational Rights and Privacy Act (FERPA) afford eligible students certain rights with respect to their education records. An “eligible student” under FERPA is a student who is 18 years of age or older or one who attends a postsecondary institution. These rights include:
1. The right to inspect and review the student's education records within 45 days after the day Bright Star Institute receives a request for access. A student should obtain a Request to Inspect and Review Education Records form from the portal and submit to the Director, a written request that identifies the record(s) the student wishes to inspect. The school official will make arrangements for access and notify the student of the time and place where the records may be inspected. Students are not entitled to inspect and review financial records of their parents. If the records are not maintained by the school official to whom the request was submitted, that official shall advise the student of the correct official to whom the request should be addressed.
2. The right to request an amendment of the student’s education records that the student believes is inaccurate, misleading, or otherwise in violation of the student’s privacy rights under FERPA. A student who wishes to ask the school to amend a record should write to the Director, clearly identify the part of the record the student wants changed, and specify why it should be changed. If the school decides not to amend the record as requested, the school will notify the student in writing of the decision and the student’s right to a hearing regarding the request for amendment. Additional information regarding the hearing procedures will be provided to the student when notified of the right to a hearing.
3. The right to provide written consent before Bright Star Institute discloses personally identifiable information from the student's education records, except to the extent that FERPA authorizes disclosure without consent. The school discloses education records without a student’s prior written consent under the FERPA exception for disclosure to school officials with legitimate educational interests. A school official is a person employed by the institution in an administrative, supervisory, academic, research, or support staff position (including law enforcement unit personnel and health staff); a person serving on the board of directors; or a student serving on an official committee, such as a disciplinary or grievance committee. A school official also may include a volunteer or contractor outside of Bright Star Institute who performs an institutional service of function for which the school would otherwise use its own employees and who is under the direct control of the school with respect to the use and maintenance of the education records, such as an
10 attorney, auditor, collection agent, or a student volunteering to assist another school official in performing his or her tasks. A school official has a legitimate educational interest if the official needs to review an education record in order to fulfill his or her professional responsibilities for the institution.
Parental access to a student’s record will be allowed by Bright Star Institute without prior consent if: (a) the student has violated a law or the institution’s rules or policies governing alcohol or substance abuse, if the student is under 21 years old; or (b) the information is needed to protect the health or safety of the student or other individuals in an emergency.
4. The right to file a complaint with the U.S. Department of Education concerning alleged failures by Bright Star Institute to comply with the requirements of FERPA. The name and address of the Office that administers FERPA is: Family Policy Compliance Office U.S. Department of Education 400 Maryland Avenue, SW Washington, DC 20202 Below is a listing of the disclosures that postsecondary institutions may make without consent:
FERPA permits the disclosure of education records, without consent of the student, if the disclosure meets certain conditions found in the FERPA regulations. Except for disclosures to school officials, disclosures related to some judicial orders or lawfully issued subpoenas, disclosures of directory information, and disclosures to the student, FERPA regulations requires the institution to record the disclosure. Eligible students have a right to inspect and review the record of disclosures. A postsecondary institution may disclose education records without obtaining prior written consent of the student in the following instances:
● To other school officials, including teachers, within Bright Star Institute whom the school has determined to have legitimate educational interests. This includes contractors, consultants, volunteers, or other parties to whom the school has outsourced institutional services or functions. ● To officials of another school where the student seeks or intends to enroll, or where the student is already enrolled if the disclosure is for purposes related to the student’s enrollment or transfer. ● To authorized representatives of the U. S. Comptroller General, the U. S. Attorney General, the U.S. Secretary of Education, or State and local educational authorities, such as a State postsecondary authority that is responsible for supervising the institution’s State-supported
11
education programs. Disclosures under this provision may be made, in connection with an audit or evaluation of Federal- or State-supported education programs, or for the enforcement of or compliance with Federal legal requirements that relate to those programs. These entities may make further disclosures to outside entities that are designated by them as their authorized representatives to conduct any audit, evaluation, or enforcement or compliance activity on their behalf. In connection with financial aid for which the student has applied or which the student has received, if the information is necessary to determine eligibility for the aid, determine the amount of the aid, determine the conditions of the aid, or enforce the terms and conditions of the aid. ● To organizations conducting studies for, or on behalf of, the school, in order to: (a) develop, validate, or administer predictive tests; (b) administer student aid programs; or (c) improve instruction. ● To accrediting organizations to carry out their accrediting functions. To comply with a judicial order or lawfully issued subpoena. ● To appropriate officials in connection with a health or safety emergency. ● Information the school has designated as “directory information” may be released at the school’s discretion. Bright Star Institute have defined directory information as the student’s name, address (es), telephone number(s), e-mail address, birth date and place, program undertaken, dates of attendance, honors and awards, photographs and credential awarded. If a student does not want his or her directory information to be released to third parties without the student’s consent, the student must present such a request in writing to the Director within 45 days of the student’s enrollment or by such later date as the institution may specify. Under no circumstance may the student use the right to opt out to prevent the institution from disclosing that student’s name, electronic identifier, or institutional e-mail address in a class in which the student is enrolled. ● To a victim of an alleged perpetrator of a crime of violence or a non-forcible sex offense. The disclosure may only include the final results of the disciplinary proceeding with respect to that alleged crime or offense, regardless of the finding. ● To the general public, the final results of a disciplinary proceeding if the school determines the student is an alleged perpetrator of a crime of violence or non-forcible sex offense and the student has committed a violation of the school’s rules or policies with respect to the allegation made against him or her. ● To parents of a student regarding the student’s violation of any Federal, State, or local law, or of any rule or policy of the school, governing the use or possession of alcohol or a controlled substance if the school determines the student committed a disciplinary violation and the student is under the age of twenty-one.
12
Unlawful Harassment Policy
Bright Star Institute is committed to the policy that all members of the school’s community, including its faculty, students, and staff, have the right to be free from sexual harassment by any other member of the school’s community. Should a student feel that he/she has been sexually harassed, the student should immediately inform the Director. Sexual harassment refers to, among other things, sexual conduct that is unwelcome, offensive, or undesirable to the recipient, including unwanted sexual advances.
Names of Instructional Staff and Qualifications
Dana L. Wyatt Dana Wyatt holds a Ph.D. in Computer Science from Texas A&M University and has been a Principal Consultant with HOTT since 1995. She currently spends much of her time designing courseware and teaching about a wide variety of topics, including: programming desktop, web and backend applications with the .NET Framework, programming devices using iOS and Swift and C/C++ programming.
Ms. Wyatt has written or co-written over 50 technical courses. She has also co-authored two textbooks on Visual Basic.NET for Prentice-Hall.
Dr. Wyatt has served on Computer Science faculties at the University of North Texas, Texas Christian University and Texas A&M University, where she taught classes in computer architecture, programming languages, database systems, simulation techniques, operating systems and problem solving. She received an ASEE fellowship and worked on distributed database problems at NASA Goddard Space Flight Center.
Christopher Egan Chris Egan has been a full time technical instructor since 1999, delivering classes and maintaining courseware for introductory and advanced C#, introductory and advanced Visual Basic.NET, ASP.NET using C#, ASP.NET using Visual Basic.NET, HTML/JavaScript, jQuery, jQuery Mobile, HTML5, SQL Programming, AngularJS, ASP 3.0 and both introductory and advanced Visual Basic 6.0 courses.
Mr. Egan is responsible for the development and maintenance of multiple corporate web sites using HTML, JavaScript, ASP, ASP.NET and jQuery. His development experience includes coding and maintaining a proprietary Visual Basic application used for maintaining course information and student registrations as well as report generation, utilizing a SQL Server database via OLE DB.
He has also developed and maintains a Visual Basic application that generates both HTML and ASP pages for corporate web sites. 13
Mr. Egan is currently a Principal Instructor responsible for delivery of introductory and advanced training in Microsoft .NET frameworks, advanced web site development, and SQL Programming, as well as development and upgrades of student guides and lab guides.
Mr. Egan hold a B.S. in Marketing from Bentley College as well as a Certificate in Client/Server Application Development from Clark University.
Dominick A. Pante, Jr. Dom Pante has over thirty (30) years of experience in the data processing field. He has managed technical professional staff and projects, advised corporate executives on new technology, and designed and implemented computer systems. He has developed and implemented corporate data processing, quality assurance, testing, and training standards, and has developed and taught numerous data processing, open system, programming language, object oriented, and client/server related courses.
Prior to working with Bright Star, Mr. Pante has directed a corporate technical and professional development Educational Services organization with an operating budget of over $3 million, directing a staff of over forty-five (45) management, administrative, and technical personnel. Previous to that he managed a staff of over twenty (20) UNIX technical consultants and instructors. He has extensive software development experience using C, C++, XML and Java.
Mr. Pante has designed and taught courses in areas related to data processing standards, structured testing techniques, the C, C++, and Java Programming Languages, and the use of the UNIX and Linux operating systems. Specific training courses developed and taught include Structured Test Plans, Introduction to UNIX/Linux, UNIX Shell Programming, UNIX Pattern Tools (awk, sed), Introduction to C Language Programming, Advanced C Language Programming, C/UNIX Interface(system calls), Programming in Object Oriented C++, Java Programming, Java Packages and Features, and UNIX System Internals Overview.
Mr. Pante has developed and presented various UNIX Tutorials at multiple Local and National UNIX conferences including Tek21, UniForum, UNIX Expo, and UNIX Systems Expo.
Mr. Pante holds a B.S. in Industrial Engineering and a M.S. in Engineering Management from New Jersey Institute of Technology.
14
Edgar Machado Edgar Machado has been a technical instructor delivering software programming classes for over 20 years. He currently delivers a wide array of classes using both Microsoft Official Curriculum and proprietary courseware. Classes range from Windows Active Directory to SQL Server Database Design and programming with MS Visual Studio and Visual Basic for Applications. Mr. Machado provides consulting services including integration of client/server applications, database development and application development. His current area of specialization is MS SQL Server design and implementation ranging from relational database design and devotement to complex Business Intelligence solutions that integrate with SharePoint, integration with Microsoft Azure, and PowerBI.
Mr. Machado has extensive experience working with Microsoft server products including integration between database, email, system management, web, B2B and Active Directory environments. He has assisted clients performing integration with client front end applications and programming using Visual Basic, Structured Query Language, VBScript and ADO, C, XML, ADO.Net, and ASP.Net.
Mr. Machado holds several professional certifications MCSA, MCITP, and MCT (Microsoft Certified Trainer). He holds a B. S. in Industrial Distribution, College of Engineering, Texas A&M University.
Gary Cossaboom Gary Cossaboom has been an independent IT training contractor for over 12 years. Prior to that he has been a certified instructor for the SUN system administration/networking curriculum as well as a certified instructor for ORACLE development curriculum. He has delivered Perl, PHP, WWW Implementation and Design, Tcl/Tk, UNIX and Shell Programming, Angular programming, SQL Programming, T-SQL and related courses for corporate and Government clientele.
Gary currently regularly delivers courses in the areas of web programming (PHP, Angular, HTML/JavaScript/Bootstrap), SQL and T-SQL Programming, Linux System Administration and UNIX/Shell Programming. He is also a regular facilitator for on-demand streaming corporate clients in these topical areas.
Justin Meier Justin Meier is a Certified Microsoft Professional who combines his technical skills with superior communication and teaching abilities. For the past 15 years Mr. Meier has been an independent consultant delivering SQL Server database development, administration and business intelligence/analytics courses for the past 15 years to a wide range of industrial and government clients. In addition to proprietary courses,
15
Mr. Meier delivers Microsoft Official Curriculum. In addition to his Microsoft Certified Systems Engineer (MCSE), Justin also holds the following certifications: MCDST, MCDBA, MCTS, MCITP SQL Server Database Administration and MCTS/MCITP SQL Server Business Intelligence. Mr. Meier also maintains a SQL Server installation for a small business and does occasional SQL consulting when not training. Mr. Meier holds a B.A. in Psychology from the University of Wisconsin-Madison.
Kirk Smith Kirk Smith has over 20 years of experience in UNIX/Linux computer system programming and administration, Web development, TCP/IP networking support, and Windows system support. Kirk has been a full time technical instructor for the past ten years, delivering courses in UNIX/Shell programming, Linux System Administration, HTML/CSS/JavaScript programming, AngularJS and Angular Programming, jQuery, PHP, Perl, C and SQL Programming. Prior to that he worked for ten years as an independent consultant and web developer subsequent to a 7-year stint as the Director of Purdue University Ag Computer Network. Mr. Smith holds a Bachelor's Degree in Computer and Electrical Engineering from Purdue University and a Master's Degree in Computer and Electrical Engineering, also from Purdue University.
Robert D. Kieronski Robert Kieronski has over 25 years of Information Technology experience in a wide variety of software, hardware and customer environments. He has taught a wide variety of technical course for universities and industrial clients, including College of San Mateo and Metro State College, Denver. For the last 16 years he has been an independent consultant delivering technology training for business clients in subjects such as C and C++, Java, Java Frameworks (Spring/Hibernate), Perl, Web development, Linux/UNIX administration and relational database programming. As a Senior Software Engineer with Vericept Corporation he designed and maintained various components of an automated product update system, using a MySql database, Perl DBI modules, and Cold Fusion Web-based management interfaces. Designed and implemented a PostgreSQL database under Linux, for components internal to the Vericept product, to manage functional and user management metadata and aggregate it in a master/slave-networked configuration. He implemented Perl libraries to interface to this system, as well as various installation and integrity management programs in Perl and UNIX/bash shell scripts. He has a wide variety of application programming experience using Oracle and SQL Server databases on various UNIX/Solaris systems spanning over 30 years in the IT industry.
Mr. Kieronski holds a B.S. in Electrical Engineering & Computer Science from Cornell University College of Engineering.
16
Description of Programs
C/C++ Programmer Java Programmer Linux System Administrator Master Java Developer Master SQL Server Developer Microsoft .NET Developer: C# Microsoft .NET Developer: VB.NET Mobile Application Developer Python Programmer SQL Programmer SQL Server Administrator SQL Server Business Intelligence Developer UNIX Software Developer Web Developer
Detailed information about all programs can be found on Bright Star’s website at www.brightstarinstitute.com
Detailed course descriptions are contained in the following pages of the Course Catalog.
17
Course Descriptions
18
Advanced .NET Framework Programming Using C#
Duration: 35 hours
Price: $900
Prerequisites: C# programming experience.
Description: This hands-on course examines how to utilize advanced features of C# and the .NET Framework in order to build sophisticated, scalable, high-performing applications. The course includes coverage of features available in .NET 2.0 through .NET 4.5.
The course begins by reviewing .NET's Common Type System, and then examines nullable types, inferred types and dynamic data. Advanced object-oriented programming topics include auto-implemented properties, inheritance, abstract classes, sealed classes, and generics, as well as how to implement many of the .NET interfaces in order to take advantage of .NET functionality.
Students learn how to use synchronous and asynchronous delegates to call methods using late binding, as well as how to use delegates to define and fire custom events and manage callbacks. The course shows how to build multithreaded applications and synchronize access to shared resources, including the Thread and ThreadPool classes as well as .NET 4.0's Task class and the Parallel Task Library. Coverage of the new .NET 4.5 Async and Await features is included.
Students learn how to work with data in .NET's collections, as well as how to create and use custom generic methods and collections. Database topics include how to use ADO.NET to manipulate data in databases and how advanced ADO.NET features provide support for transaction management, connection pooling, and the management of disconnected DataSets. Coverage includes how to work with XML documents and make XPath queries.
The course includes the use of LINQ to make queries of data, regardless of its location. Coverage includes using LINQ to Objects, LINQ to SQL, LINQ to DataSets and LINQ to XML, as well as how PLINQ can be used to make efficient queries on large sets of data located in memory.
Students learn about .NET's support for n-tiered application development, including encapsulating functionality in private and shared assemblies. Students also explore how to create and consume WCF services to build distributed systems.
The course includes coverage of attributes and reflection, and how to leverage attributes and reflection to design creative, robust solutions to common design problems.
19
Other topics include: overriding System.Object methods; boxing and unboxing issues; when to use the String vs. StringBuilder types; working with data in other cultures (internationalization); and pattern matching using regular expressions.
Comprehensive labs provide students with extensive experience coding with Visual Studio to practice with the topics presented throughout the course.
Course Overview
Working with Types Object-Oriented Programming
. Common Type System . Defining and Using Classes . Value vs. Reference Types . Understanding Partial Classes . Using Nullable Types . Using Inheritance . Using Inferred Types . Abstract Classes vs Sealed Classes . Working with Dynamic Data . Understanding System.Object Methods . Understanding .NET Interfaces . Working with Interfaces
Working with Text Collections and Generics
. Using Strings and StringBuilder . Understanding .NET Collections . Measuring Performance Using Stopwatch . Ordered vs. Unordered Collections . Working with Data from Other Cultures . Managing Data with .NET Collections . Using Pattern Matching and Regular Expressions . Defining Generic Methods . Building and Using Generic Classes . Defining Extension Methods
Working with Delegates Managing Data with ADO.NET
. Understanding Delegates . ADO.NET Object Model . Single-cast vs. Multi-cast Delegates . Connected vs. Disconnected Access . Defining and Using Delegates . Working with Data in Databases . Working with Synchronous and Asynchronous . Calling Stored Procedures Delegates . Working with Transactions . Understanding the Relationship Between . Managing Connection Pooling Delegates and Events . Using the ADO.NET Provider Factory . Defining and Raising Custom Events . Working with Untyped DataSets . Handling Custom Events . Working with Typed DataSets . Managing DataViews
Working with XML Data Working with LINQ
. Understanding XML and XML Schemas . Understanding LINQ . Using XML with DataSets . Building LINQ Queries 20
. Using XmlReader and XmlWriter . LINQ and Extension Methods . Manipulating XML Data Using XmlDocument . Defining Data Layers Using LINQ . Querying XML Data Using XPath . Using LINQ to Objects . Working with XPathDocument . Using LINQ to SQL . Using LINQ to DataSets . Using LINQ to XML
Working with Threads Working with the ThreadPool
. Overview of Threading . Understanding Thread Pooling . Creating Threads . Managing the ThreadPool . Passing Data to Threads . Creating Threads Using the ThreadPool Class . Returning Data from Threads . Working with the Task Class . Managing Threads . Managing Tasks . Problems with Threads . Synchronizing Threads . Debugging Threads . Using Async and Await
Working with the Parallel Task Library Assemblies
. Overview of Parallel Programming . Understanding .NET Assemblies . Using the Parallel Class . Private vs. Shared Assemblies . Making PLINQ Queries . Where is the Global Assembly Cache (GAC)? . Using Concurrent Collections . Building and Using Private Assemblies . Defining Strong Names . Building, Installing and Using Shared Assemblies . Configuring Assemblies . Targeting Multiple Versions of .NET
Working with Attributes Using Reflection
. Understanding Attributes . Understanding Reflection . Using .NET Attributes . Extracting Type Information . Designing Custom Attributes . Using Reflection for Late Binding . Using Custom Attributes
Windows Communication Foundation (WCF)
. Understanding WCF . Defining Service and Data Contracts . Building a Service . Hosting a Service . Managing Endpoints . Exposing Metadata
21
. Calling a WCF Service
22
Advanced .NET Framework Programming Using VB.NET
Duration: 35 hours
Price: $900
Prerequisites: Visual Basic.NET programming experience.
Description: This hands-on course examines how to utilize advanced features of VB.NET and the .NET Framework in order to build sophisticated, scalable, high-performing applications. The course includes coverage of features available in .NET 2.0 through .NET 4.5.
The course begins by reviewing .NET's Common Type System, and then examines nullable types, inferred types and dynamic data. Advanced object-oriented programming topics include auto-implemented properties, inheritance, abstract classes, sealed classes, and generics, as well as how to implement many of the .NET interfaces in order to take advantage of .NET functionality.
Students learn how to use synchronous and asynchronous delegates to call methods using late binding, as well as how to use delegates to define and fire custom events and manage callbacks. The course shows how to build multithreaded applications and synchronize access to shared resources, including the Thread and ThreadPool classes as well as .NET 4.0's Task class and the Parallel Task Library. Coverage of the new .NET 4.5 Async and Await features is included.
Students learn how to work with data in .NET's collections, as well as how to create and use custom generic methods and collections. Database topics include how to use ADO.NET to manipulate data in databases and how advanced ADO.NET features provide support for transaction management, connection pooling, and the management of disconnected DataSets. Coverage includes how to work with XML documents and make XPath queries.
The course includes the use of LINQ to make queries of data, regardless of its location. Coverage includes using LINQ to Objects, LINQ to SQL, LINQ to DataSets and LINQ to XML, as well as how PLINQ can be used to make efficient queries on large sets of data located in memory.
Students learn about .NET's support for n-tiered application development, including encapsulating functionality in private and shared assemblies. Students also explore how to create and consume WCF services to build distributed systems.
The course includes coverage of attributes and reflection, and how to leverage attributes and reflection to design creative, robust solutions to common design problems.
23
Other topics include: overriding System.Object methods; boxing and unboxing issues; when to use the String vs. StringBuilder types; working with data in other cultures (internationalization); and pattern matching using regular expressions.
Comprehensive labs provide students with extensive experience coding with Visual Studio to practice with the topics presented throughout the course.
Course Overview
Working with Types Object-Oriented Programming
. Common Type System . Defining and Using Classes . Value vs. Reference Types . Understanding Partial Classes . Using Nullable Types . Using Inheritance . Using Inferred Types . Abstract Classes vs Sealed Classes . Working with Dynamic Data . Understanding System.Object Methods . Understanding .NET Interfaces . Working with Interfaces
Working with Text Collections and Generics
. Using Strings and StringBuilder . Understanding .NET Collections . Measuring Performance Using Stopwatch . Ordered vs. Unordered Collections . Working with Data from Other Cultures . Managing Data with .NET Collections . Using Pattern Matching and Regular Expressions . Defining Generic Methods . Building and Using Generic Classes . Defining Extension Methods
Working with Delegates Managing Data with ADO.NET
. Understanding Delegates . ADO.NET Object Model . Single-cast vs. Multi-cast Delegates . Connected vs. Disconnected Access . Defining and Using Delegates . Working with Data in Databases . Working with Synchronous and Asynchronous . Calling Stored Procedures Delegates . Working with Transactions . Understanding the Relationship Between . Managing Connection Pooling Delegates and Events . Using the ADO.NET Provider Factory . Defining and Raising Custom Events . Working with Untyped DataSets . Handling Custom Events . Working with Typed DataSets . Managing DataViews
Working with XML Data Working with LINQ
. Understanding XML and XML Schemas . Understanding LINQ . Using XML with DataSets . Building LINQ Queries
24
. Using XmlReader and XmlWriter . LINQ and Extension Methods . Manipulating XML Data Using XmlDocument . Defining Data Layers Using LINQ . Querying XML Data Using XPath . Using LINQ to Objects . Working with XPathDocument . Using LINQ to SQL . Using LINQ to DataSets . Using LINQ to XML
Working with Threads Working with the ThreadPool
. Overview of Threading . Understanding Thread Pooling . Creating Threads . Managing the ThreadPool . Passing Data to Threads . Creating Threads Using the ThreadPool Class . Returning Data from Threads . Working with the Task Class . Managing Threads . Managing Tasks . Problems with Threads . Synchronizing Threads . Debugging Threads . Using Async and Await
Working with the Parallel Task Library Assemblies
. Overview of Parallel Programming . Understanding .NET Assemblies . Using the Parallel Class . Private vs. Shared Assemblies . Making PLINQ Queries . Where is the Global Assembly Cache (GAC)? . Using Concurrent Collections . Building and Using Private Assemblies . Defining Strong Names . Building, Installing and Using Shared Assemblies . Configuring Assemblies . Targeting Multiple Versions of .NET
Working with Attributes Using Reflection
. Understanding Attributes . Understanding Reflection . Using .NET Attributes . Extracting Type Information . Designing Custom Attributes . Using Reflection for Late Binding . Using Custom Attributes
Windows Communication Foundation (WCF)
. Understanding WCF . Defining Service and Data Contracts . Building a Service . Hosting a Service . Managing Endpoints . Exposing Metadata
25
. Calling a WCF Service
26
Advanced MVC: Building Web Applications Using the ASP.NET Web API with C#
Duration: 35 hours
Price: $900
Prerequisites: Prior experience building ASP.NET MVC web sites.
Description: This course provides students with the skills needed to create sophisticated web applications using advanced features of ASP.NET MVC, the Entity Framework, Web API, and the popular JavaScript libraries jQuery, jQuery UI, Bootstrap and AngularJS. Students will build several ASP.NET MVC web applications using Visual Studio during the week to reinforce the skills they learn.
The course begins with an overview of ASP.NET MVC for experienced programmers and then covers the fundamentals of responsive website design. Students then learn how to use Bootstrap with MVC to make a web site responsive on devices from large desktop displays to small mobile devices.
Students will learn how to integrate jQuery into an MVC application to provide dynamic, client-side behavior. They will then learn how to use jQuery's Ajax features to build more interactive MVC applications. Students will also learn how to use jQuery UI widgets to provide a more sophisticated user interface for their MVC views.
The course covers use of the Entity Framework to provide a data access layer for an MVC application. The Database First strategy is briefly examined before thorough coverage of the more configurable Code First strategy. Students will also learn how to use the Web API to build APIs that expose services and data via HTTP. These APIs can be used by a diverse set of clients including browsers, desktop applications and mobile devices.
The course includes coverage of Single-Page Applications. In these types of applications, the entire page is loaded in the browser after the initial request. All other interactions with the server utilize Ajax requests to update the page. The service layer is implemented with the Web API.
Additional topics include: using HTML helpers to design views; creating both inline and custom HTML helpers to encapsulate view markup; using convention-based and attribute routing to support custom routes; and use of the NuGet packages with MVC applications.
Course Overview
Quick Review of ASP.NET MVC Creating Views Using HTML Helpers
. What is the MVC Design Pattern? . What are HTML Helpers? 27
. Structure of an ASP.NET MVC Web Application . Understanding the Built-in HTML Helpers . Creating an ASP.NET MVC Application Using . Working with Inline Helpers Visual Studio . Working with Custom Helpers . Building Controllers to Handle HTTP Requests . Designing Views Using Razor . Using Layouts . Coding Models . Understanding Default Routing
Responsive Applications Using Bootstrap Using jQuery with MVC
. What is a Responsive Application? . What is jQuery? . What is Bootstrap? . Adding jQuery to an MVC Layout and/or Page . Normalization Across Browsers . Understanding jQuery Selectors . Working with Accordion . Using jQuery to Modify the DOM . Mobile First Design . Using jQuery to POST a Form . Understanding Bootstrap.css and Bootstrap.js . Including Bootstrap in a Layout and/or View . Understanding Bootstrap Typography . Understanding Bootstrap's Grid System . Principles for Designing a View . Working with Forms and Bootstrap
Using Ajax to Build Interactive MVC Applications Using jQuery UI Widgets with MVC
. What is Ajax? . What is jQuery UI? . Working with Partial Views . Including jQuery UI in an MVC Layout or View . Making Asynchronous Calls Using jQuery . jQuery UI Widgets . Working with JSON Data . Working with Tabs . Working with DatePicker . Working with Accordian . Working with Menu . Working with AutoComplete . Working with Dialog . Working with Tooltips . Using jQuery UI Themes
MVC and Routing Working with the Entity Framework
. Default Routing . What is the Entity Framework? . Custom Routes . Entity Framework Strategies . Why Use Custom Routes? . Using Database First . Understanding RouteConfig . Generating the Context and Entity Classes . Registering Convention-Based Routes . Writing Basic Queries . Adding Constraints with Convention-Based Routes . Performing Joins . Using Attribute Routing . Interacting with Stored Procedures 28
. Adding Constraints with Attribute Routing . Making Database Updates . Code First . Designing the Data Context . Building the Entities . Configuring Relationships . Seeding Tables . Writing Basic Queries . Performing Joins . Interacting with Stored Procedures . Making Database Updates
Creating the Service Layer Using Web API Building Single Page Applications with ASP.NET MVC, Web API and AngularJS . What is Web API? . Exposing Services and Data . What is the Architecture of a Single-Page . Types of Clients that Can Work with Web API Application? . Creating a Web API Service . What is AngularJS? . Working with Web API Controllers . Understanding the AngularJS Architecture . Understanding Web API Action Results . Including AngularJS within the Page . Working with Data . Building AngularJS Controllers . Filtering Requests . Creating an AngularJS Template to Define a View . Routing and Web API . Using CSS3 Properties to Perform Animation . Creating Web API Help Pages Effects . Creating REST Services with Web API . Configuring Web API . Securing a Web API . Using a Web API with MVC
Working with NuGet
. What is NuGet? . What Types of Packages are Available? . Installing NuGet Packages . Popular NuGet Packages . .NET JSON Libraries . Logging . JavaScript Libraries
29
Advanced MVC: Building Web Applications Using the ASP.NET Web API with VB.NET
Duration: 35 hours
Price: $900
Prerequisites: Prior experience building ASP.NET MVC web sites.
Description: This course provides students with the skills needed to create sophisticated web applications using advanced features of ASP.NET MVC, the Entity Framework, Web API, and the popular JavaScript libraries jQuery, jQuery UI, Bootstrap and AngularJS. Students will build several ASP.NET MVC web applications using Visual Studio during the week to reinforce the skills they learn.
The course begins with an overview of ASP.NET MVC for experienced programmers and then covers the fundamentals of responsive website design. Students then learn how to use Bootstrap with MVC to make a web site responsive on devices from large desktop displays to small mobile devices.
Students will learn how to integrate jQuery into an MVC application to provide dynamic, client-side behavior. They will then learn how to use jQuery's Ajax features to build more interactive MVC applications. Students will also learn how to use jQuery UI widgets to provide a more sophisticated user interface for their MVC views.
The course covers use of the Entity Framework to provide a data access layer for an MVC application. The Database First strategy is briefly examined before thorough coverage of the more configurable Code First strategy. Students will also learn how to use the Web API to build APIs that expose services and data via HTTP. These APIs can be used by a diverse set of clients including browsers, desktop applications and mobile devices.
The course includes coverage of Single-Page Applications. In these types of applications, the entire page is loaded in the browser after the initial request. All other interactions with the server utilize Ajax requests to update the page. The service layer is implemented with the Web API.
Additional topics include: using HTML helpers to design views; creating both inline and custom HTML helpers to encapsulate view markup; using convention-based and attribute routing to support custom routes; and use of the NuGet packages with MVC applications.
Course Overview
Quick Review of ASP.NET MVC Creating Views Using HTML Helpers
. What is the MVC Design Pattern? . What are HTML Helpers? 30
. Structure of an ASP.NET MVC Web Application . Understanding the Built-in HTML Helpers . Creating an ASP.NET MVC Application Using . Working with Inline Helpers Visual Studio . Working with Custom Helpers . Building Controllers to Handle HTTP Requests . Designing Views Using Razor . Using Layouts . Coding Models . Understanding Default Routing
Responsive Applications Using Bootstrap Using jQuery with MVC
. What is a Responsive Application? . What is jQuery? . What is Bootstrap? . Adding jQuery to an MVC Layout and/or Page . Normalization Across Browsers . Understanding jQuery Selectors . Working with Accordion . Using jQuery to Modify the DOM . Mobile First Design . Using jQuery to POST a Form . Understanding Bootstrap.css and Bootstrap.js . Including Bootstrap in a Layout and/or View . Understanding Bootstrap Typography . Understanding Bootstrap's Grid System . Principles for Designing a View . Working with Forms and Bootstrap
Using Ajax to Build Interactive MVC Applications Using jQuery UI Widgets with MVC
. What is Ajax? . What is jQuery UI? . Working with Partial Views . Including jQuery UI in an MVC Layout or View . Making Asynchronous Calls Using jQuery . jQuery UI Widgets . Working with JSON Data . Working with Tabs . Working with DatePicker . Working with Accordian . Working with Menu . Working with AutoComplete . Working with Dialog . Working with Tooltips . Using jQuery UI Themes
MVC and Routing Working with the Entity Framework
. Default Routing . What is the Entity Framework? . Custom Routes . Entity Framework Strategies . Why Use Custom Routes? . Using Database First . Understanding RouteConfig . Generating the Context and Entity Classes . Registering Convention-Based Routes . Writing Basic Queries . Adding Constraints with Convention-Based Routes . Performing Joins . Using Attribute Routing . Interacting with Stored Procedures 31
. Adding Constraints with Attribute Routing . Making Database Updates . Code First . Designing the Data Context . Building the Entities . Configuring Relationships . Seeding Tables . Writing Basic Queries . Performing Joins . Interacting with Stored Procedures . Making Database Updates
Creating the Service Layer Using Web API Building Single Page Applications with ASP.NET MVC, Web API and AngularJS . What is Web API? . Exposing Services and Data . What is the Architecture of a Single-Page . Types of Clients that Can Work with Web API Application? . Creating a Web API Service . What is AngularJS? . Working with Web API Controllers . Understanding the AngularJS Architecture . Understanding Web API Action Results . Including AngularJS within the Page . Working with Data . Building AngularJS Controllers . Filtering Requests . Creating an AngularJS Template to Define a View . Routing and Web API . Using CSS3 Properties to Perform Animation . Creating Web API Help Pages Effects . Creating REST Services with Web API . Configuring Web API . Securing a Web API . Using a Web API with MVC
Working with NuGet
. What is NuGet? . What Types of Packages are Available? . Installing NuGet Packages . Popular NuGet Packages . .NET JSON Libraries . Logging . JavaScript Libraries
32
Analyzing and Presenting Data with Power BI
Duration: 21 hours
Price: $900
Prerequisites: Familiarity with database concepts and experience with spreadsheet software such as Microsoft Excel. Basic familiarity with relational databases as well as data warehousing is helpful but not required.
Description: This course provides a robust and in-depth introduction to Microsoft's Power BI suite of products. Students will learn to use the Power BI Desktop and Power BI online service to import, analyze, and visualize business data, and to share business intelligence.
The course starts with an exploration of the evolution of relational databases, data warehouse and business intelligence. Afterwards, students learn to do tasks such as importing and combining data from diverse data sources, shaping and transforming data, modeling data, developing useful and insightful visualizations, creating and sharing reports and dashboards in the Power BI service, and collaborating in the Power BI service. As the course nears its end, there is also an introduction to Data Analysis Expressions (DAX).
Course Overview
Introduction to Business Analysis Getting Data with Power BI Desktop
. The Evolution of Data Analysis . The Power BI Workflow . Databases . Terminology . Normal Forms . Opening the Power BI Desktop . Data Modeling . The Navigation and Filter Panes . Data Processing . The Visualizations Pane . Beyond the Database . The Fields Pane . Data Warehouses . Power BI Desktop Settings . Fact and Dimension Tables . Data Sources . Data Warehouse Schema . On-Premises Data Files . Star Schema . Databases . Snowflake Schema . Online Databases . Big Data . Software as a Service (SaaS) Providers . Self-Service Business Intelligence . Internet Data . Enterprise Intelligence . Data Access Issues . Self-Service BI . Data Reliability Issues . The BI Team . Getting Data . The Data Steward . Import vs. Direct Query . The Tasks . Advantages of Direct Query . Accessing Data . Limitations of Direct Query
33
. Loading Data . Data Limits . Shaping Data . Cleaning Data . Reporting . Selecting Data . Visualizing Data . Fundamentals of Getting Data . Collaborating . Importing from Excel . The Tools . Preparing Excel Data . The Power BI Suite . Importing from Excel . Related Tools . Importing from a Database . Selecting Data with SQL . Importing from a Web Page . Revising Data
Transforming and Shaping Data Visualizing Data
. Getting the Right Data . Visual Data Processing . Shaping Data . Why We Visualize . How and Where to Transform Data . Choosing the Right Visualization . Formatting Currency . Report Design . Columns and Measures . Creating Visualizations . Filters . Basic Layout . The Power Query Editor . Selecting Data . How Power BI Accesses and Stores Data . Starting with Data . Query Editor Layout . Starting with Visualization Type . The Transform Tab . Sorting . The Add Column Tab . Adding Data, Changing Visualizations . The View Tab . The Slicer . Manipulating Columns . Fields, Format and Analytics in the . Applied Steps Visualizations Pane . The Advanced Query Editor . Formatting Visualizations . General Formatting . Formatting Groups . Title . Report Themes . Data Colors . Data Labels . Data Labels Display Units . Axes . Text Boxes, Images, Shapes . Visualization Mechanisms . The Slicer . Q&A . Custom Visuals
Types of Visualizations Modeling Data
. Basic Visualizations . Data Models
34
. Tables . The Utility of Data Models . Matrixes . Data Types . Bar/Column Charts . Cardinality . Clustered . Cross Filter Direction . Stacked . Relationships . 100% . Understanding Relationships . Ribbon Charts . Relationships and Keys . Waterfall Charts . Hierarchies . Line/Scatter/Area Charts . The Utility of Hierarchies . Line Chart . Creating Hierarchies . Scatter Chart . The Model View . Area Charts . Changing Relationships . Line-and-Column Charts . Using the Model View . Pies and Donuts . Pie Charts . Donut charts . Map Charts . Specialized Charts . Funnel Chart . Gauge Chart . Card Chart . Multi-Row Card . KPI . Key Influencers . Tree Maps
The Power BI Service Power BI and Programming Languages
. Overview . Survey of Power BI Languages . Functions by Application . Why? . Limitations . The Power BI REST API . Connecting to the Power BI Service . R . Publishing a Report to the Power BI . M Service . Python . Direct Connectivity from the Power BI . DAX Service . Data Analysis Expressions . Refreshing Data . DAX Syntax . Gateways . Logical Operators . The Power BI Service Interface . DAX Examples . Layout . My Workspace . Report Edit Mode . Dashboards . Dashboard Foundations . Dashboards vs. Reports . Building Dashboards
35
. Editing a Dashboard . Filtering a Tile . Working the Power BI Service . Reports . Exporting Reports and Data . Workbooks . Datasets . Apps . Sharing Reports and Dashboards . Q&A . Featured Questions . Power BI Service Settings . Administration . Power BI Administration . Admin Portal . Power BI Mobile . The App . To Set Up Your Smartphone Layout . Power BI Mobile Features and Limitations
36
Analyzing Data using DAX and M Power Query
Duration: 14 hours
Price: $0 (This course is a free extension of another course)
Prerequisites: Familiarity with database concepts, and prior completion of the Analyzing and Presenting Data with Power BI course.
Description: This course is an extension of the Analyzing and Presenting Data with Power BI course, and focuses on using DAX and M Power Query to increase the flexibility and data analytics capababilities of Power BI reports.
Students will learn beginner and intermediate techniques for adding calculations to their Power BI Data models using DAX. Our hands-on labs provide practical exercises that cover some of the common data modelling problems that users face, and how DAX can be used to solve those. Students will experience the flattening out of an OLTP database into a star schema by using DAX, will learn how to resolve common granularity issues with data models, and will also study how Measures can be used to solve advanced calculation problems that languages like SQL are unable to tackle.
Students will later learn about the M language that Power Query uses behind its graphical user interface, and how writing M directly can enable advanced queries against the data-sources that populate a model with its data.
Course Overview
DAX Fundamentals Basic DAX Calculations
. DAX Capabilities and Common DAX Use Cases . Calculated Columns . DAX Formula Syntax Fundamentals . Evaluation Context and Row Context . Formula Evaluation Order . Working with Relationships . DAX Operators . Using RELATED() and RELATEDTABLE() . DAX Operator Precedence . Using Ad-hoc Relationships with . DAX Data Types USERELATIONSHIP() . DAX Type Conversions . Flattening Models with Calculated Columns . DAX Functions . Calculated Tables . Nested Function Execution Order . Naming Requirements
Advanced DAX Calculations DAX and Modeling
. Measure Use Cases . Resolving Model Granularity Issues . Implicit Measures . Flattening Models 37
. Calculated Measures . Row Level Security with Row Filters . Evaluation Context and Filter Context . Avoiding Ambiguous Relationships with Role . Implicit Filter Context Playing Tables . Explicit Filter Context . Filtering with Calculate() and Filter() . Undoing Filters with All() . Iterator Fundamentals . Working with built-in Iterator Functions . Using Nested Iterators
M and Power Query
. Power Query Basics . Using the Formula Bar in Power Query . Using the Advanced Editor in Power Query . PowerQuery's Standard Function Library . M Language . Case Sensitivity in Power Query and M . Single Literal Values . Intrinsic Values . Structured Values: Lists, Records, and Tables . M Language Operators . Commenting Code in M . Using the Let Statement . Variable Naming in M . M's Each Statement . Creating Columns in M . Conditional Constructs in M . M Functions
38
Android™ Application Development
Duration: 35 hours
Price: $900
Prerequisites: Prior experience with a scripting or programming language is required. Java skills are helpful but not required.
Description: This hands-on course conveys the fundamental skills necessary to deploy Android Apps on mobile devices such as phones and tablets. Attendees will design and build a variety of Android Apps throughout the course using Android Studio. Previous Java programming knowledge is not essential, but basic programming experience is required. Java code used in the exercises is fully explained.
The course emphasizes proper layout of the user interface (UI), including how to add buttons, labels, textboxes, checkboxes, images and other widgets to the UI. Students will learn how to utilize Android's XML-based layout system, which builds the UI with containers and widgets, as well as how to set wallpapers and add menus to the UI. Students practice with dialog techniques including the display of popup messages.
Students also learn how to handle screen rotation, and how to define UIs so they can adjust for different screen sizes. The course teaches students how to accept user input from keyboards (either externally attached or from the built-in keyboard), how to use the date/time picker, and how to present users with choices using Selection Lists. Students will learn how to add tabs to the UI, as well as how to display HTML content using the built-in WebKit browser.
Students will learn how to program control of state changes in the Activity Lifecycle: active, paused, stopped or dead. For instance, since Apps often run on phones, taking a call may send an App from the active state to the paused state. Or, if battery life is low the App may be forced into the dead state. Student will learn how to manage Activities moving between these states so that Apps can, for example, save inputted data before transitioning into the dead or paused state. Also related to this is the ability for an Activity to launch Sub-Activities, which allows Apps to run processes in the background (such as downloading files).
Coverage of data storage includes best practices for storing images and files. Student will also learn how to embed SQLite databases in Apps, and then use these databases to store and retrieve any kind of data.
The course emphasizes Service Oriented Architecture (SOA), and students learn how to connect Apps to web services such as Google Maps and UPS's package tracking API. In addition to using outside web services, the course also demonstrates how to use many of a phone or tablet's built-in features such as the camera, location service (which determines where the device is physically located), and the Accelerometer (which determines if the device is being tilted and how fast it's being tilted). Additional topics include how to play audio and video, and standard techniques for storage and retrieval.
39
Students employ Android Studio to perform comprehensive hands on exercises throughout the course to reinforce learning and develop real competency. The course also provides students with an introduction to a variety of Android App development resources.
Students may bring in their own Android device and USB cable, if they prefer to test on physical Android hardware. Students who do not provide their own Android devices will use Android emulators during class lab work.
Course Overview
Getting Started with Android App Development Creating the User Interface (UI)
. Fundamental Components of Android Phones and . Core Components of Android User Interfaces (UIs) Tablets . Using Android’s XML-Based Layout System to . Installing and Configuring Eclipse to Create Apps Define UIs . Testing Apps Using the Simulator . Common Widgets . Understanding Service Oriented Architecture . Buttons (SOA) . Labels . Checkboxes . UI Layout Best Practices
Mastering User Interface Layouts Accepting User Input
. Pros And Cons of Different Layout Models . The Android Input Method Framework . Using Containers to Control the Location of . Getting Input from Attached and/or Internal Widgets Keyboards . Defining a Widget's Position Relative to Other . Processing Choices with Selection Lists Widgets . Adding Icons to Selection Lists . Overlapping Widgets . Using Sliders and Checkboxes . Using Table-Based Layouts . Using Date and Time Pickers . Enabling Scrolling . Responding to Taps And Swipes
Menus, ActionBars and Popups Advanced User Interfaces and the WebKit Browser
. Adding Traditional Application Menus to Apps . Embedding HTML Content in Apps with WebKit . Displaying Context Menus When Users Tap and . Displaying Analog and Digital Clocks Hold . Using Tabs to Display Multiple UIs . Using Actionbars (Toolbars For Android Apps) . Applying Standard Styles and Fonts . Displaying Popup Messages . Creating Reusable UI Components with Fragments
Working with App Activities and Intent Filters Data Management
. The Application Activity Lifecycle . Embedding SQLite Databases in Apps . Saving Data when Apps are Paused Or Killed . Permanently Storing Data in Local Databases . Using Threads to Run Background Services . Retrieving Database Data when Apps Start 40
. Launching Sub-Activities . Best Practices for Data Management . Handling Phone Calls . Optimizing Device Resources
Saving Files and Images Using Java Libraries and Web Services
. Storing Images, Strings and Arrays . Using Pre-Compiled Java Libraries . Playing Audio and Video Files . Connecting to Web Services (such as Google . Best Practices for Saving Files Maps) . Creating and Storing Wallpapers . Downloading Internet Content
Handling Rotation and Different Screen Sizes Working with Built-in Android Features
. Different Strategies for Handing Screen Rotations . Accessing and Using MapView . Controlling UI Changes when Screens Rotate . Getting the Location of the Phone Or Tablet . Issues Related to Tablets and Larger Screens . Working with the Camera . Creating UIs that are Compatible with All Screen . Working with Permissions and the Security Sizes (Right-Sizing) Framework
Deploying to Android Devices
. Checking for and Requiring Phone or Tablet Features . Deploying to the Android Store . Deploying Directly to Devices
Android is a trademark of Google Inc.
41
ASP.NET MVC Programming for Experienced C# Programmers
Duration: 21 hours
Price: $900
Prerequisites: Knowledge of fundamental HTML syntax is helpful, but not required. Prior experience with C# is required.
Description: This course provides students with hands on experience using Visual Studio to create dynamic web applications using ASP.NET MVC and C#. Students should already have a working knowledge of C#.
This course teaches students how to leverage the power of the Model-View-Controller design pattern with the ASP.NET MVC Framework to separate the layers of a web application. Students will use the ASPX and Razor view engines to design a user interface. Students will learn how to build models to manage an application's data layer using both the Entity Framework and LINQ to SQL. Students will also learn how to build controllers containing action methods to manage communication between views and models.
Other topics include data scaffolding; URL routing; implementing security; using MVC and Web Forms in the same application, unit testing; and deploying ASP.NET MVC applications. Comprehensive labs provide the students with experience creating, debugging, testing and deploying dynamic ASP.NET MVC applications.
Course Overview
Overview of ASP.NET MVC Developing Controllers
. Overview of Model-View-Controller Design . Creating Controllers Pattern . Defining Action Methods . ASP.NET MVC Application Architecture . Mapping URLs to Action Methods . Understanding the MVC Execution Process . Understanding ActionResult Types . Building an ASP.NET MVC Application Using . Working with ViewData and ViewBag Visual Studio . Visual Studio MVC Project Templates . Using a web.config File
Developing Views Developing Models
. Creating Views . Creating Model Classes . Understanding View Engines . Working with the Entity Framework . Using the ASMX View Engine . Working with LINQ to SQL . Using the Razor View Engines . Using Scaffolding . Using HTML Helpers
42
. Adding Validation . Working with Strongly-Typed Views
Routing Control Integrating ASP.NET MVC and Web Forms
. Understanding Routing in ASP.NET MVC . What are Web Forms . Defining URL Routes . Using Web Forms in an MVC Application . Registering Routes . Using MVC in a Web Form Application . Adding Constraints to Routes . Linking to MVC Actions from Web Forms . Debugging Routes
MVC Unit Testing Securing MVC Applications
. Test-Driven Development . ASP.NET Security . Designing Test Cases . Windows vs Forms Authentication . Creating Unit Tests . Configuring Authentication . Using MS Test . Configuring Authorization . Building a Secure Web Site . Defending against Attacks . Cross-site Scripting . Session Hijacking . SQL Injection . Input Forgery
Deploying ASP.NET MVC Applications
. Understanding Deployment Issues . Required MVC Assemblies . Server Requirements . Configuring an ASP.NET Application for Deployment . Using XCOPY Deployment . Using WebDeploy
43
ASP.NET MVC Programming for Experienced VB.NET Programmers
Duration: 21 hours
Price: $900
Prerequisites: Knowledge of fundamental HTML syntax is helpful, but not required. Prior experience with VB.NET is required.
Description: This course provides students with hands on experience using Visual Studio to create dynamic web applications using ASP.NET MVC and VB.NET. Students should already have a working knowledge of VB.NET.
This course teaches students how to leverage the power of the Model-View-Controller design pattern with the ASP.NET MVC Framework to separate the layers of a web application. Students will use the ASPX and Razor view engines to design a user interface. Students will learn how to build models to manage an application's data layer using both the Entity Framework and LINQ to SQL. Students will also learn how to build controllers containing action methods to manage communication between views and models.
Other topics include data scaffolding; URL routing; implementing security; using MVC and Web Forms in the same application, unit testing; and deploying ASP.NET MVC applications. Comprehensive labs provide the students with experience creating, debugging, testing and deploying dynamic ASP.NET MVC applications.
Course Overview
Overview of ASP.NET MVC Developing Controllers
. Overview of Model-View-Controller Design . Creating Controllers Pattern . Defining Action Methods . ASP.NET MVC Application Architecture . Mapping URLs to Action Methods . Understanding the MVC Execution Process . Understanding ActionResult Types . Building an ASP.NET MVC Application Using . Working with ViewData and ViewBag Visual Studio . Visual Studio MVC Project Templates . Using a web.config File
Developing Views Developing Models
. Creating Views . Creating Model Classes . Understanding View Engines . Working with the Entity Framework . Using the ASMX View Engine . Working with LINQ to SQL . Using the Razor View Engines
44
. Using HTML Helpers . Using Scaffolding . Adding Validation . Working with Strongly-Typed Views
Routing Control Integrating ASP.NET MVC and Web Forms
. Understanding Routing in ASP.NET MVC . What are Web Forms . Defining URL Routes . Using Web Forms in an MVC Application . Registering Routes . Using MVC in a Web Form Application . Adding Constraints to Routes . Linking to MVC Actions from Web Forms . Debugging Routes
MVC Unit Testing Securing MVC Applications
. Test-Driven Development . ASP.NET Security . Designing Test Cases . Windows vs Forms Authentication . Creating Unit Tests . Configuring Authentication . Using MS Test . Configuring Authorization . Building a Secure Web Site . Defending against Attacks . Cross-site Scripting . Session Hijacking . SQL Injection . Input Forgery
Deploying ASP.NET MVC Applications
. Understanding Deployment Issues . Required MVC Assemblies . Server Requirements . Configuring an ASP.NET Application for Deployment . Using XCOPY Deployment . Using WebDeploy
45
ASP.NET Web Forms Programming for Experienced C# Programmers
Duration: 21 hours
Price: $900
Prerequisites: Knowledge of fundamental HTML syntax is helpful, but not required. Prior experience with C# is required.
Description: This course provides students with hands on experience using Visual Studio to create dynamic ASP.NET Web Forms applications using C#.
Students will learn use the power of ASP.NET Web server controls combined with HTML5 to design web pages. They will use ASP.NET Validation controls to provide both client-side and server-side data validation for user input. Students will learn how to use master pages to enforce a consistent look and feel across a set of Web pages, as well as how to use user controls to reuse smaller pieces of HTML across multiple pages.
Students explore the complexities of state management in ASP.NET Web Forms and how to use session and view state objects to manage state between HTTP requests.
Students spend time exploring how to use ADO.NET to interact with databases by running SQL queries and executing stored procedures. They will also learn how to read/write XML files using DataSets and DataTables. Students learn how ASP.NET Web Forms data binding to easily display data in list controls, the GridView control and the DetailsView control.
Microsoft provides support for Ajax-enabled Web Forms applications using the ASP.NET AJAX Framework. Students will learn how to use some of the server-side features to make asynchronous postbacks from the browser, perform partial page updates using the UpdatePanel, use CSS to dim a page during postback and use the Timer fetch data from the server asynchronously.
Other topics include: using a Web.config file to control application configuration; working with the query string; working with cookies; reading and writing files; and deploying ASP.NET web applications. Comprehensive labs provide the students with extensive experience creating and deploying dynamic ASP.NET Web Form applications.
Course Overview
Overview of ASP.NET Web Forms Creating ASP.NET Web Forms Applications
. ASP.NET Technologies . Building ASP.NET Web Forms Applications Using . Web Forms vs. MVC Visual Studio . Understanding the HTTP Request and Response . Understanding a Web Form Application Project Cycle Structure 46
. Client-Side vs. Server-Side Code Execution . Designing Web Forms . Exploring an ASP.NET Web Form . Incorporating CSS into the Web Application . Understanding the Life-Cycle of an ASP.NET Page . Understanding the Page Directive Object . Working with the Code-Behind Model . Understanding Web.config . Transformational Config Files
Using ASP.NET Server Controls Handling Events
. Working with Web Server Controls . Working with Page-Based Event Handlers . Using Hyperlinks and Button-Based Controls . Writing Control Event Handlers . Using Label and Textbox Controls . Sharing Event Handlers . Using List Controls . Understanding PostBack vs. Non-PostBack Events . Using the Image Control . Handling Application-Based Events in Global.asax . Exploring Other Web Server Controls
Using ASP.NET Validation Controls Reusing Design: User Controls and Master Pages
. Understanding ASP.NET Validation Controls . Reusing HTML Snippets with User Controls . Performing Client-Side Validation . Designing a User Control . Performing Server-Side Validation . Embedding a User Control on a Page . Using the Required Field Validator . Understanding the Master Page Architecture . Using the Comparison and Range Validators . Designing a Master Page . Using the Regular Expression Validator . Designing Content Pages . Customizing Validation . Working with Validation Groups . Unobtrusive Validation . Using the NuGet Package Manager to Download AspNet.ScriptManager.jQuery
Maintaining State ADO.NET
. Maintaining State within ASP.NET Web Forms . Understanding the ADO.NET Object Model Applications . Connected vs. Disconnected Access . Using the Session Object . Using a Connection to Connect to a Data Source . Using the ViewState Object . Using a Command to Execute Queries and Stored . Reading and Writing Cookies Procedures . Using the Query String . Using a DataReader to Work with Cursors . Using a DataSet with Disconnected Data . Using DataAdapters with DataSets
Using XML Using Data Binding
. Introducing XML and XML Schemas . Understanding ASP.NET Data Source Controls . Writing XML Schemas with a DataSet . Configuring Data Sources . Reading XML Schemas with a DataSet . Examining ASP.NET Data Bound Controls 47
. Writing XML Data with a DataSet . Using List Controls . Reading XML Data with a DataSet . Using the GridView Control . Using the DetailsView Control . Exploring Other Data Bound Controls
Introduction to ASP.NET AJAX Deploying ASP.NET Applications
. Understanding Ajax . Configuring IIS for Deployment . Enabling ASP.NET AJAX with the ScriptManager . Configuring an ASP.NET Web Form Application . Configuring Partial Page Updates with the for Deployment UpdatePanel . Using Publish to Deploy a ASP.NET Web . Displaying a Progress Indicator Using Application UpdateProgress . Making Periodic Postbacks Using the Timer . Using the NuGet Package Manager to Download jQuery
48
ASP.NET Web Forms Programming for Experienced Visual Basic.NET Programmers
Duration: 21 hours
Price: $900
Prerequisites: Knowledge of fundamental HTML syntax is helpful, but not required. Prior experience with VB.NET is required.
Description: This course provides students with hands on experience using Visual Studio to create dynamic ASP.NET Web Forms applications using VB.NET.
Students will learn use the power of ASP.NET Web server controls combined with HTML5 to design web pages. They will use ASP.NET Validation controls to provide both client-side and server-side data validation for user input. Students will learn how to use master pages to enforce a consistent look and feel across a set of Web pages, as well as how to use user controls to reuse smaller pieces of HTML across multiple pages.
Students explore the complexities of state management in ASP.NET Web Forms and how to use session and view state objects to manage state between HTTP requests.
Students spend time exploring how to use ADO.NET to interact with databases by running SQL queries and executing stored procedures. They will also learn how to read/write XML files using DataSets and DataTables. Students learn how ASP.NET Web Forms data binding to easily display data in list controls, the GridView control and the DetailsView control.
Microsoft provides support for Ajax-enabled Web Forms applications using the ASP.NET AJAX Framework. Students will learn how to use some of the server-side features to make asynchronous postbacks from the browser, perform partial page updates using the UpdatePanel, use CSS to dim a page during postback and use the Timer fetch data from the server asynchronously.
Other topics include: using a Web.config file to control application configuration; working with the query string; working with cookies; reading and writing files; and deploying ASP.NET web applications. Comprehensive labs provide the students with extensive experience creating and deploying dynamic ASP.NET Web Form applications.
Course Overview
Overview of ASP.NET Web Forms Creating ASP.NET Web Forms Applications
. ASP.NET Technologies . Building ASP.NET Web Forms Applications Using . Web Forms vs. MVC Visual Studio 49
. Understanding the HTTP Request and Response . Understanding a Web Form Application Project Cycle Structure . Client-Side vs. Server-Side Code Execution . Designing Web Forms . Exploring an ASP.NET Web Form . Incorporating CSS into the Web Application . Understanding the Life-Cycle of an ASP.NET Page . Understanding the Page Directive Object . Working with the Code-Behind Model . Understanding Web.config . Transformational Config Files
Using ASP.NET Server Controls Handling Events
. Working with Web Server Controls . Working with Page-Based Event Handlers . Using Hyperlinks and Button-Based Controls . Writing Control Event Handlers . Using Label and Textbox Controls . Sharing Event Handlers . Using List Controls . Understanding PostBack vs. Non-PostBack Events . Using the Image Control . Handling Application-Based Events in Global.asax . Exploring Other Web Server Controls
Using ASP.NET Validation Controls Reusing Design: User Controls and Master Pages
. Understanding ASP.NET Validation Controls . Reusing HTML Snippets with User Controls . Performing Client-Side Validation . Designing a User Control . Performing Server-Side Validation . Embedding a User Control on a Page . Using the Required Field Validator . Understanding the Master Page Architecture . Using the Comparison and Range Validators . Designing a Master Page . Using the Regular Expression Validator . Designing Content Pages . Customizing Validation . Working with Validation Groups . Unobtrusive Validation . Using the NuGet Package Manager to Download AspNet.ScriptManager.jQuery
Maintaining State ADO.NET
. Maintaining State within ASP.NET Web Forms . Understanding the ADO.NET Object Model Applications . Connected vs. Disconnected Access . Using the Session Object . Using a Connection to Connect to a Data Source . Using the ViewState Object . Using a Command to Execute Queries and Stored . Reading and Writing Cookies Procedures . Using the Query String . Using a DataReader to Work with Cursors . Using a DataSet with Disconnected Data . Using DataAdapters with DataSets
Using XML Using Data Binding
. Introducing XML and XML Schemas . Understanding ASP.NET Data Source Controls 50
. Writing XML Schemas with a DataSet . Configuring Data Sources . Reading XML Schemas with a DataSet . Examining ASP.NET Data Bound Controls . Writing XML Data with a DataSet . Using List Controls . Reading XML Data with a DataSet . Using the GridView Control . Using the DetailsView Control . Exploring Other Data Bound Controls
Introduction to ASP.NET AJAX Deploying ASP.NET Applications
. Understanding Ajax . Configuring IIS for Deployment . Enabling ASP.NET AJAX with the ScriptManager . Configuring an ASP.NET Web Form Application . Configuring Partial Page Updates with the for Deployment UpdatePanel . Using Publish to Deploy a ASP.NET Web . Displaying a Progress Indicator Using Application UpdateProgress . Making Periodic Postbacks Using the Timer . Using the NuGet Package Manager to Download jQuery
51
ASP.NET Web Forms Programming Using C#
Duration: 35 hours
Price: $900
Prerequisites: Knowledge of fundamental HTML syntax is helpful, but not required. Prior experience with a scripting or programming language is required.
Description: This course provides students with hands on experience using Visual Studio to create dynamic Web sites with ASP.NET Web Forms and the .NET Framework using C#. The class provides a thorough introduction to the C# programming language, including coverage of the essentials of the C# programming language, built in data types, operators, control structures, classes and methods, collections and exception handling.
Students then learn how to leverage the power of the .NET Framework to build Web user interfaces. Students will learn use the power of ASP.NET Web server controls combined with HTML5 to design Web pages. They will use ASP.NET Validation controls to provide both client-side and server-side data validation for user input. Students will learn how to use master pages to enforce a consistent look and feel across a set of Web pages, as well as how to use user controls to reuse smaller pieces of HTML across multiple pages.
Students explore the complexities of state management in ASP.NET Web Forms and how to use session and view state objects to manage state between HTTP requests.
Students spend time exploring how to use ADO.NET to interact with databases by running SQL queries and executing stored procedures. They will also learn how to read/write XML files using DataSets and DataTables. Students learn how ASP.NET Web Forms data binding to easily display data in list controls, the GridView control and the DetailsView control.
Microsoft provides support for Ajax-enabled Web Forms applications using the ASP.NET AJAX Framework. Students will learn how to use some of the server-side features to make asynchronous postbacks from the browser, perform partial page updates using the UpdatePanel, use CSS to dim a page during postback and use the Timer fetch data from the server asynchronously.
Other topics include: using a Web.config file to control application configuration; working with the query string; working with cookies; reading and writing files; and deploying ASP.NET web applications. Comprehensive labs provide the students with extensive experience creating and deploying dynamic ASP.NET Web Form applications.
Course Overview
52
Introduction to .NET Introduction to Visual Studio
. Overview of the .NET Framework . Creating a Project . How .NET is Different from Traditional . Using the Code Editor Programming . Correcting Syntax Errors . Common Language Runtime (CLR) . Setting Project Properties . Common Language Specification (CLS) . Adding References . Common Type System (CTS) . Compiling a Program . .NET Assemblies . Running a Program . Microsoft Intermediate Language (CIL) . Debugging a Program . .NET Namespaces . Using the MSDN (Help) . .NET Framework Class Library
Language Fundamentals Conditionals and Looping
. C# Program Structure . if/else . Defining Namespaces . switch . Understanding C# Data Types . while and do/while . Defining Variables and Constants . for . Comparing Value Types vs. Reference Types . foreach . Working with Operators and Expressions . Performing Type Conversions . Using Console I/O . Formatting Numbers, Date and Times
Methods and Parameters Exception Handling
. Defining Static and Instance Methods . What are Exceptions? . Passing Parameters by value and by reference . .NET Exception Hierarchy . Overloading Methods . Catching Exceptions . Using Variable Length Parameter Lists . Throwing Exceptions . Managing Resources with Finally
Collections Object-Oriented Programming
. Defining and Using Arrays . Overview of Object-Oriented Programming . Understanding System.Array . Building Classes . .NET Collections vs Generic Collections . Defining Properties . Working with Lists . Using Auto-Implemented Properties . Working with Dictionaries . Defining Methods . Using LINQ to Objects . Understanding Constructors . Extending .NET Classes via Inheritance . Defining and Implementing Interfaces . Understanding the Role of Interfaces in .NET
Overview of ASP.NET Web Forms Creating ASP.NET Web Forms Applications 53
. ASP.NET Technologies . Building ASP.NET Web Forms Applications Using . Web Forms vs. MVC Visual Studio . Understanding the HTTP Request and Response . Understanding a Web Form Application Project Cycle Structure . Client-Side vs. Server-Side Code Execution . Designing Web Forms . Exploring an ASP.NET Web Form . Incorporating CSS into the Web Application . Understanding the Life-Cycle of an ASP.NET Page . Understanding the Page Directive Object . Working with the Code-Behind Model . Understanding Web.config . Transformational Config Files
Using ASP.NET Server Controls Handling Events
. Working with Web Server Controls . Working with Page-Based Event Handlers . Using Hyperlinks and Button-Based Controls . Writing Control Event Handlers . Using Label and Textbox Controls . Sharing Event Handlers . Using List Controls . Understanding PostBack vs. Non-PostBack Events . Using the Image Control . Handling Application-Based Events in Global.asax . Exploring Other Web Server Controls
Using ASP.NET Validation Controls Reusing Design: User Controls and Master Pages
. Understanding ASP.NET Validation Controls . Reusing HTML Snippets with User Controls . Performing Client-Side Validation . Designing a User Control . Performing Server-Side Validation . Embedding a User Control on a Page . Using the Required Field Validator . Understanding the Master Page Architecture . Using the Comparison and Range Validators . Designing a Master Page . Using the Regular Expression Validator . Designing Content Pages . Customizing Validation . Working with Validation Groups . Unobtrusive Validation . Using the NuGet Package Manager to Download AspNet.ScriptManager.jQuery
Maintaining State ADO.NET
. Maintaining State within ASP.NET Web Forms . Understanding the ADO.NET Object Model Applications . Connected vs. Disconnected Access . Using the Session Object . Using a Connection to Connect to a Data Source . Using the ViewState Object . Using a Command to Execute Queries and Stored . Reading and Writing Cookies Procedures . Using the Query String . Using a DataReader to Work with Cursors . Using a DataSet with Disconnected Data . Using DataAdapters with DataSets
54
Using XML Using Data Binding
. Introducing XML and XML Schemas . Understanding ASP.NET Data Source Controls . Writing XML Schemas with a DataSet . Configuring Data Sources . Reading XML Schemas with a DataSet . Examining ASP.NET Data Bound Controls . Writing XML Data with a DataSet . Using List Controls . Reading XML Data with a DataSet . Using the GridView Control . Using the DetailsView Control . Exploring Other Data Bound Controls
Introduction to ASP.NET AJAX Deploying ASP.NET Applications
. Understanding Ajax . Configuring IIS for Deployment . Enabling ASP.NET AJAX with the ScriptManager . Configuring an ASP.NET Web Form Application . Configuring Partial Page Updates with the for Deployment UpdatePanel . Using Publish to Deploy a ASP.NET Web . Displaying a Progress Indicator Using Application UpdateProgress . Making Periodic Postbacks Using the Timer . Using the NuGet Package Manager to Download jQuery
55
C Programming
Duration: 35 hours
Price: $900
Prerequisites: Understanding of fundamental programming concepts.
Description: This hands on C programming course provides a comprehensive introduction to the ANSI C language, emphasizing portability and structured design. Students are introduced to all major language elements including fundamental data types, flow control, and standard function libraries. Thorough treatment is given to the topics of string and character manipulation, dynamic memory allocation, standard I/O, macro definition, and the C runtime library. The course explains the use of aggregate structures, unions, and pointers early on so the students can practice extensively in the hands on labs. Structured programming constructs and varargs functions are also covered. Emphasis is given to the processing of command line arguments and environment variables so students will be able to write flexible, user-friendly programs. The course also includes coverage of portability tips drawn from experienced programmers working in production environments. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Overview of C Compiler Directives and the C Preprocessor
. Operating System Independence . Compile-Time Directives . Design Goals and Capabilities . Use of typedef . Flavors of C . C Preprocessor Syntax
Fundamental Data Types, Storage Classes, and Scope Pointers and Dynamic Allocation
. Fundamental Data Types and Qualifiers . Advantages of Pointers . Constants and Strings . User of Pointers . Storage Classes . Pointer and Address Arithmetic . Scope and Block Structure . Dynamic Storage Allocation . Scope and Data Hiding . sizeof Operator . Data Initialization . Double Indirection
Macros Arrays
. Functions vs. Inlining . Purpose of Arrays . Purpose of Macros . Declaring an Array . Use of Macros . Initializing an Array . Making Code More Readable . Addressing Elements 56
. Auto Adjustment of Compile Time Values . Stepping Through an Array . Conditional Compilation . Variable Size Arrays . Making Code Portable . Arrays of Pointers . Simplifying Complex Access Calculations . Arrays of Strings . Advanced Micro Design Tips . Passing an Array to a Function . Using Macros to Help Write Portable Programs . Dynamic Memory Allocation . When to Use a Macro instead of a Function . Multidimensional Arrays . Using Macros for Debugging
Basic Formatted I/O Program Debugging
. Standard I/O Library . Problem Analysis . Character Set Encoding . Instrumenting with printif . Standard Input and Output . Instrumenting with ctrace . Character I/O Functions . The Purpose of Debuggers . Formatted I/O Functions . How Not to Use Debuggers . String Constants . Symbolic Debuggers
Operators and Expressions Flow Control Constructs
. Arithmetic, Logical, and Bit Operators . Conditional Constructs: if, switch . Precedence and Associativity . Looping Constructs: while, do, for . Assignment and Casting . Programming Style . The Conditional Operator
Functions (Subroutines) Structures
. Purpose of Functions . Purpose of Structures . Functions vs. Inlining . Defining and Declaring Structures . Automatic Variables . Accessing Members . The Argument Stack . Pointers to Structures . Passing By Value . Dynamic Memory Allocation . Passing By Reference . Passing a Structure to a Function . Declaring External Functions . As a Pointer . Function Prototyping . Passing the Actual Structure . ANSI Prototyping . The _NO_PROTO Compiler Symbol . Varargs Functions . Passing a Function as an Argument . Designing Functions for Reusability . Calling a Function from Another Language . Returning a Dynamically Allocated Value Using Double Indirection . Casting the Return Value of a Function . Recursion and Reentrancy
57
Advanced Structures and Unions C Runtime Library Standard Functions
. Nested Structures . Character I/O . Arrays of Structures . Unformatted File I/O . Bit Fields . Formatted File I/O . Unions . Math Functions . Linked Lists . Miscellaneous Functions
Strings and Character Manipulation Accessing Command Line Arguments and Environment Symbols . Strings as Character Arrays . String Library Functions . argc and argv . Reading and Writing Strings . Parsing Command Line Options . Accessing the Environment Array
Structured Programming Advanced Programming Consideration
. Structuring Code for Quality, Reliability, . Writing Portable Code Maintainability . Use of Macros . Designing for Modularity and Reusability . ANSI C Limits . Feature Test Macros . Client/Server Design . Performance Considerations
58
C++ Programming for C Programmers
Duration: 28 hours
Price: $900
Prerequisites: Prior programming experience with C.
Description: This C++ course presents a thorough introduction to object-oriented programming in C++ for experienced C programmers. The central concepts of C++ syntax and style are taught in the context of using object-oriented methods to achieve reusability, adaptability and reliability. Emphasis is placed on the features of C++ that support abstract data types, inheritance, and polymorphism. Students will learn to apply the process of data abstraction and class design. Extensive programming examples and exercises are provided, with approximately half of course time spent performing hands on programming labs. Practical aspects of C++ programming including efficiency, performance, testing, and reliability considerations are stressed throughout.
Course Overview
Moving from C to C++ Handling Data
. New Compiler Directives . New Declaration Features . Stream Console I/O . Initialization and Assignment . Explicit Operators . Enumerated Types . Standard Libraries . The bool Type . Data Control Capabilities . Constant Storage . Pointers to Constant Storage . Constant Pointers . References . Constant Reference Arguments . Volatile Data . Global Data
Functions Creating and Using Objects
. Function Prototypes and Type Checking . Creating Automatic Objects . Default Function Data Types . Creating Dynamic Objects . Function Overloading . Calling Object Methods . Problems with Function Overloading . Constructors . Name Resolution . Initializing Member consts . Promotions and Conversions . Initializer List Syntax . Call by Value . Allocating Resources in Constructor . Reference Declarations . Destructors
59
. Call-by-Reference and Reference Types . Block and Function Scope . References in Function Return . File and Global Scope . Constant Argument Types . Class Scope . Conversion of Parameters Using Default Initializers . Scope Resolution Operator :: . Providing Default Arguments . Using Objects as Arguments . Inline Functions . Objects as Function Return Values . Constant Methods . Containment Relationships
Dynamic Memory Management Controlling Object Creation
. Advantages of Dynamic Memory Allocation . Object Copying and Copy Constructor . Static, Automatic, and Heap Memory . Automatic Copy Constructor . Free Store Allocation with new and delete . Conversion Constructor . Handling Memory Allocation Errors
Inheritance Streaming I/O
. Inheritance and Reuse . Streams and the iostream Library . Composition vs. Inheritance . Built-in Stream Objects . Inheritance: Centralized Code . Stream Manipulators . Inheritance: Maintenance and Revision . Stream Methods . Public, Private and Protected Members . Input/Output Operators . Redefining Behavior in Derived Classes . Character Input . Designing Extensible Software Systems . String Streams . Syntax for Public Inheritance . Formatted I/O . Use of Common Pointers . File Stream I/O . Constructors and Initialization . Overloading Stream Operators . Inherited Copy Constructors . Persistent Objects . Destructors and Inheritance . Public, Protected, Private Inheritance
Introduction to Object Concepts Templates
. The Object Programming Paradigm . Purpose of Template Classes . Object-Orientated Programming Definitions . Constants in Templates . Information Hiding and Encapsulation . Templates and Inheritance . Separating Interface and Implementation . Container Classes . Classes and Instances of Objects . Use of Libraries . Overloaded Objects and Polymorphism
Strings in C++ Exceptions
. Character Strings . Types of Exceptions . The String Class . Trapping and Handling Exceptions . Operators on Strings . Triggering Exceptions 60
. Member Functions of the String Class . Handling Memory Allocation Errors
C++ Program Structure Reliability Considerations in C++ Projects
. Organizing C++ Source Files . Function Prototypes . Integrating C and C++ Projects . Strong Type Checking . Using C in C++ . Constant Types . C++ Access Control Techniques
Polymorphism in C++ Multiple Inheritance
. Definition of Polymorphism . Derivation from Multiple Base Classes . Calling Overridden Methods . Base Class Ambiguities . Upcasting . Virtual Inheritance . Accessing Overridden Methods . Virtual Base Classes . Virtual Methods and Dynamic Binding . Virtual Base Class Information . Virtual Destructors . Abstract Base Classes and Pure Virtual Methods
Declaring and Defining Classes Operator Overloading
. Components of a Class . Advantages and Pitfalls of Overloading . Class Structure . Member Operator Syntax and Examples . Class Declaration Syntax . Class Assignment Operators . Member Data . Class Equality Operators . Built-in Operations . Non-Member Operator Overloading . Constructors and Initialization . Member and Non-Member Operator Functions . Initialization vs. Assignment . Operator Precedence . Class Type Members . The this Pointer . Member Functions and Member Accessibility . Overloading the Assignment Operator . Inline Member Functions . Overloading Caveats . Friend Functions . Static Members . Modifying Access with a Friend Class
The Standard Template Library
. STL Containers . Parameters Used in Container Classes . The Vector Class . STL Algorithms . Use of Libraries
61
Developing Mobile Websites with Responsive Web Design and jQuery Mobile
Duration: 35 hours
Price: $900
Prerequisites: Prior knowledge of HTML, CSS, JavaScript and jQuery equivalent to attending the Website Development with HTML5, CSS and Bootstrap, JavaScript Programming and jQuery Programming courses.
Description: This hands-on course conveys the fundamental skills necessary to design and build responsive web sites for mobile devices such as phones and tablets. Attendees will use responsive web design (RWD) techniques such as CSS3 media queries and flexible layouts to build mobile-compatible web sites. Students will learn how to test mobile websites using emulators and simulators.
The course also provides an extensive introduction into using the jQuery Mobile Framework for building mobile-specific web sites. Students will learn how to use jQuery Mobile widgets to create forms, lists, toolbars and collapsible blocks. Students will also learn how to integrate SOA with a mobile web site including working with RSS feeds, Google Maps integration and implementing server-side data access.
Attendees will use ThemeRoller for jQuery Mobile to download existing or custom theme swatches to format the appearance of a web site. Additional topics include responding to user events, configuring jQuery Mobile defaults and using page transitions. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Overview of Responsive Web Design Viewport and Media Queries
. What is the Mobile Web? . Working with Viewports . Defining Responsive Design . viewport Meta Tag . Responsive Web Design (RWD) Principles . @viewport Rule . Responsive Layout vs. Adaptive Layout . CSS3 Media Queries . Designing for Mobile First . Media Types . Progressive Enhancement . Logical Operators . Media Features . Browser Height and Height . Device Height and Height . Orientation . Resolution . Determining Breakpoints
62
. Installing and Using Viewport Testing Tools
Creating Responsive Layouts Overview of jQuery Mobile
. Fluid Grid Layouts . What is jQuery Mobile? . Calculating Fluid Grid Layouts . Configuring and Downloading the Mobile Library . Predefined Grid Systems . jQuery Mobile File Structure . Creating Flexible Images and Video . Working with HTML5 data- Attributes . Optimizing Images for Retina Displays . jQuery Mobile Page Structure . Responsive Typography . Using Ems, Percentages and Rems . Viewport Units . Responsive Navigation Patterns . Designing Responsive Tables . Creating a Responsive HTML5 Page
Overview of the jQuery Mobile CSS Framework Creating jQuery Mobile Pages
. Explanation of Themes and Swatches . Overview of the Page and Pagecontainer Widgets . Applying the "a" and "b" Swatches . Using Single-Page vs. Multi-Page Templates . Using the data-theme Attribute . Prefetching Pages . Overview of jQuery Mobile Intrinsic Classes . Caching Pages in the DOM . Using ThemeRoller for jQuery Mobile . Configuring the Loader Widget . Exploring the ThemeRoller UI . Navigating Between Pages . Upgrading Existing Themes . Using Page Transitions . Defining Custom Swatches . Ajax-Driven Page Navigation . Downloading and Applying a Custom . Hash-based Navigation Theme . Displaying Pages as Dialogs
Adding Content to a Page Using jQuery Mobile Widgets
. Adding Specialized Hyperlinks . Examining the Widget Factory . Maps . Instantiating a Widget . Email . Calling Widget Methods . Phone . Setting Widget Options . Integrating with Web Services . Registering Widget Events . Making Ajax Requests . Configuring Widget Options using JavaScript . Displaying XML Content . Using the data-role Attribute to Create a Widget . Displaying JSON Content . Working with Multimedia . Organizing Content with Grids . Creating Responsive Grids
Adding Toolbars to a Page Working with List Views
. Adding Headers and Footers . Creating Lists with List Views 63
. Positioning Toolbars . Read-only . Inline . Interactive . Fixed . Creating Numbered Lists . Fullscreen . Creating Inset and Non-Inset Lists . Auto-Generated and Customized Back Buttons . Formatting List Content . Adding Content to Toolbars . Adding Images to Lists . Using the Navbar Widget . Creating Split Buttons . Persisting Toolbars Across Pages . Creating Count Bubbles . Working with Nested Lists . Defining a Filterable List
Working with Forms Working with Buttons
. jQuery Mobile Form Requirements . Creating Buttons . Form Auto-Enhancements . Using the Tag . Textinput Widget . Using the Tag . Checkboxradio Widget . Using the
Responding to Events Integrating JavaScript and jQuery Mobile
. Registering Event Handlers . Configuring Default Settings Using the $.mobile . Comparison of ready and pagecreate Events Object . Introduction to Page Events . Enabling Ajax . The mobileinit Event . Setting Default Page Transitions . Registering Events in jQuery Mobile . Preventing Transitions
64
. Touch/Swipe . Preventing Auto-Enhancement . Orientation Change . Customizing Error Messages . Scroll . Storing and Removing Arbitrary Data . Virtual Mouse Events . Working with URLs . Widget-specific events . Performing a Silent Scroll . Slider Widget . Loading and Changing Page Content Dynamically . Tabs Widget . Collapsible Widget
Creating Popups Adding Panels
. The Popup Widget . Using the Panel Widget . Positioning Popups . Setting a Panel's Position . Dismissing a Popup . Setting the Display Mode . Adding a Close Button . Reveal . Modal Popups . Overlay . Using Popups for Tooltips . Push . Embedding Content in Popups . Opening and Closing Panels . Images . Creating the Open Button . Video . Controlling Close Behavior . Iframes . Adding Fixed Panels . Theming Popups . Making Panels Responsive . Using Popups for Navigation . Reusing a Panel on Multiple Pages . Displaying Popup Transitions . Updating a Panel Dynamically . Reusing Popups on Multiple Pages
Displaying Pages as Dialogs Creating a Tabbed Interface
. Dialog Overview . Using the Tabs Widget . Customizing a Dialog . Creating Content Panels . Adding a Close Button . Defining the Tabs . Theming . Navbar . Linking to the Dialog . Listview . Chaining Dialogs Together . Buttons . Displaying Dialog Transitions . Configuring the Tabs Widget . Customizing Options . Handling Tab Events . Loading Content with Ajax
Creating Responsive Tables Adding Collapsible Content
. Using the Table Widget . Using the Collapsible Widget . Overriding CSS Classes . Controlling a Collapsible's Appearance . Reflow Table Mode . Adding a Theme . Applying the ui-responsive Class . Using Custom Icons . Column-Toggle Table Mode . Minified and Inset Collapsibles 65
. Prioritizing Columns . Opening a Collapsible by Default . Customizing the Columns button . Nesting Collapsibles . Customizing the Appearance of the . Opening/Closing Programmatically Column Picker Popup . Creating Groups of Collapsibles
Making Content Filterable Web Services Integration
. Using the Filterable Widget . Working with RSS Feeds . Defining a Search Field . Google Maps Integration . Using "Reveal" . Server-Side Data Access . Using a Remote Data Source . Filtering on Alternative Text . Controlling Filterable Items . Defining a Custom Filter Function
66
Developing Web Applications Using Angular
Duration: 35 hours
Price: $900
Prerequisites: Knowledge of HTML, CSS and JavaScript equivalent to attending the Website Development with HTML5, CSS and Bootstrap and JavaScript Programming courses. Knowledge of jQuery is helpful, but not required.
Description: This hands on programming course provides a thorough introduction to the Angular JavaScript Framework including coverage of versions 2 through 9. Attendees will learn the fundamental skills necessary to build Web Applications using Angular and the MVVM (Model-View-ViewModel) design pattern. Topics include using TypeScript and ECMAScript 6 to create object-oriented Angular applications, extending HTML by creating reusable UI components, implementing data-binding, designing and using custom structural and attribute directives, as well as creating and using Angular pipes for formatting and transforming data in the UI. Students will explore creating UX's (User Experiences) by designing Web animations and implementing both template-driven and reactive style forms. Students will learn to use Angular routing to create SPA's (Single Page Applications). The course includes coverage of using DI (Dependency Injection) and Angular services to provide business and data-access logic to the application, both locally as well as communicating with RESTful web services to provide CRUD database operations.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Overview of Angular and the MVVM Design Pattern Using Visual Studio Code
. Features and Benefits of Angular . Downloading and Installing Visual Studio Code . Angular Architecture . Generating Angular Projects with the CLI (Angular . MVVM Design Pattern Overview Command Line Interface) . Downloading Angular . Angular Project Structure, Files and Configuration . Choosing an IDE . Debugging Applications in VS Code and the . Creating a Simple Application with Angular Browser . Using the Terminal Window
Working with ES6 (ECMAScript) Working with TypeScript
. Enhancements to Legacy JavaScript . Types . New let to Declare Variables . Working with Built-In Types . Block Scoping . Custom Types . Using for of Loops . Setting Up and Using Node.js 67
. Literals and Strings . Transpiling TypeScript into JavaScript . Extended Literal Support . TypeScript Compiler Configuration . Template Literals . TypeScript Functions . Object Literal Changes . Default and Optional Parameters . Function Enhancements . Function Overloading . Default Parameters . Parameter Types and Return Types . Rest and Spread Operators . Arrow Functions/Lambdas Angular Modules
. Using Modules to Create an Application . Default Modules . Bootstrapping an Application . Exporting Classes, Functions and Values . Limiting Scope . Grouping Modules . Specifying Module Dependencies . Organizing Code Files . Module Testing . Best Practices
Angular Components Component Templates and Data Binding
. Component LifeCycle . Basic Data Binding Concepts . Component Templates to Define Views . Interpolation . Using Decorators to Define MetaData . One-Way Property Binding . Styling . Two-Way Property Binding . Per-Component Styling . Event Binding . Defining Global Styles in angular.json . Custom Binding . Adding Bootstrap Framework to an . Exposing Properties and Events to Parent Angular App Controls . View Encapsulation . Custom Property Binding . ViewEncapsulation.ShadowDom . Custom Event Binding . ViewEncapsulation.ShadowDom . ViewEncapsulation.ShadowDom . Referencing DOM elements with ElementRef . Lifecycle Hooks . OnInit, OnDestroy, OnChanges, DoCheck . AfterContentInit, AfterViewInit . AfterContentChecked, AfterViewChecked . Change Detection . Passing Data to Components
Angular Directives Working with Pipes
68
. Built-In Directives . Text Casing Pipes . NgIf, NgFor, NgClass, NgStyle, . Formatting Numbers and Dates NgSwitch, etc. . Internationalization and Cultures . Building Custom Directives . Restricting Data Collections with slice . Using the Renderer2 Service . Custom Pipes . ElementRef . Implementing the PipeTransform Interface . Attribute Directives . Pure vs Impure Pipes . Structural Directives . Passing Parameters to Pipes
Defining and Consuming Services Working with Web Services
. Dependency Injection . Using HttpClient . Registering Providers with the Injector . Importing the HTTP Module . Changes to Injection in Angular 6 . Creating Requests . Creating a Service . Processing Responses . Consuming a Service . Web API . Using PostMan to Test the Server-Side Service . Interacting with a RESTFul Service . POST Requests . DELETE Requests . PUT Requests . HEAD Requests . Dealing with CORS (Cross Origin Resource Sharing)
Asynchronous Programming in Angular Angular Forms
. Reactive Programming Model . The ngNativeValidate Directive . The RxJs Library . HTML novalidate Attribute . Observables . Template Driven Forms . Observers . ngForm and ngModel in Forms . Subjects . Input and Output Properties . Subscriptions . Reactive-Driven/Model-Driven Forms . Operators . FormGroup . Using Operators . FormControl . Creation Operators . FormArray . Filtering of Data Operators . Validators Class . Conversion of Data Operators . Math and Aggregate Operators . Using the FormBuilder Factory . Utility Operators . Working with Form State . Pipeable Operators . Client-Side Forms Validation . Using the async Pipe . Changes to RxJs in Version 6
69
Angular Routing and Navigation Unit Testing and TDD with Angular
. Overview of Routing . TDD vs End-to-End Testing . Implementing Single Page Applications (SPAs) . Jasmine Testing Framework . Location Strategies . Defining Expectations . Client-Side vs Server-Side Routing . Running Tests in Karma . Working with the Component Router . Using the Angular Unit Test Framework . Adding Router Imports . Fulfilling Dependencies . Performing Router Configuration . Mocking Out Data . Using Router State . Creating Testing Fixtures . Redirects . Testing Services and HTTP . Routing Parameters . Using Test-Doubles (Mocks, Stubs and Spies) . Router Lifecycle Events . Testing Components . Nesting Routes . Testing Forms . Routing Guards . Defining a Guard . Registering Guards . Securing Routes . CanActivate Guard . CanActivateChild Guard . CanDeactivate Guard . CanLoad Guard
The Angular Animation System Building and Deploying Applications
. The Web Animations API . Developing a Deployment Strategy . States and Transitions . Managing Dependencies . Entering and Leaving . Tree Shaking . Animating Properties . Transpiling . KeyFrames . Linting . Parallel Animation Groups
70
Effectively Using Java Packages and Features
Duration: 35 hours
Price: $900
Prerequisites: Familiarity with and experience using Java. Completion of either the Learning to Program with Java or Java Programming course, or equivalent Java programming experience.
Description: This intermediate level course is intended for programmers who already have a fundamental understanding of Java programming and some experience writing code. It provides additional insights and details regarding some of the more advanced and useful capabilities contained in the Java Programming Language and it's associated packages. Topics include reflection and JavaBeans, Java type safety enhancements, the Java Collections Framework, Java Database Connectivity (JDBC), multithreading, inner classes, lambda expressions and networking.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
JavaBeans, Reflection, and Introspection Type Safety Enhancements
. JavaBean Requirements . Annotations . Determining Type of an Object . Standard Annotations . Reflection Overview and Uses . User Defined Annotations . Reflection Issues . Reflection Annotation Information . Reflection Using the Class Object . The enum Data Type . Invoking Methods Using Reflection . Generics . Methods Available on the Class Object . Autoboxing . Creating a New Instance . Methods Having Variable Parameters . Introspection . Assertions . Customizing BeanInfo . Invoking Methods Using Introspection . Using Reflection to Access Properties . Review of equals Method
Collections Framework JDBC
. What is the Collections Framework . What is JDBC . Simple Arrays and Arrays of Objects . JDBC Drivers . Legacy Container Classes . Accessing the Database . Collections Framework Overview . Loading Driver
71
. Collections Interfaces . Connecting to Data Source . Lists . Creating Statements . Sets . Executing Statements . Queues . Processing Result Sets . Map Interfaces . Cursor Positioning . Interface Implementations . Column Retrieval . Lists . Updating Result Sets . Sets . Connection Pooling . Queues . Processing Errors and Warnings . Maps . Using Prepared Statements . Iterators . Using Stored Procedures . Metadata . Result Set Metadata . Database Metadata . Transaction Processing . Isolation Levels . SQL Batches
Threads Networking
. Definition of a Thread . Overview of java.net Package . Creating Threads . Format of URL . Naming Threads . URL Class . Data Sharing Among Threads . URLConnection Class . Local Data . InetAddress Class . Instance Data . Definitions . Class Data . Client . volatile Keyword . Server . Thread States . Port . Thread Priority . Socket . Minimum. Maximum, Normal Priorities . TCP/IP Protocols . Preemptive Thread Priority . Socket Class . setPriority Method . Writing Client Side Applications . getPriority Method . Read From Socket . Piping Data Between Threads . Write to Socket . Coordination and Controlling Threads . ServerSocket Class . Synchronizing Threads . Writing Server Side Applications . Why Synchronization is Needed . Daemon Servers . Producer/Consumer Example . Multi-Threaded Servers . synchronized Keyword . Thread Synchronization Methods
Inner and Nested Classes
. What Are Inner Classes . Benefits of Inner Classes 72
. Terminology . Restrictions . Syntax . Types of Inner Classes . Member Inner Class . Local Inner Class . Anonymous Inner Class . Nested Top Level Class . Lambda Expressions . Functional Interfaces . Default Interface Methods . Static Interfaces Methods . Lambda Expression Uses . Lambda Expression Syntax . Method and Constructor References
73
Introduction to Programming Concepts Duration: 7 hours
Price: $0 (This course is a free supplement for certain certificate programs)
Prerequisites: Rudimentary knowledge of computer systems. Students should know how to basically operate a computer, browse the world wide web, send and receive email messages, and write and print memos.
Description: Courses that teach programming languages tend to focus on the particulars of each language (as they should), expending only minimal time discussing basic universal programming concepts. Students who are new to programming may find themselves overwhelmed in discussions of the details of matters such as control flow operators, executable images, third generation languages, and logical operators before they really understand the concepts. This situation can leave the student lost or frustrated or both.
This course is offered for the aspiring programmer to provide them the foundational knowledge that is necessary to learn and advance in a programming career. Students will be exposed to fundamental concepts that are utilized by all programming languages in this course.
Course Overview
The Essence of Programming The Tasks of Programmers
. The language of computers . Analysis and requirements gathering . Computer components . Design and planning . Hardware and software . Coding . Operating systems . Testing . Programs . Deployment/Documentation . Maintenance . Your job
Types of Programming Statements and Storage
. Computer languages . The organization of programs . Machine code . Libraries . Early programming . Declaring and initializing variables and constants . The evolution of programming languages . Data types: integers, floats, Booleans, characters, . First Generation Languages arrays, structures, objects, pointers . Second Generation Languages . Proper data typing . Third Generation Languages . Allocation . Fourth Generation Languages . Static and dynamic data typing
74
. Fifth Generation Languages . Strong and weak data typing . Compilers . Scope . The process of compiling . Inheritance . Practical compiling . Interpreted languages . Pros and cons or compiled and interpreted languages . Imperative programming . Structured programming . Procedural programming . Object-oriented programming . Declarative programming . Functional programming . Stand-alone programs . Distributed programming . Client-server programming . Web-enabled programming . Textual programming . IDEs . Visual programming
Operators and Control Flow The Language of Programming
. Assignment operators . Algorithms . Arithmetic operators . Strings . Relational operators . Regular expressions . Conditional operators . Input/Output . Logical operators . Graphical user interfaces . Bitwise operators . Events . Special operators . Frameworks . if, if-then, if-then-else statements . Debugging . case or switch-case statements . Compile time vs. run time errors . for or foreach statements . Database programming . while statements . Technical communities . do-while statements . Benchmarks . Protocols
The Real World
. Working with the Command Prompt . Customizing your environment . Help . Online documentation . Batch files and scripts . Installing and using a compiler . Man pages
75
. Writing a C program . Debugging C programs
76
Introduction to Spring 5, Spring MVC and Spring REST Duration: 35 hours
Price: $900
Prerequisites: Java SE programming experience and an understanding of object-oriented design principles. Fundamental knowledge of XML is helpful but not required. The course Java Programming or equivalent knowledge provides a solid foundation.
Description: Spring 5 provides an evolutionary advance of Spring's powerful capabilities. This course introduces those capabilities, as well as providing guidelines on when and how to use them. It includes coverage of the three main configuration styles: Java-based (@Configuration), annotation-based (@Component), and the traditional XML-based configuration that may still play an important role in existing and new projects.
The course starts with in-depth coverage of Spring's Core module to reduce coupling and increase the flexibility, ease of maintenance, and testing of your applications. It goes on to cover many of the most important capabilities of Spring, including easing configuration with Spring Boot, integrating Hibernate and JPA persistence layers with Spring and Spring Data, and using Spring's declarative transaction capabilities.
The course includes integration of Spring with Java EE Web applications, a solid introduction to Spring MVC, and coverage of building RESTful resources with Spring MVC. It also provides an overview of Springs reactive programming model for repositories and Web resources.
This course is hands on with labs to reinforce all the important concepts. It will enable you to build working Spring applications and give you an understanding of the important concepts and technology in a short timeframe.
The course does all labs with the Eclipse IDE and the lab instructions include detailed directions for setting up and using it.
Course Overview
Introduction to Spring Configuration in Depth
. Overview of Spring Technology . Java Based Configuration . Challenges for Modern Applications (@Configuration) . Motivation for Spring, Spring Architecture . Overview of @Configuration and . The Spring Framework @Bean . Spring Introduction . Dependency Injection . Declaring and Managing Beans . Resolving Dependencies 77
. ApplicationContexts: The Spring Container . Integrating Configuration Types . XML and @Component/@Named Config . XML and @Component Pros/Cons . Dependencies and Dependency Injection (DI) . @Configuration Pros/Cons . Examining Dependencies . Choosing a Configuration Style . Dependency Inversion . Integrating with @Import and . Dependency InjectioN (DI)
Spring Boot Overview Spring Testing
. Maven and Spring . Testing and JUnit Overview . Spring Boot Structure . Writing Tests: Test Classes, Asserts, . Spring POMs with Boot Parents Naming Conventions . Spring Boot Starters . Running Tests: IDE, Maven, ... . Test Fixtures: Setup and Teardown . Spring TestContext Framework . Overview . Configuration . Running Tests
Spring and Spring Data with Hibernate/JPA Spring Transaction (TX) Management
. Overview of Spring Database Support . Overview . Configuring a DataSource . Declarative TX Management (REQUIRED, . Using Spring with Hibernate etc.) . High Level Hibernate Overview . TX Scope and Propagation . SessionFactory Configuration and LocalSessionFactoryBean
78
. Contextual Sessions and Spring . Pointcut-Based Configuration of Integration Transactions . Using Spring with JPA . Managing the EntityManager (EM) Spring Web Integration and Introduction to Spring . LocalContainerEntityManagerFactoryBea MVC n and Container-managed EMs . JEE and JNDI Lookup of the EM . Java EE Web App Integration . Configuration and Vendor Adaptors . ContextLoaderListener and . Creating a JPA Repository/DAO Bean: WebApplicationContext @PersistenceUnit, @PersistenceContext . Web MVC Overview . Spring Data Introduction . Spring MVC Basics . Overview and Architecture . Configuration and the . Configuring Spring Data DispatcherServlet . Repositories and JPA Repositories . @Controller, @RequestMapping . Using CrudRepository (Handlers) . Spring Data Querying . @RequestParam and Parameter . Naming Conventions for Querying Binding . Creating more Complex Queries . View Resolvers . Query Configuration . Controller Details: @RequestParam and @PathVariable . Model Data and @ModelAttribute
Additional Spring MVC Capabilities RESTful Services with Spring
. @ModelAttribute and Reference Data . REST Overview, URI Templates . Forms and Binding, Spring Form Tags . REST and Spring MVC . Sessions and @SessionAttributes . Spring Support for REST . Validation / JSR-303 . @RequestMapping/@PathVariable , @RequestBody and
@ResponseBody What's New in Spring 5 . URI Templates and @PathVariable . Controllers with @RestController . Updates to Spring Core . Generating JSON . WebFlux . JSON Overview . Reactive Web Framework . JSON Representations for Resources . Message Converters . Generating XML . JAXB and Jackson Message Converters for XML . JAXB / @XmlRootElement
79
. Content Negotiation .
Common REST Patterns XML Specific Configuration
. GET: Read . Collections: Lists, Sets, etc. . POST: Create . Additional Capabilities . PUT: Update . Factory Classes and Factory . DELETE: Delete Methods . Programming on server side and client side (with . Definition Inheritance (Parent RestTemplate) Beans) . AutoWiring with XML
. Inner Beans and Compound Names
80
Introduction to Spring Boot 2
Duration: 21 hours
Price: $900
Prerequisites: Java SE programming experience equivalent to completing the Java Programming course and knowledge of Spring equivalent to completing the Introduction to Spring 5, Spring MVC and Spring REST course.
Description: As the Spring framework has grown, creating and configuring Spring applications has become more and more complex. Spring Boot takes an "opinionated" view of an application (via intelligent defaults) that minimizes configuration and boilerplate Spring code. Spring Boot makes it easier to use Spring's many frameworks, and adds advanced capabilities such as health monitoring. This course introduces Spring Boot from the ground up, including overviews of building blocks such as Maven. It covers the key features and capabilities of Spring Boot, and teaches experienced Spring developers the skills they need to use Spring Boot productively. This course covers Spring Boot 2 and Spring 5 - the current releases of these frameworks.
This course does all labs with the Eclipse IDE, and the lab instructions include detailed directions for setting up and using it.
Course Overview
Spring Configuration Overview Introduction to Spring Boot
. Spring Review . Maven Overview . Using the Spring Container . Core Maven Concepts . Overview of XML and @Component . The Project Object Model (POM) . Dependency Injection (DI) in Spring . Spring Boot Overview . Dependencies in Configuration Classes . Dependency Management . Injecting Configuration Classes . Configuration with Spring Boot . Using Java-based Configuration . Programming with Spring Boot (@Configuration) . Spring Boot Hello World / SpringApplication . Integrating Configuration of Different . SpringApplication Overview Types . @SpringBootApplication . Importing Between XML and @Configuration . CommandLineRunner . ApplicationRunner
Configuration and Customization Spring Boot Database Support
. Working with Properties . JDBC Auto-Configuration Using spring-boot- . Overview of YAML starter-jdbc 81
. Configuring File Logging . Embedded Database Auto-Configuration . Using the Spring TestContext Framework . Configuring DataSource Properties . Auto-Configuration Overview . Spring Boot's JPA Support Using spring-boot- . Customizing SpringApplication starter-data-jpa . Spring Data Overview . Using the CrudRepository/JpaRepository Methods . Defining Queries with Spring Boot Data
Spring Boot Web/REST and Security Spring Boot Actuator and DevTools
. DispatcherServlet Review . Overview of spring-boot-starter-actuator . Web Starters and Configuration Using spring- . Actuator Endpoints boot-starter-web . Configuring Endpoint Access . Using Embedded Servers (Tomcat, Netty) . Customizing Actuators and Health Checks . Deploying to an External Server . Overview of spring-boot-starter-devtools . Spring Security Overview . Auto-configuration and Customization Using spring-boot-starter-security . Overview of Spring Boot Data REST
Spring Boot CLI
. Overview of Spring Boot CLI . Installing and Running the CLI . Grabbing / @Grab
82
Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX
Duration: 35 hours
Price: $900
Prerequisites: Java SE programming experience and an understanding of object-oriented design principles.
Description: This course provides students hands on experience with cutting edge Java Enterprise (Java EE) technologies, creating dynamic web and enterprise applications that utilize several Java frameworks and technologies including JSP's and Servlets, Java Persistence API (JPA), JNDI, JDBC, AJAX, Web Services, Spring and Hibernate. The goal is to enable students to exploit the Java EE platform and accompanying frameworks to facilitate the development of distributed, web-enabled applications.
Students will architectural design issues as well as specific coding models for a variety of Java EE components. By working with several Java frameworks in hands on labs, students will build applications that incorporate many of the patterns commonly used in these and other Java frameworks. Upon completion of the course, students should be able to learn and effectively utilize frameworks appropriate for their application environment.
Starting with Java Server Pages and Servlets, the course then introduces some of the most widely used frameworks to provide concrete illustrations of the services available. Since coding and deployment files are standardized by the Java EE specifications, students may readily apply the skills learned in this class to write code for any compliant server, including Apache Tomcat, JBoss, WebSphere, Oracle, WebLogic and many others.
Students will learn how to utilize ANT, a flexible and powerful XML-based build utility, to compile, deploy and execute stand-alone and enterprise Java applications. They will also use ANT to execute standalone client applications that communicate with Java EE applications. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Introduction to Java EE Web Applications Using ANT
. Server-Side Application Development using Java . Understanding the ANT Build File EE . Designing ANT Targets . The Role of Java Frameworks, Components and . Using ANT Standard Tasks Services . Using ANT Properties . Using Web-Based Components in Application . Compiling and Executing Java Applications Design 83
. Structure of Java EE Web Components . Building WAR, EAR and JAR Deployment Files . Deploying Web Applications . Java EE Web Container Services
Introduction to Servlets Developing Servlets
. Servlet Architecture and Advantages . Servlet Classes and Interfaces . The Role of Servlets in Web Application Design . Working with Request and Response Objects . Servlet Runtime Environment . Processing GET and POST Requests from Web . Servlet Lifecycle Clients . Retrieving Parameters from HTML Client Forms . Generating Dynamic HTML Responses . Initializing Servlets . Destroying and Freeing Resources in Servlets . Controlling Single and Multi-Threading in a Servlet . Deploying Servlets to a Web Application Server . Building the WAR file . The web.xml Descriptor File
Developing Java Server Pages (JSPs) Deploying and Using Tag Libraries
. Understanding JSP/Servlet Translation . Motivation for Tag Libraries . Elements of JSP Syntax . Implementing the Model-View-Controller Pattern . JSP Page Directives . JSP Built-In Actions . JSP Declarations . The JSP Standard Tag Library (JSTL) . Displaying JSP Expressions . Deploying and Using Tag Libraries . Writing Scriptlets . Deploying JSPs . Using JavaBeans in JSPs . JavaBean Architecture . Creating JavaBeans . Using JavaBeans in JSP Pages . XML-format JSP Documents
Writing Tag Handlers Accessing Databases with JDBC
. Analyzing Tag Library Descriptor Files . Understanding the JDBC Connectivity Model . Creating Tag Library Descriptor Tags . Accessing Data Sources through JNDI . Using Tag Handler Methods to Generate Dynamic . Connecting to a Database Web Content . Executing SQL Queries and Updates . Handling Tag Attributes and Attribute Validation . Processing Result Sets . Processing Tag Body Content . Using Scrollable and Sensitive Result Sets . Working with the TagExtraInfo Class . Working with ResultSetMetaData Classes . Developing and Deploying Tag Files . Utilizing Parameterized Statements . Calling Stored Procedures . Handling SQLExceptions 84
. Controlling Transactions . Using Batch Updates
Java Naming and Directory Interface (JNDI) Hibernate Overview
. Role of JNDI in the Java EE Architecture . Need for Hibernate . JNDI Service Providers . Hibernate and ORM (Object-Relation Mapping) . Importing and Utilizing JNDI Packages . POJOs (Plain Old Java Objects) and the Data Layer . Binding Objects with JNDI . Hibernate Mapping . Looking up Objects with JNDI . Hibernate Over Entity Beans . Using the Environment Naming Context (ENC) . Declaring Resource References
Hibernate Programming Fundamentals Hibernate Power Programming
. Modeling Complex Mappings . Hibernate Annotations and JPA . Hibernate and Native SQL . Issues with Adding Hibernate to Existing Systems . HQL (Hibernate Query Language) . Developing POJOs in Existing Systems . Where . Advanced HQL Techniques . Order By . HQL Result Transformers . Group By . Using the Criteria API for Complex Queries . Hibernate Aggregate functions . Transaction and Concurrency Issues . Identifying and Removing Performance . Avg Bottlenecks . Min . Lazy Loading for Performance . Max . Inheritance and Polymorphism in the Persistence . HQL Associations and Joins Layer . Hibernate Subqueries . Hibernate Best Practices . Hibernate Configuration Files . Full CRUD Application (Create, Retrieve, Update, and Delete)
Introduction to the Spring Application Framework Spring Framework Core Components
. Spring Capabilities and Modules . Spring Core . The Role of POJOs . Using POJOs (Plain Old Java Objects) . Lightweight IOC (Inversion-Of-Control) . Spring Bean Factory . Dependency Injection . Singleton and Prototype Beans . The Factory Pattern and the Spring Container . Setter Injection and Constructor Injection . Spring XML Configuration Files . Order of Instantiation . Spring Persistence Support . Lazy vs. Eager . Data Access Framework and Data Access Objects . Controlling Spring's XML Configuration Files . AOP (Aspect-Oriented Programming)
Adding Spring to Existing Applications Introduction to AJAX
85
. Issues Adding Spring to Existing Applications . AJAX Architecture and Capabilities . AOP and Transactions . Client Side . Spring Valuators . Server Side . Spring Interceptors . Circumventing the Page Reload Paradigm . Spring MVC . CSS, HTML and AJAX . Integrating Spring with Hibernate . JavaScript and DOM . Possible Conflicts with Existing Systems . XMLHttpRequest Object . AOP vs. Annotations . readyState and responseXML Properties . Making AJAX Asynchronous Calls . AJAX Function Calling Conventions . Response Handling with JavaScript . Browser Compatibility Issues . Server-Side and Client-Side AJAX
Java and AJAX Adding AJAX to Existing Web Applications
. Callback Functions/Methods . Issues Adding AJAX to Existing Apps . Built-In Objects . Dealing with Asynchronous Responses . Parsing AJAX Responses . Cross Browser Libraries and Frameworks . XML and JSON Response Formats . Working with AJAX Toolkits . Servlet Code to Handle AJAX Requests . Dojo Toolkit . Server Side Persistence . Prototype . AJAX Patterns and Best Practices . DWR (Direct Web Remoting) . Limitations of AJAX . Google Web Toolkit . Debugging AJAX . AJAX and REST Design Compatibility Issues . Security Issues
Web Services on the Server Side Web Services on the Client Side
. Overview of Web Services . Consuming a Web Service . Advantages of Web Services . Client Side Artifacts . Creating a Web Service . JAX-WS Clients . Deploying a Web Services . Java/WSDL Mapping . Requirements for a JAX-WS Web Service Endpoint . RESTful Web Services Implementation Class . RESTful Web Services in Java . The Web Service Endpoint Implementation Class . Working with WSDL Files . Web Service Interoperability
86 iOS Programming for iPhone® and iPad® Applications Using Objective-C
Duration: 35 hours
Price: $900
Prerequisites: Prior programming experience in an object-oriented language such as Java, C# or C++.
Description: Participants in this hands-on course will learn about and gain practice developing iOS applications for iPhone and iPad devices. Attendees will learn all the basics needed for iOS development, from installation of the Xcode editor to the Apple approval process. The Objective-C language is presented and used in hands on exercises to learn how it interacts with the hardware systems.
In hands on exercises, students will use built-in data views as well as create custom screens for data entry and presentation. Students will learn to follow Apple's design recommendations to provide clean interfaces that appropriately size to various devices and screens.
The course includes coverage of scheduled background execution to allow code to be run when the app isn't active and to schedule alerts to draw attention back to the app.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency. Students will create apps from the ground up, demonstrating the features of Objective-C and serving as an introduction to developing apps for release to the App Store.
Course Overview
Macintosh Orientation Objective-C
. Versions of iOS and Supported Devices . Fundamental Syntax . Overview of the New OS X . Object Oriented Programming Support . Command Line Interaction . Using Dynamic Binding . Apple Approval Process . Using ARC . Writing Code for Hardware Interaction . Data Types and Structs . Flow Control . Pointers, Heap and Stack
Xcode IDE Installation and Use NeXTStep Object Support
. Installing and Updating Xcode . Using the NeXTStep Data Types . Code Development and Tracking . NSDate, NSPoint, NSSize, NSString
87
. Debugging Utilities . Using the NeXTStep Collection Objects . Application Navigation Tools . NSSet and NSMutableSet . NSArray and NSMutableArray . NSDictionary and NSMutableDictionary
MVC Architecture System Event Handling
. Model-View-Controller Development Paradigm . Recognizing Apps Moving to Background . Application Design Process . Detecting and Solving Low Memory Events . Handling Custom Events and Exceptions
SOA Application Design Overview Threading Support
. Service Oriented Architecture . Creating Threads . Web Services Overview . Using Threads for Asynchronous Processing . Apple Push Notification Service (APNs)
Dynamic Typing Basic Design Patterns Used in iOS
. Understanding the id Data Type . Singleton Pattern . Analyzing Objects for Type Safety . Lazy Instantiation . Testing Objects for Function Support . Protocol/Delegate Patterns
Custom View Design and Layout Views and View Controllers
. Designing Views . Using Generic Views and View Controllers . Apple's UI Design Standards . Using Specific Purpose Views . Utilizing Controls . Text View . Custom View Transitions and Animations . Web View . Map View . Table and Table Cell View
Blocks
. Purpose and Syntax of Blocks . Block Animation Methods . Developing Multithreaded Blocks
88
Java Programming
Duration: 35 hours
Price: $900
Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object- Oriented Design (OOD) is helpful, but not required.
Description: This hands on course introduces experienced programmers to Java™ technology and Java programming techniques. The Java platform provides an object-oriented, portable and robust framework for application development. Included are core language concepts including fundamental data types, flow control, and standard function libraries. The course emphasizes object oriented programming and modular design to support distributed development environments. Included are the design of classes and objects, inheritance and polymorphism, and the details about creating programs for use on a distributed network, with emphasis on JSP, Servlets, and JDBC.The course also includes coverage of the Java Collections API, fundamental I/O, exceptions, and exception handling.
The course is designed to leverage the participants' existing programming skills and to highlight the new and extended features of the Java programming framework as compared to other common languages. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Introduction to Java Developing Software Using Java
. Cornerstones of the Java Platform . Applications, Applets, Web Components . Java Advantages . Java SE, Java EE, Java ME . The Java Programming Language . Installing the JDK . The Java Virtual Machine (JVM) . Compiling and Running Java from the Command . Core Java Libraries Line . Extension Libraries . The main() Method . package and import Statements . JAR Files . Class Loading and CLASSPATH . Online API Documentation . JDK Tools . Java Integrated Development Environments (IDEs)
Java Syntax Fundamentals Data Types and Operators
. Comments . Primitive Types 89
. Identifiers . Boolean, Integer, Floating-Point and Character . Reserved Words Types . Classes . Unicode Characters and Strings . Statements and Blocks . Type Conversion and Casting . Variables, Constants, Literals . Expressions and Operators . Scope of Variables . Arithmetic Operators . Methods . Increment/Decrement Operators . Method Overloading . Division and Remainder Operators . static Members . Assignment Operators . Static Import (Java SE 5+) . Relational Comparison and Logical Operators . Naming Conventions . Conditional Operator . Bitwise Operators . Order of Evaluation . Operator Precedence and Associativity
Flow of Control Using Java Classes and Objects
. if/else Statement . Classes as Data Types . Combining ifs . Objects and References . while and do/while Loops . Memory in the JVM . Object Initialization . for Loop and Loop Counters . Objects as Arguments to Methods . break and continue . Objects as Return Values . Break to Labeled Loops . Garbage Collection . switch Statement . Primitive Wrapper Classes - Integer, Double, etc. . return Statement . Autoboxing and Unboxing (Java SE 5+) . Exit Status
Strings Arrays
. String Manipulation . Declaring and Allocating Arrays . StringBuffer and StringBuilder . Multi-Dimensional Array . Simple Number/String Conversion . Array Literals . The java.util.Arrays Class . Command-Line Arguments . Enhanced for Loop (Java SE 5+) . Arrays as Method Arguments . Variable-Length Arglists (varargs) (Java SE 5+) . Autoboxing and varargs
Developing Java Classes Inheritance
. Object-Oriented (OO) Concepts . Extending Java Classes . Methods, Member Variables . Accessing Superclass Constructors and Members . Accessing Members . Overriding Methods . Tight Encapsulation . Abstract CLasses and Methods
90
. Access Control Modifiers . Polymorphism . Constructors and Finalizer . Overriding Methods of java.lang.Object . Using this . equals(), toString(), hashCode() . Class Variables - Static Members and Static Blocks . Final Classes and Methods . Instance Variables . Multiple Inheritance . Local Variables . Interfaces . Variables and Initialization . Casting Object References . Inner Classes . Documenting Classes with the javadoc Utility . Anonymous Classes . Unit Testing . JavaBeans . Driver Classes
Type Safety The Collections Framework
. Annotations (Java SE 5+) . The java.util Package . Java SE Built-In Annotations . Container Objects . Defining New Annotations . Arrays as Containers . Enumerated Types (Java SE 5+) . Legacy Container Classes - Vector, Hashtable, . Constants and Constrained Values Enumeration . Defining and Declaring enums . Legacy Container Generic Forms (Java SE 5+) . enum Values . Collections Interfaces - Collection
Exceptions and Exception Handling Basic Input and Output (I/O)
. The Throwable Hierarchy: Error, . The java.io Package RuntimeException and Checked Exception . Using Stream Classes . Methods that Throw Exceptions . Combining Streams . Handling Exceptions with try-catch-finally Blocks . flush() and close() . Application-Defined Exceptions . Console Input and Output . Throwing an Exception . Navigating the File System . Assertions (Java 1.4+) . File Streams . Enabling Assertions at Run-Time . Character File Input and Output . Reader and Writer Interfaces
91
. BufferedReader and BufferedWriter . Binary File I/O - DataOutputStream and DataInputStream . Object Streams - ObjectInputStream and ObjectOutputStream . Serialization and Versioning . Random Access Files . Formatted Input and Output . Formatter (Java SE 5+) . Format specifiers, printf() and format() . java.text Classes for Formatting Dates, Numbers, Currencies . Input with Scanner (Java SE 5+)
Network Programming Threads
. The java.net Package . Life and States of a Thread . IP Addresses and Port Numbers . Creating and Starting a Thread . Client/Server Socket Programming . java.lang.Runnable and java.lang.Thread . URL and URLConnection Classes . Stopping a Thread . Communicating with Web Servers . Inter-Thread Communication . HTTP GET and POST Operations . Thread-Safe Access to Shared Objects and . Posting to a Server-Side Program Variables . Synchronized Code . Sleeping . Interrupting a Blocked Thread . wait(), notify(), notifyAll() Example . Thread Scheduling . Thread Groups . Writing a Multithreaded Server
Java Database Connectivity Java Web Applications
. The java.sql Package . Java Enterprise Edition . JDBC Architecture and Drivers . Java EE Application Servers . SQL Exceptions . Web Application Directory and WAR files . DriverManager, Connection, Statement and . Deploying a Web Application - The web.xml File ResultSet Interfaces . Servlet Architecture . Examining Database MetaData . The javax.servlet Package . Basic Query and Update . Servlet Classes and Interfaces . Improving Performance with PreparedStatement . Writing a Servlet and CallableStatement Interfaces . HttpServletRequest and HttpServletResponse . JDBC Transaction Management . Handling HTML Forms . Retrieving Request Parameters
92
JavaServer Pages (JSPs)
. JSP Lifecycle . Elements of a JSP . Directives, Declarative, Scriptlets . Writing a JSP . Objects Available in a JSP . Repeated content in JSPs . Translation-Time and Request-Time Includes . Using JavaBeans in a JSP . Session Management . Mixing JSPs and Servlets . Installing and Using Tag Libraries . The JSP taglib Directive . The Tag Library Descriptor
93
JavaScript Programming
Duration: 35 hours
Price: $900
Prerequisites: Basic computer skills and knowledge of HTML fundamentals including use of Cascading Style Sheets.
Description: JavaScript is a scripting language that is commonly used to create and control dynamic Website content along with its use in the Node.js runtime. This hands on JavaScript training course provides the fundamental knowledge necessary to design and develop dynamic Web pages using JavaScript and to be able to grasp JavaScript libraries and frameworks such as jQuery, React and Angular. Students will learn the syntax of the JavaScript language and how to use JavaScript in a Web browser.
Topics include ways to declare variables, use of intrinsic JavaScript objects such as Math, Date and Array, declaring and calling functions, defining custom objects, error handling, working with arrow functions, and using conditional logic. Students will learn how to include JavaScript in a Web page and how to use browser-based APIs such as the Document Object Model (DOM), Geolocation and Web Storage. Upon completion students will be able to utilize event handling, form validation, JSON and Ajax.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Overview of the JavaScript Language JavaScript Fundamentals
. Typical Uses of JavaScript . Using Strict Mode . Evolution of the JavaScript Language . JavaScript and Whitespace . ECMAScript Version Support . Adding Comments . What is Core JavaScript? . Declaring Variables . What are JavaScript APIs? . var, let and const Keywords . Writing JavaScript in Visual Studio Code . Local vs. Global Variables . Declaring Block-Scoped Variables . JavaScript DataTypes . Primitive Types . Objects . Performing Data Conversions . Working with JavaScript Operators . Assignment Operators . Type Operators . Bitwise Operators . Conditional Operator
94
. Working with Dates
Working with Numeric Data Dealing with Errors
. Solving Precision Problems with Numbers . Types of JavaScript Errors . Rounding Numbers . Error Handling . Creating Random Numbers . try . Arithmetic Operation . catch . Working with Exponents . finally . Converting to Numbers . Throwing Custom Errors with throw . parseInt, parseFloat and Number Functions
Controlling Flow Working with Arrays
. Creating Boolean Expressions . Creating Arrays . Using Standard and Strict Equality . Using the Array Constructor Operators . Using Literal Notation . Using Logical and Comparison Operators . String.split() . Conditional Constructs . Array.of() . if else . Accessing Array Elements . switch . Common Array Methods . Looping Constructs . forEach() . do while . includes() . while . find() and findIndex() . for . Adding and Removing Elements . for in . Sorting Arrays . for…of . Creating a Custom Sort Function . Branching Statements . Looping through an Array . break . continue . Using Labels
Working with Strings Implementing Functions
. Creating String Objects . Declaring Functions . Using String Methods . Function Parameters . Searching within a String . Default Parameters . Returning a Substring . Rest Parameters . Converting Character Case . Invoking Functions . Template Literals . Passing Arguments . Escape Sequences . Spread Operator . Named and Anonymous Functions . Local vs. Global Variables . Returning Values from a Function
95
. The this Keyword . IIFEs . Closures . Callback Functions . Arrow Functions
Using JavaScript in the Browser Browser Object Model
. Embedding JavaScript in a Page . Overview of the Browser Object Model . Referencing an External Script File . Using the window Object . Using the JavaScript Console . Opening and Closing Windows . Logging Messages in the Console . Using Timers . Debugging with Console . Interacting with the User with Dialogs . Deferring Script Loading . Using the document Object . Where to Include JavaScript . Writing to the Web Page . DOMContentLoaded vs Load Events . Useful Properties of the Document . navigator Object . Feature detection . location Object . screen Object
Introduction to the Document Object Model (DOM) Event Handling in JavaScript
. Overview of Common DOM Types . Overview of JavaScript Events . Selecting DOM Elements . The event Object Members . Selecting Elements By Id and Name . Event Capturing and Bubbling . Selecting Elements By Class . Adding Event Handlers . Using CSS Selectors to Select Elements . Traditional (Inline) Model . Modifying Page Content with the DOM . Registering Events in JavaScript . innerHTML and textContent Properties . Adding Multiple Handlers with . createElement addEventListener . createDocumentFragment . Mouse and Keyboard Events . Accessing Attributes . Preventing Default Behavior . Canceling Events
Scripting CSS with JavaScript Working with Forms
. Using the style Property . Enhancing Forms with JavaScript . CSSStyleDeclaration Objects . Preventing a Double Submission . getComputedStyle . Selecting All Checkboxes . Modifying Classes with the classList API . Conditionally Showing Fields . Working with Form Elements
Form Validation Using Regular Expressions
96
. Client-Side vs Server-Side Validation . Overview of Regular Expressions . Validating Form Fields . Using Regular Expressions in JavaScript . Checking Required Fields . Creating a RegExp Object . Checking Length of Input . Using i and g Flags . Overview of HTML 5 Validation . Pattern Matching with Regular Expressions . Constraint API . Using Backreferences . Canceling Form Submission
Working with JavaScript Objects and JSON Using Ajax
. Understanding Objects . Overview of Ajax . Defining Custom Objects . The XMLHttpRequest Object . Object Literal Notation . Configuring an Ajax Request . Defining Properties and Methods . Processing JSON with Ajax . Creating a Constructor . Using Ajax to Call a Web Service . Using the in and instanceof Operators . Overview of JSON . Using JSON.stringify and JSON.parse
HTML5 JavaScript APIs
. Overview of APIs . Using Modernizr . Geolocation API . Using the getCurrentPosition() Method . The Position Object . Using the Google Maps JavaScript API
. Obtaining an API Key . Creating a Map . Adding Custom Markers to a Map . Adding Info Windows to a Map . Web Storage API . Local Storage . Session Storage
97 jQuery Programming
Duration: 21 hours
Price: $900
Prerequisites: Knowledge of HTML, CSS and JavaScript equivalent to attending the Website Development with HTML5, CSS and Bootstrap and JavaScript Programming courses.
Description: This hands-on course covers the jQuery library, DOM manipulation, performing Ajax requests, and an overview of the UI library. Students will also learn how to use the jQuery function to return a wrapped set of elements, use utility functions to work with arrays and strings, modify the appearance of elements using a number of predefined effects as well as how to implement existing plugins.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview jQuery Fundamentals jQuery Selectors and Filters
. Overview of jQuery . Ready Handler . Downloading and Using jQuery library . Using jQuery Selectors and Filters . Benefits of Using jQuery . Selecting Single and Multiple Elements . Uses of the jQuery function . Operating on Wrapped Sets . Method Chaining
DOM Manipulation jQuery Events
. Accessing Attributes of an Element . jQuery Event Model . Adding and Removing Elements . Binding and Removing Event Handlers with on() . Setting Element Content With text() and html() and off() . Manipulating Classes and CSS . Delegated and Direct Events . Event Object . Common jQuery Events
Page Animation with Effects Ajax Requests Using jQuery
. Controlling Visibility Using show() and hide() . Ajax Overview . Creating Slide and Fade Effects . Loading Remote HTML . Creating Custom Animations . Making Ajax Requests Using the $.ajax() Function . Animation Queuing and Callback Functions . Using the $.get() and $.post() Functions
98 jQuery Form Enhancement Utility Functions
. Using Form Selectors and Filters . Disabling Animations . Handling Keyboard and Focus Events . Using Other Libraries with jQuery . Improving Behavior and Appearance . String and Array Manipulation . Performing Form Validation . Using the Validation Plugin jQuery Plugins jQuery UI Overview
. Benefits of Plugins . Configuring and Downloading the UI Library . Integrating Popular Plugins . Themes and Styles . Image Manipulation with Slideshows and . Using ThemeRoller Carousels . Overview of UI Widgets . Creating Custom Plugins
99
Learning to Program with C#
Duration: 35 hours
Price: $900
Prerequisites: Familiarity with computers.
Description: This hands on C# programming course provides an introduction to programming using the C# language. Students are introduced to the application development cycle, structure of programs, and specific language syntax. The course also contains "Thinking Like a Programmer" sections that provide students insight on how to develop common algorithms. The course covers console and file I/O, string and character manipulation, managing data using collections and fundamental object-oriented programming concepts. Error handling techniques are also emphasized. The course also introduces how to access databases using ADO.NET and illustrates how to build user interfaces using Windows Forms. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
This class is intended for non-programmers.
Course Overview
Application Development Fundamentals Managing the Flow of an Application
. Overview of Programming Concepts . Conditional Constructs . Understanding the Structure of a C# Program . Working with if/else Constructs . Understanding Data Types . Working with switch . Working with Variables . Looping Constructs . Reading From and Writing to the Console . Working with while Constructs . Overview of the .NET Framework . Working with for and foreach . Using Visual Studio . Thinking Like a Programmer . Thinking Like a Programmer . Making Decisions . Designing Algorithms . Designing Loops . Finding Patterns in Code
Working with Data Using Procedures to Modularize Code
. Using Integer Data Types . Defining and Calling Subroutines . Using Floating Point Data Types . Defining and Calling Functions . Using Characters and Strings . Understanding Variable Scope . Using Dates . Overloading Procedures . Using Booleans . Passing Parameters
100
. Working with Constants and Literals . Understanding by value vs by reference Parameters . Understanding the Call Stack . Thinking Like a Programmer . Finding the Procedures . Refactoring . Improving Productivity with Snippets
Object-Oriented Programming Understanding Namespaces
. Understanding Object-Oriented Concepts . Understanding the Role of Namespaces . Designing Classes . Understanding .NET Namespaces . Coding Properties and Methods . Defining Custom Namespaces . Initializing Objects with Constructors . Referencing Members in a Namespace . Overloading Constructors . Using the using Statement . Declaring and Instantiating Objects . Calling Properties and Methods . Understanding Value Types vs. Reference Types . Working with Shared Data Members and Methods . Thinking Like a Programmer . Finding your Classes
Working with Data Collections Building Inheritance Hierarchies
. Understanding Arrays . Understanding Inheritance . Declaring and Instantiating Arrays . Building Derived Classes . Iterating through Arrays . Understanding Constructors in Derived Classes . Working with System.Array Methods . Defining and Using Protected Class Members . Copying, Sorting, Searching and Resizing . Understanding Polymorphism . Passing Arrays to Methods . Defining Overridable Methods . Working with param array Parameters . Overriding Methods . Working with Command-line Arguments . Understanding Abstract Classes . Understanding .NET Collections . Defining Abstract Classes . Managing Data Using List . Inheriting from Abstract Classes . Managing Data Using Dictionary
Building GUIs with Windows Forms Accessing Databases Using ADO.NET
. Overview of Windows Forms . Understanding the ADO.NET Object Model . Designing Forms . Opening Connections 101
. Working with Controls . Executing Queries Using Commands . Using Labels and Textboxes . Iterating Through Results Using DataReaders . Using Buttons . Calling Stored Procedures . Using Checkboxes and Radio Buttons . Passing Parameters to Stored Procedures . Using Menus . Working with DataSets . Using List Controls . Binding Data to Controls . Handling Events
Exception Handling Working with Files, Directories and Streams
. Understanding Exception Handling . Using the System.IO Namespace . Using try/catch to Handle Exceptions . Discovering Drives . Working with the Exception Class . Working with Directories . Understanding Exception Propagation . Working with Files . Using finally to Manage Cleanup Processing . Parsing a File Path . Throwing Exceptions . Understanding Streams . Working with FileStream . Reading and Writing Text Files . Understanding other Types of Streams
Working with Strings Building N-Tier Applications
. Working with the String Class . Building Large Scale Applications . Working with String Literals and Escape . Designing N-Tier Applications Sequences . Building .NET Assemblies . Understanding String Manipulation Performance . Referencing Assemblies Issues . Working with the StringBuilder Class . Formatting Output with String.Format
102
Learning to Program with Java
Duration: 35 hours
Price: $900
Prerequisites: Familiarity with computers.
Description: This hands on Java Programming course provides an introduction to programming using the Java language. Students are introduced to the application development cycle, structure of programs, and specific language syntax. The course introduces important algorithmic constructs, string and character manipulation, dynamic memory allocation, standard I/O, and fundamental object-oriented programming concepts. The course explains the use of inheritance and polymorphism early on so the students can practice extensively in the hands on labs. Structured programming techniques and error handling are emphasized. The course includes the processing of command line arguments and environment variables so students will be able to write flexible, user-friendly programs. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Fundamentals of the Program Development Cycle Application Development Fundamentals
. Computer Architecture . Structure of a Java Program . The Notion of Algorithms . Memory Concepts . Source Code vs. Machine Code . Fundamental Data Type Declarations . Compile-Time vs. Run-Time . Fundamental I/O Concepts . Software Program Architecture . Fundamental Operators . Standalone . Arithmetic Operators . Client/Server . Logical Operators . Distributed . Precedence and Associativity . Web-Enabled . Building and Deploying a Java Program . IDE (Interactive Development Environment) Concepts
Introduction to Classes and Objects Flow Control
. Classes, Objects and Methods . Conditional Constructs . Object Instances . Looping Constructs . Declaring and Instantiating a Java Object . Counter-Controlled Repetition . Declaring Methods . Sentinel-Controlled Repetition . set and get Methods . Nested Control Constructs . Initiating Objects with Constructors . break and continue Statements
103
. Primitive Types vs. Reference Types . Structured Programming Best Practices
Writing Methods (Functions) Arrays
. Static vs. Dynamic Allocation . Purpose of Arrays . Declaring Methods . Declaring and Instantiating Arrays . Declaring Methods with Multiple Parameters . Passing Arrays to Methods . Method-Call Stack . Multidimensional Arrays . Scope of Declarations . Variable-Length Argument Lists . Argument Promotion and Casting . Using Command-Line Arguments . Designing Methods for Reusability . Using Environment Variables . Method Overloading
Deeper Into Classes and Objects Defining Classes Using Inheritance
. Controlling Access to Class Members . Superclasses and Subclasses . Referencing the Current Object Using this . Advantages of Using Inheritance . Overloading Constructors . protected Class Members . Default and No-Argument Constructors . Constructors in Subclasses . Composition of Classes . Garbage Collection and Destructors . The finalize Method . Static Class Members
Increasing Convenience by Using Polymorphism Files and Streams
. Purpose of Polymorphic Behavior . Concept of a Stream . The Concept of a Signature . Class File . Abstract Classes and Methods . Sequential Access . final Methods and Classes . Object Serialization to/from Sequential Access . Purpose of Interfaces Files . Using and Creating Interfaces . Additional java.io Classes . Common Interfaces of the Java API
Fundamental Searching and Sorting Fundamental Data Structures
. Introduction to Searching Algorithms . Dynamic Memory Allocation . Linear Search . Linked Lists . Binary Search . Stacks . Introduction to Sorting Algorithms . Queues . Selection Sort . Trees . Insertion Sort . Merge Sort
Exception Handling Formatted Output
104
. Types of Exceptions . printf Syntax . Exception Handling Overview . Conversion Characters . Exception Class Hierarchy . Specifying Field Width and Precision . Extending Exception Classes . Using Flags to Alter Appearance . When to Throw or Assert Exceptions . Printing Literals and Escape Sequences . Formatting Output with Class Formatter
Strings, Characters and Regular Expressions Fundamental GUI Programming Concepts
. Fundamentals of Characters and Strings . Overview of Swing Components . String Class . Displaying Text and Graphics in a Window . String Operations . Event Handling with Nested Classes . StringBuilder Class . GUI Event Types and Listener Interfaces . Character Class . Mouse Event Handling . Layout Managers . StringTokenizer Class . Regular Expressions . Regular Expression Syntax . Pattern Class . Matcher Class
105
Learning to Program with VB.NET
Duration: 35 hours
Price: $900
Prerequisites: Familiarity with computers.
Description: This hands on VB.NET programming course provides an introduction to programming using the VB.NET language. Students are introduced to the application development cycle, structure of programs, and specific language syntax. The course also contains "Thinking Like a Programmer" sections that provide students insight on how to develop common algorithms. The course covers console and file I/O, string and character manipulation, managing data using collections and fundamental object-oriented programming concepts. Error handling techniques are also emphasized. The course also introduces how to access databases using ADO.NET and illustrates how to build user interfaces using Windows Forms. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
This class is intended for non-programmers.
Course Overview
Application Development Fundamentals Managing the Flow of an Application
. Overview of Programming Concepts . Conditional Constructs . Understanding the Structure of a VB.NET Program . Working with If/Else Constructs . Understanding Data Types . Working with Select Case . Working with Variables . Looping Constructs . Reading From and Writing to the Console . Working with Do/Loop Constructs . Overview of the .NET Framework . Working with For and For Each . Using Visual Studio . Thinking Like a Programmer . Thinking Like a Programmer . Making Decisions . Designing Algorithms . Designing Loops . Finding Patterns in Code
Working with Data Using Procedures to Modularize Code
. Using Integer Data Types . Defining and Calling Subroutines . Using Floating Point Data Types . Defining and Calling Functions . Using Characters and Strings . Understanding Variable Scope . Using Dates . Overloading Procedures . Using Booleans . Passing Parameters . Working with Constants and Literals . Understanding ByVal vs ByRef Parameters
106
. Understanding Option Strict . Understanding the Call Stack . Thinking Like a Programmer . Finding the Procedures . Refactoring . Improving Productivity with Snippets
Object-Oriented Programming Understanding Namespaces
. Understanding Object-Oriented Concepts . Understanding the Role of Namespaces . Designing Classes . Understanding .NET Namespaces . Coding Properties and Methods . Defining Custom Namespaces . Initializing Objects with Constructors . Referencing Members in a Namespace . Overloading Constructors . Using the Imports Statement . Declaring and Instantiating Objects . Calling Properties and Methods . Understanding Value Types vs. Reference Types . Working with Shared Data Members and Methods . Thinking Like a Programmer . Finding your Classes
Working with Data Collections Building Inheritance Hierarchies
. Understanding Arrays . Understanding Inheritance . Declaring and Instantiating Arrays . Building Derived Classes . Iterating through Arrays . Understanding Constructors in Derived Classes . Working with System.Array Methods . Defining and Using Protected Class Members . Copying, Sorting, Searching and Resizing . Understanding Polymorphism . Passing Arrays to Methods . Defining Overridable Methods . Working with ParamArray Parameters . Overriding Methods . Working with Command-line Arguments . Understanding Abstract Classes . Understanding .NET Collections . Defining Abstract Classes . Managing Data Using List(Of T) . Inheriting from Abstract Classes . Managing Data Using Dictionary(Of TKey, TValue) . Working with LINQ . Making LINQ Queries . Enumerating LINQ Query Results . Working with Anonymous Types . Using Extension Methods with LINQ
Building GUIs with Windows Forms Accessing Databases Using ADO.NET
. Overview of Windows Forms . Understanding the ADO.NET Object Model . Designing Forms . Opening Connections . Working with Controls . Executing Queries Using Commands . Using Labels and Textboxes . Iterating Through Results Using DataReaders 107
. Using Buttons . Calling Stored Procedures . Using Checkboxes and Radio Buttons . Passing Parameters to Stored Procedures . Using Menus . Working with DataSets . Using list Controls . Binding Data to Controls . Handling Events
Exception Handling Working with Files, Directories and Streams
. Understanding Exception Handling . Using the System.IO Namespace . Using Try/Catch to Handle Exceptions . Discovering Drives . Working with the Exception Class . Working with Directories . Understanding Exception Propagation . Working with Files . Using Finally to Manage Cleanup Processing . Parsing a File Path . Throwing Exceptions . Understanding Streams . Working with FileStream . Reading and Writing Text Files . Understanding other Types of Streams
Working with Strings Building N-Tier Applications
. Working with the String Class . Building Large Scale Applications . Working with String Literals and Escape . Designing N-Tier Applications Sequences . Building .NET Assemblies . Understanding String Manipulation Performance . Referencing Assemblies Issues . Working with the StringBuilder Class . Formatting Output with String.Format
108
Linux System Administration
Duration: 35 hours
Price: $900
Prerequisites: Experience with common UNIX/Linux user-level commands, such as for moving, copying and editing files. Experience with the vi editor is a plus. Attendance at the UNIX/Linux Fundamentals course provides a solid foundation.
Description: Students learn how to install, configure and maintain an Enterprise Linux system in a networked environment. Basic administrative tasks are covered such as: creating and managing users, creating and maintaining file systems, determining and implementing security measures and performing software installation and package management. Linux networking topics include installing and supporting SSH, NFS, Samba and the Apache Web server. Common security issues are discussed and several software tools are introduced such as the PAM modules that help secure the operating system and network environment. Comprehensive hands on exercises are performed throughout the course to reinforce learning and develop skills and competency. Upon successful completion of this course, students will be prepared to maintain Linux systems in a networked business environment.
Although the course includes installing and configuring a CentOS 7 / RHEL 7 Linux system, much of the course content also applies to Oracle, Ubuntu, Scientific and other current versions of mainstream Linux distributions. Labs include user and group maintenance, system backups and restoration, software management, administration tasks automation, file system creation and maintenance, managing remote access, working with cron, and configuring basic file sharing and Web services, as well as working with system logging utilities such as rsyslog and much more.
Course Overview
System Administration Overview Installation and Configuration
. UNIX, Linux and Open Source . Planning: Hardware and Software Considerations . Duties of the System Administrator . Site Planning . Superusers and the Root Login . Installation Methods and Types . Sharing Superuser Privileges with Others (su and . Installation Classes sudo Commands) . Partitions . TCP/IP Networking Fundamentals . Logical Volume Manager - LVM . Online Help . File System Overview . Swap Partition Considerations . Other Partition Considerations . The Linux Boot Loader: grub . Software Package Selection . Adding and Configuring Peripherals 109
. Printers . Graphics Controllers . Basic Networking Configuration . Booting to Recovery Mode
Booting and Shutting Down Linux Managing Software and Devices
. Boot Sequence . Identifying Software Packages . The systemd Daemon . Using rpm to Manage Software . The systemctl Command . Using yum to Manage Software . Targets vs. Run Levels . Installing and Removing Software . Modifying a Target . Identifying Devices . Service Unit Scripts . Displaying Device and System Information (PCI, . Changing System States USB) . Booting into Rescue Mode . Plug and Play Devices . Shutdown Commands . Device Configuration Tools
Managing Users and Groups The Linux File System
. Setting Policies . Filesystem Types . User File Management . Conventional Directory Structure . The /etc/passwd file . Mounting a File System . The /etc/shadow file . The /etc/fstab File . The /etc/group file . Special Files (Device Files) . The /etc/gshadow file . Inodes . Adding Users . Hard File Links . Modifying User Accounts . Soft File Links . Deleting User Accounts . Creating New File Systems with mkfs . Working with Groups . The lost+found Directory . Setting User Environments . Repairing File Systems with fsck . Login Configuration Files . The Journaling Attribute . File and Disk Management Tools
Linux File Security Controlling Processes
. File Permissions . Characteristics of Processes . Directory Permissions . Parent-Child Relationship . Octal Representation . Examining Running Processes . Changing Permissions . Background Processes . Setting Default Permissions . Controlling Processes . Access Control Lists (ACLs) . Signaling Processes . The getfacl and setfacl commands . Killing Processes . SUID Bit . Automating Processes . SGID Bit . cron and crontab . The Sticky Bit . at and batch
110
. System Processes (Daemons)
Working with the Linux Kernel Shell Scripting Overview
. Linux Kernel Components . Shell Script Fundamentals . Types of Kernels . Bash Shell Syntax Overview . Kernel Configuration Options . Shell Script Examples . Recompiling the Kernel
System Backups Troubleshooting the System
. Backup Concepts and Strategies . Common Problems and Symptoms . User Backups with the tar Command . Troubleshooting Steps . System Backup Options . Repairing General Boot Problems . The xfsdump and xfsrestore Commands . Repairing the GRUB 2 Boot Loader . Hard Drive Problems . Restoring Shared Libraries . System Logs and rsyslogd
Basic Networking LAMP Server Basics
. Networking Services Overview . LAMP Overview . NetworkManager Introduction . Configuring the Apache Web Server . Network Configuration Files Locations and . Common Directives Formats . Apache Virtual Hosting . Enabling and Restarting Network Services with . Configuring an Open Source Database systemtcl . MySQL . Configuring Basic Networking Manually . MariaDB . Configuring Basic Networking with . PHP Basics NetworkManager . Perl CGI Scripting
Introduction to System Security The Samba File Sharing Facility
. Security Overview . Configure Samba for Linux to Linux/UNIX File . Maintaining System Security Sharing . Server Access . Configure Samba for Linux to Windows File . Physical Security Sharing . Network Security . Use the smbclient Utility to Transfer Files . Security Tools . Mount/Connect Samba Shares to Linux and . Port Probing with nmap Windows Clients . Intrusion Detection and Prevention . PAM Security Modules . Scanning the System . Maintaining File Integrity . Using Firewalls
111
. Introduction to firewalld
Networked File Systems (NFS)
. Using NFS to Access Remote File Systems . Configuring the NFS Server . Configuring the NFS Client . Exporting File Systems from the NFS Server to the NFS Client
112
Microsoft SQL Server 2017 Administration
Duration: 35 hours
Price: $900
Prerequisites: Familiarity with database concepts, Windows desktop navigation and Transact-SQL. Attendance at the SQL Programming course or Microsoft Transact-SQL Programming course is highly recommended although not required.
Description: This hands-on course provides students with the knowledge and skills to administer a SQL Server 2017 database infrastructure. Students will learn how to install, configure, manage, secure, automate, monitor, and optimize SQL Server 2017. Students will also learn how to create, manage, back up, and restore individual databases, transfer and replicate data, configure for high availability, and plan disaster recovery.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Installation and Configuration Authenticating and Authorizing Users
. Installing Multiple Instances of SQL Server 2017 . Authenticating Connections to SQL Server . Applying a Service Pack . Authorizing Logins to Access Databases . Creating Aliases . Authorization Across Servers . Setting up a Central Management Server . Partially Contained Databases
Assigning Server and Database Roles Authorizing Users to Access Resources
. Working with Server Roles . Authorizing User Access to Objects . Working with Fixed Database Roles . Authorizing Users to Execute Code . Creating User-Defined Database Roles . Configuring Permissions at the Schema Level
Protecting Data with Encryption and Auditing SQL Server Recovery Models
. Options for Auditing Data Access in SQL Server . Backup Strategies . Implementing SQL Server Audit . Understanding SQL Server Transaction Logging . Managing SQL Server Audit . Planning a SQL Server Backup Strategy . Protecting Data with Encryption
Backup of SQL Server Databases Restoring SQL Server Databases
113
. Backing up Databases and Transaction Logs . Understanding the Restore Process . Managing Database Backups . Restoring Databases . Working with Backup Options . Working with Point-in-time Recovery . Restoring System Databases and Individual Files
Tracing Access to SQL Server Monitoring SQL Server
. Capturing Activity Using SQL Server profiler . Monitoring Activity . Improving Performance with the Database Engine . Capturing and Managing Performance Data Tuning Advisor . Analyzing Collected Performance Data . Working with Tracing Options
Troubleshooting SQL Server Importing and Exporting Data
. Resolving Service Related Issues . Transferring Data to/from SQL Server . Resolving Login and Connectivity Issues . Importing and Exporting Table Data . Troubleshooting Common Issues . Using BCP and BULK INSERT to Import Data
Maintaining High Availability of Data
. Windows Clustering . AlwaysOn Availability Groups . Implementing AlwaysOn . Implementing Log Shipping
114
Microsoft Transact-SQL Programming
Duration: 35 hours
Price: $900
Prerequisites: General computer knowledge.
Description: This Transact-SQL programming course teaches students relational database fundamentals and SQL programming skills in the Microsoft SQL Server environment. Topics covered include relational database architecture, database design techniques, and simple and complex query skills. The course also covers Microsoft-specific T-SQL programming constructs, creation and use of stored procedures and user- defined functions, use of cursors and updateable views.
This class is intended for analysts, developers, designers, administrators, and managers new to the SQL programming language. Upon completion, participants will understand SQL functions, join techniques, database objects and constraints, and will be able to write useful stored procedures and views as well as complex queries and updates. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Relational Database Fundamentals Writing Basic SQL Queries
. Overview of Relational Database Concepts . Displaying Table Structures . Relational Databases and Relational Database . Retrieving Column Data From a Table or View Management Systems . Selecting Unique Values . Data Normalization . Filtering Rows Using the WHERE Clause . DDL Syntax . Sorting Results Using ORDER BY . Joining Multiple Tables . Using Column and Table Aliases
Creating a Database Manipulating Query Results
. Database Development Methodology Overview . Using Row Functions . Building a Logical Data Model . Character . Identifying Entities and Attributes . Numeric . Isolating Keys . Date and Time . Relationships Between Entities . Data Conversion (CAST and CONVERT) . Creating Entity-Relationship Diagrams . Using the CASE Function . Transforming to Physical Design . Handling Null Values . Migrating Entities to Tables . Selecting Primary Keys
115
. Defining Columns . Enforcing Relationships with Foreign Keys . Constructing the Database Using DDL . Creating Tables, Indexes, Constraints and Views . Dropping Tables, Indexes, Constraints and Views . Modifying Tables, Indexes, Constraints and Views
Advanced Query Techniques Manipulating Table Data Using SQL's Data Manipulation Language (DML) . Inner Joins . Outer Joins (Left, Right, Full) . Inserting Data into Tables . Performing Self-Joins . Updating Existing Data . Subqueries . Deleting Records . Simple . Truncating Tables . Correlated . Performing Bulk Inserts . Using the EXISTS Operator . Using the OUTPUT Clause . Tips for Developing Complex SQL Queries . Merging Data . Using Aggregate Functions . Working with Identity Columns and Sequences . AVG . COUNT . SUM . MIN . MAX . Performing Set Operations . UNION . INTERSECT . EXCEPT/MINUS . Aggregating Results Using GROUP BY . Restricting Groups with the HAVING Clause . Creating Temporary Tables
User-Defined Functions Stored Procedures
. Definition and Benefits of Use . Definition and Benefits of Use . CREATE FUNCTION . CREATE PROCEDURE . Syntax . Syntax . RETURN Clause and the RETURNS . Defining Input Parameters Statement . Defining Output Parameters . Scalar vs. Table Functions . Defining Optional Parameters . Comparison with Stored Procedures . ALTER and DROP PROCEDURE . Returning Scalar Values and Tables . Implementation Differences
116
. ALTER and DROP FUNCTION
Triggers Complex Queries
. Definition and Benefits of Use . Using Wildcard Characters with Like . Alternatives (e.g., Constraints) . Allowing Users to Build SQL Queries Dynamically . CREATE TRIGGER . Pivoting Data . Syntax . Summarizing Data with ROLLUP and CUBE . Trigger Types . Using Partitioned Aggregates . "Inserted" (or "NEW") and "Deleted" (or "OLD") Tables . Event Handling and Trigger Execution . ALTER and DROP TRIGGER
T-SQL Code Constructs Working with Data Types and Functions
. Exploiting the Programming Features of T-SQL . Effective Use of Data Types in SQL . Conditional Constructs . String . Looping Constructs . Numeric . Building Multi-Batch Scripts . Time/Date . Invoking System Functions . Other . Using Variables in Scripts . Substitution of Non-null Values with the . Using Temporary Tables in Scripts COALESCE and ISNULL Functions . Handling Errors . Analyzing Data Points Using Ranking Functions . Using TRY...CATCH Blocks . Using System Variables and Functions
Using T-SQL Cursors Working with Table Expressions
. Overview of Cursors . Overview of Table Expressions . Declaring a Cursor . Working with Views . Using OPEN CURSOR, CLOSE CURSOR, . Using Derived Tables DEALLOCATE CURSOR Statements . Common Table Expressions . FETCHing Results . Table-Valued Functions . Testing @@FETCH_STATUS and @@CURSOR_ROWS . Updating Records with Cursors
117
Node.js Application Development
Duration: 28 hours
Price: $900
Prerequisites: Knowledge of JavaScript equivalent to attending the JavaScript Programming course. Attendees should also have familiarity with a Windows, Linux, or OS X command line interface as well as a basic understanding of network protocols such as HTTP.
Description: This hands on Node.js course will teach front end designers and server side developers how to rapidly create, maintain, and deploy Node.js applications. This course includes thorough coverage of the Node.js architecture, the V8 engine and the Node Ecosystem. The course takes a practical approach to creating and organizing Node.js applications using functions and modules as part of the Node.js organizational structure. This course will provide attendees with a comprehensive understanding of Node.js core modules and how to procure and install packages using npm. Attendees will learn to identify and correct problems through unit testing and exception handling.
Attendees will learn how to use Node.js to create Command Line Interface applications for system administration and process management, use Node.js networking modules to communicate with TCP/IP clients and servers such as HTTP servers, and create / consume REST (Representational State Transfer) data services. Attendees will learn how to leverage frameworks such as Express to rapidly build Web Applications. Attendees will learn how to use Node.js to connect to NoSQL databases such as MongoDB to store, retrieve, and manipulate data (i.e., achieve data persistence).
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
About Node.js Node.js Global Environment
. Server Side JavaScript . Timers . The Event Loop . Global Objects . Asynchronous Execution . The process Object . npm . Buffers and Buffer Manipulation . Node.js Architecture . Node.js Core Modules . Node.js Projects and Applications . Node.js Command Line Arguments
ES6 Enhancements Installation and Configuration
118
. Arrow Functions . Node.js . let and const Keywords . npm . Enhanced Object Literals . Express . Map and Set Collections . MongoDB . WeakMap and WeakSet Collections . Mongoose . String Template Literals
Programming Fundamentals with Node Unit Testing and Debugging with Node.js
. Using Modules to Organize Code . Implementing Unit Tests with the Assert Module . Creating and Reusing Code with Modules . Test Driven Development with Nodeunit . Asynchronous Programming Fundamentals . Behavioral Testing with Mocha . Using Callbacks to Handle Events . Facilitating Debugging with the Console Module . Using EventEmitters to Handle Repeating Events . Working with the Node.js Debug Utility . Type Testing with the util Module . The Node.js Module Loading System . Module Caching
System and Data Interaction With Node Data Persistence with Node.js
. Interacting with the System Using the os Module . Data Persistence Mechanisms . Working with the File System Using the fs and . MongoDB Capabilities path Modules . Connecting to MongoDB . Managing Data Flow with Pipes and Streams . Using the fs Module to Read and Write Files . Synchronous vs. Asynchronous File System Synchronously and Asynchronously Interaction . Using Buffers to Read and Manipulate Binary Data . Handling and Transforming File Path Information with the path Module . Spawning and Managing Processes using the process Module
Web Application and Network Programming Process Management with the process Module
. Using Express to Rapidly Build and Deploy Web . Executing External Applications Applications . Attaching and Detaching Child Processes . REST-Based Web Service Fundamentals . Facilitating Inter-Process Communication between . Creating HTTP Servers and Clients Using the http Node.js Processes Module . Making Node.js Applications Executable . Sending HTTP Requests and Receiving HTTP Responses . Making DNS Requests with the dns Module
119
. Creating TCP Clients and Servers with the net Module
Creating Modules
. Planning Modules . Working with the package.json File . Working with Dependencies . Understanding Semantic Versioning . Testing Modules
120
Object Oriented Analysis & Design with UML
Duration: 28 hours
Price: $900
Prerequisites: Knowledge of structured programming concepts.
Description: This OOA&D training course presents the key concepts and methodologies required to perform quality object-oriented software engineering, with particular attention to practical techniques such as use-case and CRC analysis, UML diagramming, and patterns. Students practice applying object oriented analysis during the course to improve software designs and to see how software objects can be altered to build software systems that are more robust and less expensive. Students use several methods for analyzing software systems, finding and refining useful classes and relationships between objects. Care is taken not to focus on any one language so that all students can participate in the design exercises without relying on specific programming skills. The course emphasizes the most practical analysis and design methods, including the application of use case analysis, CRC analysis, problem domain analysis, activity diagramming, interaction diagramming, and class diagramming. The Unified Modeling Language (UML) is presented in detail and is used in the exercises and case studies. Practical aspects of project management and implementation are presented from the perspective of experienced object system designers. Special emphasis is given to the use of object patterns in developing software systems. The students apply their skills in labs that are mini design sessions, during which the instructor helps the students identify and overcome common obstacles that occur during group sessions.
Course Overview
The Object Paradigm Managing and Participating in the OOA&D Approach
. Objects and Classes . Information Gathering Techniques . Abstraction and Encapsulation . Group Orientated Problem Solving . Methods and Messages . Brainstorming, Role-Playing . Interfaces, Inheritance, and Polymorphism . Managing Complexity via the "Iterative and . Access Control Incremental" Approach . The Business Case for OO Development . Managing Design Sessions . Design vs. Implementation . Quick Prototyping . Validation and Quality
Diagramming & Notational Techniques Using the UML Requirements and Analysis Phase
. Overview of Analysis and Design Phases . System Functions, Features and Constraints . UML Notation . Behavioral Analysis . Analysis Diagramming Techniques . Domain Analysis 121
. Design Diagramming Techniques . Identifying Use Cases . Generalization/Specialization . Use Case Descriptions . Aggregation and Composition . Using CRC Cards . Association, Cardinality, Navigability . Containment and Composition . Package and Deployment Diagrams . Referential Aggregation . Icons, Relationships, and Adornments . Inheritance, SubTypes and Is-A Hierarchies . Association and Link Relationships . Diagramming System Events . State Transition Diagramming
Design Phase Patterns
. Translating Analysis Concepts into Software . Benefits of Patterns Classes . Using Patterns During Analysis . Optimizing Classes and Objects: The Multi-Tiered . Using Patterns During Design Architecture View . Design Patterns (Gang-of-Four Format) . Mapping System Functions to Objects . GRASP Patterns . Object to Object Visibility . Model-View-Controller Pattern . Collaboration Diagrams . Persistence Patterns . Sequence Diagrams . Patterns as Internal Documentation . Specifying Object Interfaces . Specification Class Diagrams
Design Refinement Project Management and Implementation Issues
. Designing for Extensibility . Planning for Reusability . Designing for Reusability . Transition Strategies and Planning Legacy System . Partitioning the Class Space Integration . Checking Completeness and Correctness . Managing the Development Cycle . Testing Business Processes . Partitioning Work . Design Metrics . Source Code Organization . Discovering Reusable Patterns . Choosing Tools and Languages . Software Quality Metrics
OO Languages and Tools Advanced Design Concepts
. Survey of OO Languages . Expanding Inheritance Hierarchies . The Role of Class Libraries . Abstract Classes and Virtual Methods . The Role of OOA&D Tools . Overriding and Overloading . Multiple Inheritance . Interface versus Implementation Inheritance
Persistent Object and Database Issues
. The Coad Data Management Domain . Object Persistence 122
. Object-Orientated Database Management Systems (ODBMS) . Object Orientated versus Relational Databases . Mapping Objects to Relational Data Structures
123
Perl Scripting
Duration: 28 hours
Price: $900
Prerequisites: Prior scripting experience or knowledge of fundamental programming concepts.
Description: This hands-on Perl Programming course presents a thorough introduction to the Perl scripting language emphasizing the rapid development of portable and modular Perl programs and scripts. Students are introduced to all major language elements including built-in data types, powerful operators, flow control and robust built-in functions. The course also covers the use of command line processing, file and directory I/O to create flexible and user friendly programs. Attendees will also be introduced to object- oriented programming in Perl as well as how to use pattern matching with Regular Expressions and string handling functions to manipulate files and data. Students will learn to create reusable code using subroutines, modules, and Perl's object-oriented architecture to deploy business logic across many programs and scripts to enhance maintainability and scalability.
Students will also learn to use the DBI Perl module to write programs that provide a consistent database interface independent of the actual database being used. Comprehensive hands on exercises will be completed throughout the course to reinforce key concepts and practice debugging techniques. Students are shown how to extend Perl's basic functionality with packages and loadable modules.
Course Overview
Introduction to Perl Getting Started With Perl
. Origin and Design Goals of Perl . Explicit Invocation of the Perl Interpreter . Overview of Perl Features . Running Perl on UNIX vs. Windows . Getting and Installing Perl . Running Perl from the Command Line . Accessing Documentation via perldoc . Using Command Line Options . HTML-Format Reference Documentation . Using Debug Mode . Perl Strengths and Limitations . Implicit Invocation of the Perl Interpreter . Running and Debugging Perl Scripts . Simple and Compound Statements . Fundamental Input Techniques . Using the print Function to Generate Standard Output
Using Variables Pattern Matching in Perl
. Scalar Variables . Regular Expressions in Perl . Introduction to Standard Data Types . Using Pattern Matching Operators
124
. Retrieving Standard Input Using the Default . Altering Data with Substitutions in Regular Variable $_ Expressions . Reserved Scalar Variables . Using Backreferences to Capture Data from . Assigning Strings and Numbers to Scalar Variables Regular Expression Matching . Declaring Constants for Persistent Values . Global and Case-Insensitive Matches . Using strict to Declare Variables . Altering Data with Character Translation . Using Variables in Patterns
Operators String Manipulation
. Introduction to Fundamental Operators . String Comparison . Operator Precedence and Associativity . String Relations . Using the Ternary Operator ?: as a Shortcut for . Concatenation the if Statement . Substring Manipulation . Using
Flow Control: Conditional Statements and Looping Subroutines and Parameters
. Conditional Expressions and Logical Operators . Simplifying Scripts with Subroutines . if/else/elsif and unless . Defining and Calling a Subroutine . Constructing switch/case Equivalent Expressions . Passing Arguments by Value . while Loops and do Loops . Passing Arguments by Reference . for and foreach Loops . Using return to Return a Value . Labels . Controlling Variable Scope using my and local . Altering Program Flow with next, last, and redo Keywords . Trapping Errors with the eval Function . Terminating a Script with exit
Arrays and Hashes Packages and Modules
. Defining Numeric Index Arrays . The Power of Packages and Modules . Defining Associative Arrays . Introduction to Standard Modules . Sorting Arrays with the sort Function . Where to Find Modules on the Internet . Adding and Deleting Items Using push, pop, . Installing a Module on UNIX or Windows shift, and unshift . Creating Packages for Portability . Using slice, splice, and reverse . Using Packages to Create Isolated Namespaces . Other Array Manipulation Techniques and to Separate Code . Looping through an Array . Creating Modules . Merging Arrays . Creating and Using Symbols in a Module . Associative Array Manipulation Functions . Using the Exporter to Export Symbols from a Perl . Introduction to Hashes Module
125
. Preallocating Memory to Optimize Hash Performance
File and Directory I/O Input/Output Processing
. Using open and close . Parsing Input . File Open Modes . Using Standard Input, Standard Output, and . Reading Files into Arrays Standard Error . Retrieving File Metadata . String and Field Processing . Built-in File Management Functions . Using Streams and Pipes . Using print and write . Using die to Quit with an Error . File Test Operators . Redirecting Standard Output and Standard Error . Directory Manipulation Using opendir, closedir, to a File readdir, chdir, mkdir and rmdir . Getting Standard Input from a File
Implementing Command Line Arguments Perl Report Formatting
. Reading Command Line Arguments from . Defining Report Formats @ARGV . Justifying Text (Left, Right, Center) . Read Files Explicitly with
Debugging In Perl References
. Using the Built-in Perl Debugger . Life Cycle of a Reference . Starting the Debugger . Hard References and Anonymous References . Debugger Command Syntax . Use of References to Create Complex Data . Checking for Script Syntax Errors Structures . Solving Compile-Time Errors . Creating Hard and Anonymous References . Single-Stepping through a Script . Modifying References . Executing to Breakpoints . Dereferencing a Reference . Setting Global Watches . The Arrow Operator -> . Printing Values of Variables . Building Complex Data Structures with Multi- . Listing All Variables Used in the Script Dimensional Arrays and Hashes . Using Strict Error Checking 126
. Quitting the Debugger
Accessing a Database Using Perl DBI Perl Object Oriented Programming
. Database Access Life Cycle . Object Oriented Programming Concepts . Using DBI and DBD to Connect to a Database . Object Oriented Programming Terminology . Fundamental Data Storage and Retrieval . How Perl Implements Object Oriented Strategies Programming . DBI Query Syntax . Modeling Software Objects Using Classes and . Using DBI Methods to Retrieve Database Base Classes Information . Creating Classes, Objects, Methods and Attributes . Preparing Queries to be Executed . Writing Constructors to Initialize of Objects . Creating Parameterized Queries . Using bless to Turn References into Objects . Executing Queries Using execute and do . Creating Class Hierarchies through Inheritance . Fetching the Result Set to Achieve Workable Data in the Perl Script . Extracting Data Using an Array . Extracting Data Using a Hash . Useful Utilities to Aid in Database Development . Using Other Modules to Access Databases on the Web . Extracting Data Using a Hash . Displaying Results from Queries in a Report . Releasing Database Resources
127
PHP Programming
Duration: 28 hours
Price: $900
Prerequisites: Basic computer skills and knowledge of HTML fundamentals equivalent to attending the Website Development with HTML5, CSS and Bootstrap course. Prior programming experience is helpful but not required.
Description: This hands on PHP Programming course provides the knowledge necessary to design and develop dynamic, database-driven Web pages using PHP 7. PHP is a language written for the Web, quick to learn, easy to deploy and provides substantial functionality required for e-commerce. This course introduces the PHP framework and syntax and covers in depth the most important techniques used to build dynamic Web sites. Students learn how to connect to any modern database, and perform hands on practice with a MySQL database to create database-driven HTML forms and reports.
E-commerce skills including user authentication, data validation, dynamic data updates, and shopping cart implementation are covered in detail. Course elements include implementing RESTful servers for newer more data driven sites. Students also learn how to configure PHP and the Apache Web Server.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Overview Of PHP Basic Scripting and Looping Constructs
. Static vs. Dynamic Web Sites . PHP Scripting Fundamentals . Dynamic Content from Databases . Print Statement . Developing Dynamic Internet Applications . Code Blocks . Client-Side Scripting vs. Server-Side Scripting . Primitive Data Types . Overview of PHP Advantages and Capabilities . Defining Constants and Variables . Configuring php.ini . Looping Constructs . PHP vs. ASP . while . do… while . for . exit and break
Conditional Constructs Introduction to the Windows IIS Server or Apache Web Server . True and False Expressions . if, else and elseif . Server Configuration Files 128
. switch/case Statement . Configuring IIS or Apache for PHP . The ?: (Ternary) Operator . WWW Sites within IIS or Apache . Timestamps . Apache Virtual Hosts . IIS Virtual Directories . Website Properties
Modularity through Include Files PHP Operators
. Using Include Files . Logical Operators . The Require Statement . Relational Operators . Modularizing Code with Functions . Bitwise Operators . Defining and Using Basic Functions . Other Operators . PHP7 Null Coalescing operator . PHP7 Spaceship Operator
PHP Functions Working with Databases and Forms
. Introduction to Functions . Configuring PHP For Database Support . Declaring Functions . PHP's Database APIs . Scope . PHP's SQL API . Passing Arguments to Functions . MySQL vs. MariaDB . Local and Global Scope . Database Drivers . Passing Arguments to Functions by Value and . Database Driver Class Wrappers Reference . ODBC . Variable Scoping and Return Values . Simple SQL Queries via PHP . Recursion . Tracking Visitors with Session IDs . Coercive and Strict Type Declarations for . Populating Forms Parameters and Return Values . Retrieving Data from Forms . Optional and Rest Parameters . Argument Unpacking . Generator Return Expressions . Anonymous Functions . Iterator Functions . Dynamic Function Calls . Predefined PHP Functions
PHP 7 New Features Arrays in PHP
. Function Improvements . What are Arrays? . New Operators . Usage of Arrays in PHP . Multibyte Strings . Array Indexing . Data Typing . Initializing Arrays . Operating on Arrays . Sorting Arrays . One-Dimensional Arrays . Multi-Dimensional Arrays
129
. Associative Arrays . Array Functions . Forms and Arrays in Web Applications
Basic OOP in PHP Writing OOP PHP
. Defining Object Oriented Programming . Implementing New Classes . Creating New Objects in PHP . Extending Classes . PHP Object Syntax . Understanding Private, Public and Protected . Using Predefined PHP OOP Libraries . Inheriting Methods and Properties . Overriding Methods and Properties
Working with Data Files in PHP Enabling E-Commerce
. Searching File Contents with Regular Expressions . Required Characteristics of an E-Commerce Site . Changing and Editing File Contents . Authentication and Authorization . Splitting and Joining Information Inside Files . Data Validation . String Functions . Building a Custom Shopping Cart . Multibyte String Functions . Persisting Shopping Cart Data Over Multiple . Regular Expression Functions Pages . Reading, Writing and Deleting Files . Criteria for Evaluating Third Party Shopping Cart . Handling File Permissions Solutions . File Locking . Open Source vs. Commercial Shopping Cart . Reading Directory Contents Solutions . Creating and Deleting Directories . Order Processing via the Web . Implementing Order System Security using SSL . Using Mail Servers (SMTP and Sendmail) for Client Communication . Configuring E-mail Output Parameters
Configuring and Using MySQL Using Cookies with PHP
. MySQL as a Client/Server Solution . Purpose of Cookies . Introduction to MySQL Capabilities as a Powerful . Cookie Myths RDBMS . Setting Cookies . Installing and Configuring MySQL . Retrieving Cookies . Connecting to MySQL . Expiring Cookies . PHP Functions Specific to MySQL . Deleting Cookies . Executing SQL Calls . Storing Arrays in Cookies . SELECT . INSERT . UPDATE . DELETE . Fetching Results of SELECT statements . Using PHP MyAdmin to Configure MySQL
130
Miscellaneous PHP Tasks Implementing RESTful Servers with PHP
. Error Logging . Understanding RESTful Servers . Session Management and Maintaining State . Benefits of PHP for Implementing RESTful Servers . Web Application Architecture . Using HTTP Verbs to Access Data . Using Environment Variables . Understanding RESTful URIs . Changing Execution by Redirecting to Other URLs . Defining PHP Objects to Access RESTful URIs . Embedding JavaScript within PHP . Effective Use of OOP Inheritance . Using the HTTP Protocols to Pass Data . Implementing a RESTful Server in PHP for a Small . Getting IP Addresses from Visitors Application
131
Python Programming
Duration: 28 hours
Price: $950 (If taken for the 1-course Python Programmer certificate), $900 (If taken as a requisite course for any other certificate)
Prerequisites: Prior scripting experience or knowledge of fundamental programming concepts.
Description: This hands on Python programming course shows how to rapidly develop and maintain effective Python programs. The course includes thorough coverage of Python syntax, built in data types and control constructs. The course takes a practical approach to creating and organizing Python programs using functions, packages, modules and classes as part of Python's object-oriented paradigm. Attendees will use regular expressions to rapidly process data captured from users and from the file system.
Attendees will learn how to use Python to create scripts that manipulate data, automate tasks, perform error handling and store and retrieve data by using relational databases. Students will be able to create Python scripts that assist with system administration.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Introduction to Python 3 Using Python
. Origin and Goals of Python . Executing Python Programs from the Command . Overview of Python Features Line . Getting and Installing Python . Python Command Line Options . Accessing Python Documentation: Python . Environment Variables that Influence Python Enhancement Proposals (PEP) . Creating Python GUI Applications . Python's Strengths . Standalone vs. Web-Enabled Interfaces . Using Python with Other Programming Languages . The Python Standard Library
Language Fundamentals Flow Control Constructs
. Python's Lexical Analyzer . if/elif/else Statements . Using Whitespace to Structure Programs . Creating Loops with while and for . Identifiers and Keywords . Understanding Iterators . Python's Execution Model . Returning Values with return Statements . Naming Objects and Binding . Loop Modification with break and continue . Python's Data Model . Returning Generator Iterators with the yield . Immutable and Mutable Objects Statement 132
. Values . Retrieving Iterators with next() . Types . Creating and Using Variables
Expressions Exception Handling
. Unary and Binary Arithmetic Operations . Types of Python Exceptions . Comparison and Boolean Operations . Handling Exceptions with try/except/finally . Conditional Expressions . Triggering Exceptions with raise . Lambda Expressions . Defining New Exception Types . Order of Operations and Operator Evaluation . Implementing Exception Handling in Functions, . Expression Lists Methods and Classes . Assignment Operations . Working with the Regular Expression Error Exception
Using the String Object Organizing Code
. Using ASCII and Unicode Strings . Defining Functions . Manipulating Strings with String Methods . Calling Functions . Using the format() Function to Format Strings . Creating Anonymous Functions . Using Escape Sequences . Altering Function Functionality with Decorator . Working with Raw Strings Functions . Creating Classes with the class Statement . Creating Objects as Class Instances . Using Preexisting Classes as the Basis of a New Class . Using Modules to Group Related Functions, Classes and Variables . Locating and Importing Modules . Using Packages to Group Modules Together
Arrays, Collections and Dictionaries Working with Arguments
. Sequenced Data Structures . Passing Arguments to Functions by Reference and . Arrays by Value . Collections . Defining Functions with Required Arguments . Dictionaries . Defining Functions with Default Arguments . Creating and Accessing Lists . Defining Flexible Functions that Take Variable . Manipulating Lists Length Arguments . Creating and Accessing Tuples . Understanding the Differences Between Lists and Regular Expressions Tuples . Using Dictionaries to Create Data Records . Regular Expression Syntax . Manipulating Dictionaries Using Dictionary . Using Regular Expressions in Python Methods . Altering Regular Expression Processing with . Creating Sets Regular Expression Modifiers 133
. Performing Set Operations . Using Regular Expression Operators . Union . Scanning Through Strings Using the search() and . Intersect match() Methods . Difference . Creating Reusable Patterns by Using the . Differences Between Sets and Dictionaries compile() Method . Using Generators to Return Iterators
Object Oriented Programming Concepts I/O Handling
. The Object Oriented Programming Paradigm . Sending Output to STDOUT Using the print() . Encapsulating Information Method . Classes vs. Instances of Objects . Reading Input with the input() Method . Built-in Class Attributes . Creating File Objects with the open() Method . Implementing Class Inheritance . Controlling File Access Modes . Using Objects in Code . Working with File Object Attributes . Closing File Objects with the close() Method . Reading and Writing to File Objects with read() and write() . Using File Processing Functions from the OS Module
Data Management
. Embedding SQLite Databases in Applications . Best Practices for Data Management . Storing Data in Local Databases . Discussing and Understanding the DB API . Understanding and Using Common SQL Statements . Connecting to a SQLite Database . Using Cursors to interact with Data from a Database . Implementing Error Handling with Database Connections
134
SQL Programming
Duration: 21 hours
Price: $950 (If taken for the 1-course SQL Programmer certificate), $900 (If taken as a requisite course for any other certificate)
Prerequisites: General computer knowledge.
Description: This SQL programming course teaches students relational database fundamentals and SQL programming skills. Topics covered include relational database architecture, database design techniques, and simple and complex query skills. This class is intended for analysts, developers, designers, administrators, and managers new to the SQL programming language. Upon completion, participants will understand SQL functions, join techniques, database objects and constraints, and will be able to write useful SELECT, INSERT, UPDATE and DELETE statements. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Relational Database Fundamentals Writing Basic SQL Queries
. Overview of Relational Database Concepts . Displaying Table Structures . Relational Databases and Relational Database . Retrieving Column Data From a Table or View Management Systems . Selecting Unique Values . Data Normalization . Filtering Rows Using the WHERE Clause . DDL Syntax . Sorting Results Using ORDER BY . Joining Multiple Tables . Using Column and Table Aliases
Creating a Database Manipulating Query Results
. Database Development Methodology Overview . Using Row Functions . Building a Logical Data Model . Character . Identifying Entities and Attributes . Numeric . Isolating Keys . Date and Time . Relationships Between Entities . Data Conversion (CAST and CONVERT) . Creating Entity-Relationship Diagrams . Using the CASE Function . Transforming to Physical Design . Handling Null Values . Migrating Entities to Tables . Selecting Primary Keys . Defining Columns . Enforcing Relationships with Foreign Keys . Constructing the Database Using DDL
135
. Creating Tables, Indexes, Constraints and Views . Dropping Tables, Indexes, Constraints and Views . Modifying Tables, Indexes, Constraints and Views
Advanced Query Techniques Manipulating Table Data Using SQL's Data Manipulation Language (DML) . Inner Joins . Outer Joins (Left, Right, Full) . Inserting Data into Tables . Performing Self-Joins . Updating Existing Data . Subqueries . Deleting Records . Simple . Truncating Tables . Correlated . Implementing Data Integrity with Transactions . Using the EXISTS Operator . Beginning Explicit Transactions . Tips for Developing Complex SQL Queries . Committing Transactions . Using Aggregate Functions . Rolling Back Transactions . AVG . COUNT . SUM . MIN . MAX . Performing Set Operations . UNION . INTERSECT . EXCEPT/MINUS . Aggregating Results Using GROUP BY . Restricting Groups with the HAVING Clause . Creating Temporary Tables
User-Defined Functions Stored Procedures
. Definition and Benefits of Use . Definition and Benefits of Use . CREATE FUNCTION . CREATE PROCEDURE . Syntax . Syntax . RETURN Clause and the RETURNS . Variables and Parameters Statement . Control of Program Flow . Scalar vs. Table Functions . ALTER and DROP PROCEDURE . Comparison with Stored Procedures . Implementation Differences . Returning Scalar Values and Tables . ALTER and DROP FUNCTION
Triggers Working with Table Expressions
136
. Definition and Benefits of Use . Overview of Table Expressions . Alternatives (e.g., Constraints) . Working with Views . CREATE TRIGGER . Using Derived Tables . Syntax . Common Table Expressions . Trigger Types . Table-Valued Functions . "Inserted" (or "NEW") and "Deleted" (or "OLD") Tables . Event Handling and Trigger Execution . ALTER and DROP TRIGGER
137
SQL Server 2017 Business Intelligence: Integration Services and Analysis Services
Duration: 35 hours
Price: $900
Prerequisites: Familiarity with database concepts, Windows desktop navigation and software installation techniques. Attendance at the SQL Programming course or Microsoft Transact-SQL Programming course is highly recommended although not required.
Description: SQL Server 2017 provides a rich environment for business intelligence development. The focus of this course is to familiarize developers with the use of SQL Server Engine, SQL Server Integration Services (SSIS) and SQL Server Analysis Services (SSAS). Students will create and populate data warehouses through ETL processing, and will build Multidimensional and Tabular models which will be used as reporting data sources.
Students will learn how to design and build data warehouses and marts using SQL Server Management Studio. In a series of exercises, students develop SSIS packages designed to maintain a data warehouse using the Data Flow control flow task. Also demonstrated are other control flow tasks that can interact with an NTFS file system, FTP server, execute Win32 processes, send emails, and run .NET scripts.
Based on the populated data warehouse they have created, students will then learn how to develop both Multidimensional and Tabular SSAS models using the languages Multidimensional Expressions (MDX) and Data Analysis Expressions (DAX). Cubes will be customized to include Key Performance Indicators (KPIs), Calculated Members, Named Sets, Navigational Hierarchies, and Perspectives.
Course Overview
Business Intelligence Framework Overview Integration Services Architecture
. SQL Server Data Tools Overview . Architecture of the SSIS Data Engine . Installation and Configuration . Using Data Transformation Tasks . Components of a BI Solution . Managing Connections to Sources and . Introduction to the BI Semantic Model Destinations . ADO.NET Data Source and Destination . Understanding Data Buffers . Control Flow Tasks and Containers
Common SSIS Tasks Data Transformations
. Executing SQL Statements . Converting Data Types
138
. Connecting to FTP Servers . Merging Data from Multiple Sources . Sending E-mail . Splitting Data to Multiple Destinations . Notifying Administrators of Errors . Counting Rows . Completing Bulk Inserts . Sampling and Sorting Records . Copying, Moving and Deleting Files and Folders . Copying Columns
Advanced SSIS Tasks Advanced Data Transformations
. Executing .NET Scripts and Win32 Processes . Filling in Missing Data with Lookups . Using the Windows Management Instrumentation . Locating Near Duplicate Rows with Fuzzy (WMI) Tasks Grouping . Performing Database Maintenance and Backups . Adding Audit Information to Results During SSIS Routines . Counting the Occurrence of Keywords . Using Variables and Input Parameters . Sending Rows that Process Correctly and . Profiling Database Tables Incorrectly to Different Destinations . Comparing XML Files Against Schemas . Responding to Truncation Errors
SSIS Administration and Automation Data Warehouse Design
. Deploying SSIS Projects . Understanding Fact and Dimension Tables . Manually Running SSIS Tasks . Modeling Slowly Changing and Rapidly Changing . Automating SSIS Package Execution Dimensions . Configuring Notifications for Execution Success, . Modeling Fact Tables Failure or Both . Using Star and Snowflake Schemas for Dimension . SSIS Security Tables . Troubleshooting Techniques . Implementing Surrogate Keys . Defining Business Keys
Creating and Populating Data Warehouses Creating and Managing Cubes
. Creating Data Warehouses (OLAP Databases) . Creating Data Sources to Connect to Data . Adding Fact Tables Warehouses . Adding Dimension Tables and Joining Them to . Using SSAS to Create Cubes Fact Tables . Applying Friendly Names to Measures and . Loading Data into Fact and Dimension Tables Attributes . Validation Techniques for Data Loads . Customizing Dimensions and Measures . Setting up Navigational Hierarchies . Optimizing Cubes with Attribute Relationships
Multidimensional (MDX) Essentials MDX Functions
. Using MDX Queries to Pull Data from Cubes . Using MDX Aggregate Functions . Understanding Tuples and Sets . Using Navigations Functions to Move Though . MDX Expressions vs. Queries Hierarchies . Grouping Attribute Values into Named Sets . Grouping, Filtering and Sorting Functions
139
. Adding Custom Calculations for Cubes Using MDX . Time-Based MDX Functions
Customizing Cubes Cube Deployment and Administration
. Adding Key Performance Indicators (KPIs) . Cube Storage Calculations . Customizing Dimensions and Attributes . Configuring Desired Aggregation . Adding Translations to Support Multiple . Configuring Caching Languages . Deploying and Processing Cubes . Adding Custom Calculations . Connecting to Cubes from Excel and Other Clients . Subdividing Cubes Using Perspectives . Partitioning and Processing Cubes . Backing Up and Restoring Options . Securing Cubes
Creating and Customizing Tabular Models Understanding the Data Mining Process
. Creating Tabular Modules in SSDT . Types of Business Analysis Supported by Data . Introducing DAX Mining . Customizing Tabular Models . Data Mining Process Explained . Refreshing Data in Tabular Models . Understanding the Key Components of Data Mining . Using Built-In Data Mining Algorithms . Matching Mining Algorithms to Business Needs
Working with Data Mining Structures Using the Semantic Models in the Presentation Layer
. Adding Data Mining Structures . Using SSAS Data Sources in Excel and Power View . Mining for Hidden Information . Using SSAS Data Sources in SSRS . Discovering Patterns in Data . Using SSAS Data Sources in Power BI . Creating Predictive Models . Using SSAS Data Sources in SharePoint . Using the Data Mining Wizard Performance Point Services . Modifying Mining Structures with the Data Mining Designer
140
SQL Server 2017 Reporting Services
Duration: 21 hours
Price: $900
Prerequisites: Familiarity with database concepts, Windows desktop navigation and software installation techniques. Attendance at the SQL Programming course or Microsoft Transact-SQL Programming course is highly recommended although not required.
Description: This course introduces Microsoft's SQL Server Reporting Services 2017 (SSRS) utility. All reports are developed utilizing SQL Server Data Tools (SSDT), however Report Designer will also be introduced. Students will complete hands-on exercises creating a number of reports including table-based, cross tabular and forms based designs. Reports utilizing charts, gauges, KPIs, data bars, spark lines and tree maps will be built. Exercises will incorporate the use of report parameters and features such as drill down, interactive sorting, hyperlinks, book marks and report maps. Data from relational, multi-dimensional and tabular data sources will be incorporated into report designs. Students will become familiar with report deployment to the new Reporting Service Web Portal and learn how to use portal the management tools to configure report caches, snapshots and subscriptions. Instruction and practice in designing report security to ensure protection of enterprise data will be provided. The student will gain experience with the new Report Services Web portal, which enables publishing content other than paginated reports, such as Excel and Power BI. Students will also learn how to include KPIs (Key Performance Indicators) directly from shared data sets.
Course Overview
Reporting Services Architecture Creating Basic Reports
. Defining Report Server Components . Creating Table Reports . Reviewing the Report Server Databases . Formatting Options . Managing the Report Server Web Portal . Adding Headers and Footers . Creating Mobile Reports and Dashboards . Using Subtotals and Formulas . Report Lifecycle Step by Step . Adding Charts and Gauges . Using Lists for Free-Form Reports . Paging and Sorting . Managing Data Sources . Adding Key Performance Indicators (KPIs)
Advanced Report Features Matrix Reports
. Setting Up Input Parameters . Pivoting Data with Matrix Controls . Adding Custom Report Navigation . Adding Multiple Data Regions 141
. Adding Drill-Down for Master-Detail Reports . Grouping and Sorting . Linking Reports . Adding Subtotals . Using Sub-Reports . Adding Custom Aggregate Formulas . Adding Conditional Formatting . Using the Tablix object
Implementing BI Semantic Model Report Designer
. Understanding Multi-Dimensional Models . Creating Reports with Report Designer . Using Tabular Models . Adding Charts and Gauges in Report Designer . Creating MDX Data Sources and Data Sets . Differences Between SQL Server Data Tools and Report Builder
Reporting Services Security Automating Report Creation and Delivery
. Organizing Reports in Folders . Creating Snapshot Reports . Setting Permissions on Reports and Folders . Storing Previous Versions of Reports . Managing Security Roles . Caching Reports to Improve Performance . Securing Data Sources and Report Models . Defining Subscriptions to Automate Report . Logging Activity on the Report Server Delivery . Rending Reports in Excel, MS Word or as a PDF . Hiding Reports from Users
Adding Custom Code .NET Integration with Reporting Services
. Querying the Report Server . Writing User-Defined Functions in .NET . Creating Custom Data Extensions . Using Custom Functions . Creating Command Objects . Referencing .NET Libraries . Creating Data Reader Objects . Managing Report Servers from .NET Applications . Generating Report Definition Language . Accessing SSRS from .NET Applications . Retrieving Report Items . Listing Report Metadata
142
Swift Programming for iPhone® and iPad® Applications
Duration: 35 hours
Price: $900
Prerequisites: Prior programming experience in an object-oriented language such as Objective-C, Java, C# or C++.
Description: In this hands on Swift 4 programming course, attendees will learn how to develop iPhone and iPad apps using Swift and Xcode. Students begin by learning the fundamentals of the Swift language. They will explore how to build object-oriented applications by creating Swift classes with properties, initializers and both instance and class methods. They will see how to effectively use advanced Swift features like generics, closures, and error handling.
Students will use Storyboards to design user interfaces for iOS apps. They study how to configure view controller classes to interact with iOS views and controls (labels, text fields, buttons, segmented controls, switches, table views, etc.) using IBOutlets, create event handlers using IBActions and then code events handlers. They learn how to use segues to manage transitions between views.
Students will become proficient in implementing master/detail apps. Features explored include configuring table views, designing details views, implementing add features, and coding "swipe to delete". Students also learn how to implement different types of custom table view cells. This type of app is among the most common app found in the marketplace.
Students learn how to persist data using three different techniques: read and write local files on the device, make asynchronous calls to Web services and parse XML data from the HTTP response, and use Core Data to interact with local SQLite databases.
Students examine how to work with images, as well use touch and gesture recognizers to respond to complex user interactions like pinch to zoom. They learn how to use tab bar controllers to build a multi view app. They learn about the life cycle of an iOS app and how to write code to respond to state transitions, including scheduling code to run in background when the app isn't active.
Throughout the course, students work with the Apple's Cocoa Touch UI Framework. They examine how to implement Apple's delegate design pattern which is used in many APIs. Students practice these skills by working with pickers and collection views, as well as writing code to capture images with the camera.
The course emphasizes best programming practices. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency. Students will create iOS apps using Swift from the ground up, demonstrating the features of Swift, iOS, and its supporting code libraries.
143
Course Overview
Programming iOS Apps in Swift on a Mac Xcode IDE
. What is iOS? . Using Swift Playgrounds . Devices that Support iOS . Creating Apps Using Xcode Templates . Building a Developer's Workstation . Exploring the Xcode IDE . Examining the macOS . Leveraging Xcode Debugging Support . Exploring macOS Tools . Enrolling in the Apple Developer Program
Swift Data Types Swift Control Structures
. Declaring Variables and Constants . Using Flow Control Statements (if, switch) . Working with Swift Numeric Data Types . Writing Loops (for, while, repeat) . Working with Strings . Writing and Calling Functions . Working with Dates . Defining Parameters . Understanding Swift Optionals . Specifying Return Type . Designing with Swift Generic Types . Using Named Parameters . Working with Collections (Arrays and Dictionaries) . Nesting Functions . Using Tuples . Using Swift Function Types
Object Oriented Programming Constructs Swift Error Handling
. Defining Classes . Understanding Swift Error Handling . Declaring Properties . Defining and Throwing Errors . Writing Initialization Methods . Propagating Errors Using Throwing Functions . Creating Methods . Handling Errors Using do-catch . Understanding Public vs. Private . Understanding the Swift Error Type . Instantiating and Using Objects . Converting Errors to Optionals . Understanding ARC (Automatic Reference . Using defer to Specify Cleanup Actions Counting) iOS Design Patterns iOS Apps
. Working with Model-View-Controller . Understanding an Xcode Project Structure . Designing Singletons . Designing the UI Using Storyboards . Using Lazy Initialization . Working with View Controllers . Implementing the Delegate Design Pattern . Creating IBOutlets and IBActions . Declaring Protocols . Handling Events . Implementing Protocols . Specifying Different Types of Keyboards . Optional Protocol Methods
Enhancing iOS Apps Building Sophisticated User Interfaces
144
. Working with Labels, Buttons and Text Fields . Exploring iOS Controls, Views and View . Using Switches and Sliders Controllers . Allowing User Selection with Pickers . Creating Multiple Views Controllers . Displaying Data Using Collection Views . Using Segues for View Transitions . Using Tab Bar Controllers to Arrange Multiple . Using Navigation Controllers Views . Using AutoLayout to Constrain Views and Manage Layout in Differently Size Devices
Designing Master/Detail Applications Reading and Writing Files
. Implementing Master/Detail Applications . iOS File System Structure . Configuring Table Views . Understanding an Application's Sandbox . Implementing Detail Views . Locating Files . Implementing Add Item Functionality . Working With Serializable Types . Implementing "Swipe to Delete" . Reading and Writing Files . Supporting Multiple Types of Table View Cells
Working with Web Services Using Core Data
. Using RESTful Web Services . The Managed Object Model . Configuring and Using URLSession . Managed Object Context . Working with HTTP Requests . Creating a Core Data Application . Formatting Data for POST Requests . Understanding the Core Data Model . Designing Completion Handlers to Process HTTP . Creating Entities and Attributes Responses . Subclassing NSManagedObject . Parsing Data in HTTP Responses . Fetching, Editing and Saving Core Data Objects . Configuring App Transport Security . Working with the Core Data Master/Detail Template
System Events and Background Execution Touch Recognition and Gestures
. Application Lifecycle Events . Understanding Multi-Touch Concepts . Examining the App Delegate . iOS Recognizable Gestures . Reacting to System Events . Recognizing User's Touch . Running Tasks in the Background . Using Gesture Recognizers
Working with the Camera
. Detecting the Camera . Types of Media . Working with UIImagePickerController . Capturing and Processing the Image . Saving the Image
145
. Configuring Camera and Photo Library Permissions
146
Test Driven Development (TDD), and Refactoring Legacy Code Using C#
Duration: 28 hours
Price: $900
Prerequisites: C# programming experience and an understanding of object-oriented design principles
Description: This course provides students with hands on experience learning Test Driven Development (TDD) using NUnit and Microsoft’s Visual Studio. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems. Student will create tests and code that will be more likely to meet and exceed requirements. Code that receives “test coverage” will not break existing systems, because tests are passed before code is checked in.
Students will spend time working with the issues involved in refactoring legacy code, safely cutting into an already deployed system. Students will work on looking for, or creating “seams” to more safely improve code or add features, and work on identifying “code smells” that need attention in a productive system.
Finally, students will explore dependency issues as well as techniques to better understand and improve complex systems.
Comprehensive labs using C# provide facilitated hands on practice crucial to developing competence and confidence with the new skills being learned.
Course Overview
Why TDD? Think Twice, Write Production Code Once Basic Unit Testing
. Utilizing a Safety Net of Automated Testing . NUnit and Visual Studio . Agile Development Concepts . Adding Complexity to Initial Simple Tests . Eliminating Bugs Early . Making Tests Easy to Run . Smoothing Out Production Rollouts . The TDD Pattern: Red, Green Refactor . Writing Code Faster via Testing . Using Methods of the Assert Class . Reducing Technical Debt . Boundary Testing . Practicing Emergent Design . Unit Test Limitations . Making Changes More Safe . The Importance of Regression Testing
Comprehensive Unit Testing Concepts Mocks, Fakes, Stubs and Drivers
. Using Declarative-Style Attributes . TDD Development Patterns
147
. Using Hamcrest Matchers for More Complex . Naming Conventions for Better Code Scenarios . Using Mock Objects . Using Test Categories . Using Fakes . Exception Handling in Tests . Using Stubs . NUnit Test Initialization and Clean Up Methods . Test Doubles . Writing Clean and Dirty Tests . Manual Mocking . Testing with Collections, Generics and Arrays . Mocking with a Mock Framework . Negative Testing . Self-Shunt Pattern
Database Unit Testing Refactoring Basics
. Mocking the Data Layer . Refactoring Existing Code . Identifying what Should Be Tested in Databases . Restructuring . Stored Procedure Tests . Extracting Methods . Schema Testing . Removing Duplication . Using NDbUnit to Set Up the DB Test Environment . Reducing Coupling . Division of Responsibilities . Improving Clarity and Maintainability . Test First - then Refactor . More Complex Refactoring Considerations
Patterns and Anti-Patterns in TDD Refactoring Legacy Code
. The SOLID Principles . Reducing Risk of Change . Factory Methods . Eliminating Dependencies . Coding to Interface References . Characterization Tests as a Safety Net . Checking Parameters for Validity Test . Introducing Abstractions to Break . Open/Closed Principle: Open to Extension, Closed Dependencies to Change . Analyzing Legacy Code . Breaking Out Method/Object . Identifying Pinch Points with Effect Analysis . Extract and Override Call . Identifying Seams for Expansion and . Extract and Override Factory Method Testing . Singleton Pattern . Listing Markup . Decorator Pattern . Minimizing Risk of Adding New Behavior . Facade Pattern . Sprout Method . State Pattern . Sprout Class . MVP, MVC and MVVM Patterns . Wrap Method . Finding and Removing Code Smells/Antipatterns . Wrap Class . Dealing with Code that's Difficult to Test . Globals and Singletons in Tests . Inaccessible Methods and Fields . Using Smells to Identify What to Refactor . Dealing with Monster Methods . Dealing with Excessively Complex, Large Classes . Identifying and Eliminating Duplication
148
. Other Smells . Dealing with Large Legacy Systems . Preserving Signatures
Code Coverage Risks Changing Legacy/Production Systems
. White Box vs Black Box Testing . Refactoring . Planning to Increase Code Coverage Over Time . Coupling and Cohesion Issues . Goal 80% or More Test Coverage . Taking Small Tested Steps . Statement Coverage . Condition Coverage . Path Coverage
149
Test Driven Development (TDD), and Refactoring Legacy Code Using Java
Duration: 28 hours
Price: $900
Prerequisites: Java programming experience and an understanding of object-oriented design principles. The Java Programming course or equivalent knowledge provides a solid foundation.
Description: This course provides students with hands on experience learning Test Driven Development (TDD) using JUnit. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems. Student will create tests and code that will be more likely to meet and exceed requirements. Code that receives “test coverage” will not break existing systems, because tests are passed before code is checked in.
Students will spend time working with the issues involved in refactoring legacy code, safely cutting into an already deployed system. Students will work on looking for, or creating “seams” to more safely improve code or add features, and work on identifying “code smells” that need attention in a productive system.
Finally, students will explore dependency issues as well as techniques to better understand and improve complex systems.
Comprehensive labs using Java provide facilitated hands on practice crucial to developing competence and confidence with the new skills being learned.
Course Overview
Why TDD? Think Twice, Write Production Code Once Basic Unit Testing
. Utilizing a Safety Net of Automated Testing . JUnit . Agile Development Concepts . JUnit Testing . Eliminating Bugs Early . Adding Complexity to Initial Simple Tests . Smoothing Out Production Rollouts . Making Tests Easy to Run . Writing Code Faster via Testing . The TDD Pattern: Red, Green Refactor . Reducing Technical Debt . Using Methods of the Assert Class . Practicing Emergent Design . Boundary Testing . Making Changes More Safe . Unit Test Limitations . The Importance of Regression Testing
Comprehensive Unit Testing Concepts Mocks, Fakes, Stubs and Drivers
150
. Using Declarative-Style Attributes . TDD Development Patterns . Using Hamcrest Matchers for More Complex . Naming Conventions for Better Code Scenarios . Using Mock Objects . Using Test Categories . Using Fakes . Exception Handling in Tests . Using Stubs . JUnit Test Initialization and Clean Up Methods . Test Doubles . Writing Clean and Dirty Tests . Manual Mocking . Testing with Collections, Generics and Arrays . Mocking with a Mock Framework . Negative Testing . Self-Shunt Pattern
Database Unit Testing Refactoring Basics
. Mocking the Data Layer . Refactoring Existing Code . Identifying what Should Be Tested in Databases . Restructuring . Stored Procedure Tests . Extracting Methods . Schema Testing . Removing Duplication . Using NDbUnit to Set Up the DB Test Environment . Reducing Coupling . Division of Responsibilities . Improving Clarity and Maintainability . Test First - then Refactor . More Complex Refactoring Considerations
Patterns and Anti-Patterns in TDD Refactoring Legacy Code
. The SOLID Principles . Reducing Risk of Change . Factory Methods . Eliminating Dependencies . Coding to Interface References . Characterization Tests as a Safety Net . Checking Parameters for Validity Test . Introducing Abstractions to Break . Open/Closed Principle: Open to Extension, Closed Dependencies to Change . Analyzing Legacy Code . Breaking Out Method/Object . Identifying Pinch Points with Effect Analysis . Extract and Override Call . Identifying Seams for Expansion and . Extract and Override Factory Method Testing . Singleton Pattern . Listing Markup . Decorator Pattern . Minimizing Risk of Adding New Behavior . Facade Pattern . Sprout Method . State Pattern . Sprout Class . MVP, MVC and MVVM Patterns . Wrap Method . Finding and Removing Code Smells/Antipatterns . Wrap Class . Dealing with Code that's Difficult to Test . Globals and Singletons in Tests . Inaccessible Methods and Fields . Using Smells to Identify What to Refactor . Dealing with Monster Methods
151
. Dealing with Excessively Complex, Large Classes . Identifying and Eliminating Duplication . Other Smells . Dealing with Large Legacy Systems . Preserving Signatures
Code Coverage Risks Changing Legacy/Production Systems
. White Box vs Black Box Testing . Refactoring . Planning to Increase Code Coverage Over Time . Coupling and Cohesion Issues . Goal 80% or More Test Coverage . Taking Small Tested Steps . Statement Coverage . Condition Coverage . Path Coverage
152
UNIX/Linux Fundamentals and Shell Scripting
Duration: 35 hours
Price: $900
Prerequisites: None
Description: This hands on course provides training on standard UNIX/Linux commands and utilities used for day to day tasks including file manipulation, program execution and control, and effective use of the shell and desktop environments. The course presents the concepts necessary to understand the way UNIX works as well as the system's most commonly used commands. Data manipulation utilities and shell syntax for synthesizing command pipelines are emphasized. Bourne shell, Bash shell and Korn shell programming techniques are introduced so students will be able to read and modify existing shell scripts as well as create their own. Desktop environments are also introduced from a user's perspective, including common window managers, Open Office utilities and an introduction to configuration tools. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
Introduction to UNIX Basic User Commands
. Design Philosophy . Logging In and Logging Out . System Components . Command Line Editing . The Shell and Command Entry . Navigating the File System . Documentation . Viewing and Copying Files . Controlling the Terminal . Sending and Receiving Mail
Text Editing UNIX Processes
. Types of Editors . The UNIX Process Model . From ed to ex to vi . Process States . Basic Editor Tasks with vi . Monitoring and Controlling Processes . Editing Multiple Files . Named Buffers . vi Startup File
The File System Introduction to Shells: sh, bash, and ksh
. File System Organization . Shell Functions . File Types . I/O Redirection and Pipes . File and Directory Naming Rules and Conventions . Command Separation and Grouping 153
. Commands for Navigating the File System . Background Execution . Introduction to Inodes . Filename Expansion . Ownership, Permissions, and Dates . Shell Variables . Manipulating Files and Links . Command Substitution . Manipulating Directories . Quoting and Escaping Metacharacters . Determining Disk Usage . Bash Shell Features . Other File System Utilities . Korn Shell Features . Command Execution . Startup Files . Customizing the User Environment
Printing Multitasking and Batch Processing
. Printing Under AT&T UNIX . Multitasking . Printing Under BSD UNIX . Scheduled Execution Using cron . The at and batch Commands
Shell Programming Advanced Shell Features
. Shell Script Features and Capabilities . Manipulating Strings . Creating and Running a Script . Writing and Calling Functions . Working With Variables . Controlling Process Priorities . Environment Variables . Interpreting Command Line Arguments . Working With Data Types . Making Scripts Interactive . Formatting . Special Shell Variables . Base Conversion . Advanced I/O with Streams . Setting Special Attributes . Improving Performance of Scripts . Input/Output Techniques . Conditional Constructs . if/then . else/elif . Looping Constructs . for, while, until . Math Operators
Text Manipulation Utilities File Processing Utilities
. Editing a File from a Script . Examining and Comparing Files . Scripting with ed or sed . Reporting Differences Between Files . UNIX and Linux Utilities to Manipulate Files . Comparing Files of Any Format . Regular Expressions . Displaying Data in Octal and Hex . grep and egrep . Compressing Data . The Stream Editor sed . Converting File Formats . Sorting in Scripts . Generating Reports with awk
154
. Splitting Large Files . Counting Words, Lines, and Characters . Transforming File Contents . Extracting Text Strings
Backing Up Files Networking Commands
. Backup Media . UNIX Network Applications . UNIX Device Names . Remote Execution Commands . tar and cpio . Remote Activity Reporting . File Transport and Conversion with dd . Communicating with Remote Users . Internet Applications . ftp, tftp, telnet . Remote Access Control Mechanisms . Using the Secure Shell(ssh)
155
WCF Programming for Experienced C# Programmers
Duration: 21 hours
Price: $900
Prerequisites: Prior experience with C# is required.
Description: This course provides students with hands on experience using Visual Studio to create service- oriented applications using Windows Communication Foundation (WCF) and C#. Students learn how to leverage the power of the .NET Framework to build Web Service applications that interoperate with consumer applications including other platforms and technologies. Students will learn how to configure addresses, bindings, and service and data contracts as well as how to use various techniques for developing endpoints to allow communication between consumer applications and the web services provider.
The course includes coverage of instance management, fault handling, and security. Students will learn how to use the WCF Routing Service for load balancing, content-based routing, and protocol bridging.
Comprehensive labs and exercises provide the students with experience creating both content server and consumer applications.
Course Overview
Introduction to WCF Service Addresses
. WCF Web Services Architecture . Address Types . Addresses, Bindings and Contracts . Endpoint Address . WCF Service Libraries . Base Address . WCF Test Host and Test Client . MEX (Message Exchange) Address . ChannelFactory Class . Metadata Exchange . Configuring WCF Clients . Address Formats . Standard Endpoints
Selecting Binding Options Managing a Service Instance
. Binding Selection . Configuring Behaviors . HTTP Bindings . Service Instance Models . TCP and Named Pipe Bindings . Per-Call . MSMQ Binding . Per-Session . BasicHttpBinding Class . Singleton . Threading Considerations . Consuming WCF Application Services with .NET Applications
156
. Consuming WCF Application Services on foreign platforms
Defining Service Contracts Defining Data Contracts
. Service and Operation Contracts . Using DataContractAttribute . Creating Contracts at the Class and Interface Level . Mapping Data to Schema . Using ServiceContractAttribute . Returning Arrays . Types of Service Contracts . Returning Generic Collections . Oneway . Data Serialization . Request-Reply . Versioning . Duplex . Callbacks . Asynchronous Proxies . WSDL Files . Contract Inheritance and Overloading . Implementing Message Exchange Patterns . Versioning
Endpoints Fault Handling
. Endpoints Explained . FaultException class . Working with Endpoints . FaultCode class . Configuring Endpoints . FaultContract class . Using Multiple Endpoints . Client Exception Handling . Including Exception Details
Securing WCF Applications WCF Routing Configuration
. Security Issues with Services . WCF Routing Service . Types of Security . Hosting the Service . Transfer Security . Consuming the Service . Transport Security . Service Contract and Implementation . Message Security . Routing Contracts . Configuring Security on Client and Server . Message Filters . Managing Certificates . Common Routing Scenarios . Configuring Client Certificates . Load Balancing . Sending Credentials . Content Based Routing . Service Partitioning . Protocol Bridging
157
Website Development with HTML5, CSS and Bootstrap
Duration: 35 hours
Price: $900
Prerequisites: Basic personal computer skills and basic Internet knowledge.
Description: This hands on course provides a thorough introduction into the creation of a Website using HTML, CSS and Bootstrap v3.3.7. The course starts with thorough coverage of HTML and Cascading Style Sheets (CSS) and progresses to using the Bootstrap framework to create mobile-friendly websites.
Topics include use of HTML5 semantic tags, block-level and inline elements, creating links, ordered and unordered lists, creation of tables and forms. Students will learn to attach CSS to a page using several different techniques, CSS selectors and pseudo-classes, CSS box model, and a variety of CSS properties.
Students will learn how to create a Bootstrap page utilizing the grid system, implement commonly used components (such as dropdowns and navigation bars), use Bootstraps CSS classes to format page elements and use Bootstrap's plugins to add tabs, modals and accordions to a page.
Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Course Overview
HTML Fundamentals Structuring an HTML Document
. HTTP Requests and Responses . Adding Headings . Static vs. Dynamic Pages . Adding Paragraphs . Tag and Attribute Fundamentals . Working with the