BJIT Academy

Courses

Software Industry Ready Professional - Development Track

Why This Course?

  • Software jobs demand various skills (not only coding!)
  • Most graduates lack understanding about such skills
  • Find difcult to learn such skills from traditional training
  • It causes great challenges to win good jobs and succeed
  • After successful completion, graduates become software industry ready professional
  • The course will help graduates to perform well in interview and succeed in career

What You will Learn?

  • See course curriculum video: https://youtu.be/sJ2XVvhvJKU
  • Industry Foundation Module: Development process SCRUM, Tools as Git/Gerrit, code quality, unit test, documentation
  • Industry Specialization Module: Get specialization in mobile platforms as Android, iOS or Enterprise Java platforms as Struts, Spring, Hibernate or PHP
  • Industry Project Module: Do real project with supervision of industry expert
  • Interview Skill Module: Tackle job interview challenges by learning resume writing, practicing with mock interview

Syllabus

Development ProcessLearn Agile SCRUM development process
ToolsLearn managing project source code with Git, code review with Gerrit, tasks and bug management by Redmine
Code QualityRefactoring, Remving code smell, coding convention, patterns
Unit TestLearn designing test cases with proper test coverage, test script
DocumentationLearn documenting requirements with visual modeling techniques
Platform specializationGet specialized in a platform in mobile as Android or in enterprise as Struts, Spring, Hibernate. See at: http://academy.bjitgroup.com/academy/courses for details
Industry ProjectDo a real project under supervision of industry expert
Interview Skill DevelopmentResume writing techniques, techniques to answering technical and project based question, mock interview

Professional PHP with Laravel Framework

Why This Course?

  • Write PHP code with proper code convention that is clear, easy to understand and flexible to change
  • Code reusability technique
  • Learn the OOP technique and understand how to implement class and methods in coding
  • MVC framework with Laravel which is the most modern and widely use framework for PHP
  • Learn to use front end scripting languages such as JavaScript, jQuery and the techniques to embed them with PHP
  • Learn new features of HTML5 and understand the effective use of HTML5 which reduces the additional coding thus save time and cost
  • The implementation of Bootstrap which is the most powerful FED template for responsive website design throughout the world
  • A full phase project combination of the above mentioned languages

What You will Learn?

  • The course will be conducted with highly professional PHP engineer having training experience. The course will incorporate LMS (Learning Management System). Discussion forum will be used for better support at offtime. Trainees can get project feedback both at onsite classes and specific offsite hours through skype.
  • The course will cover all necessary technology such as PHP, mySQL, Bootstrap, javascript and jQuery, HTML5 and Laravel. That is, after the course you can develop professional standard web application independently using these technology.

Syllabus

PHP BasicsInstallation of PHP Development Environment. Understand the main tools required to work with PHP
PHP languageWorking with PHP variables, basic building structure, error handlings, Declaring class definitions, using objects and string manipulations
PHP FormUnderstanding various form submission methods, the view pages, working with images and basic form submission
Databasemysql basics and manipulate mysql database and tables using phpmyadmin
HTML5The features of HTML5 and embed them with PHP code
Styling PageInline, embedded and external CSS. Concepts of responsive CSS
BootstrapDetailed about bootstrap for responsive dynamic web design and embed them with php view pages
JavaScriptEmbedded and external implementation of JavaScript to manipulate front end view
JQueryDetailed about jQuery implementation with PHP view pages. Working with Ajax for asynchronous data manipulation
MVC frameworkEffective use of MVC model implementation with state of the art IDE LARAVEL. integrating the PHP code with Laravel framework
ProjectDevelop real-life application in hands-on mode

Android App Design Techniques

Why This Course?

  • The course teaches you how to make effective app design from idea, to wireframe, then prototyping and finish the app

What You will Learn?

  • Analyse user goals using mental model technique, Personas
  • Design high level app flow and overall app structure
  • Make the most of wireframes and prototypes
  • App visual style, text, colors, standard icons, navigation and transitions, error cases
  • Slicing Graphic Assets, 9-patch, updating Themes and Styles
  • Improving the app efficiency

Syllabus

Analyse User GoalsMental Model Technique, Personas
High Level App FlowScreen navigation and transitions, overall app structure as main screen, secondary screens
Develop App foundationUsing wireframe and prototypes
Wireframe to ViewsBreaking the wireframes into views, create multiple prototypes
App Visual StyleText, colors, standard icons, navigation and transitions, error cases
Graphic AssetsSlicing Graphic Assets, 9-patch, updating Themes and Styles
Improve App EfficiencyControl garbage collection, decrease view traversal, eliminate screen overdraw

Professional iOS App Development

Why This Course?

  • This course has been designed to transform you from complete novice to a mid level iOS engineer. In addition, you'll become an independent programmer in the iOS community, allowing you to provide a platform on which you can build career on iOS.
  • In this course you will have hands-on experience on iOS tools, Objective-C language and the Foundation frameworks. We delve into the tool chain and the classes that make up the iOS UI framework. You learn how to lay out our interfaces using Auto Layout. We deal with programming with Map and GPS. We also discuss multi-touch event handling and other essential features of iOS required to make real time apps in the global environment.
  • You will develop and enhance 5 real life apps in hands-on mode during the course

What You will Learn?

  • Understand Objective C classes, objects, and methods
  • Learn instance and class methods
  • Apply inheritance
  • Use polymorphism and dynamic typing
  • Learn manage memory using ARC while avoiding memory leaks and retain cycles
  • Learn usage of Foundation classes (numbers, arrays, dictionaries, sets, etc.)
  • Adopt Dynamic Type to scale text to the user's preferences
  • Configure for device orientations and screen sizes
  • Design large applications with many sources of data and interfaces
  • Properly manage memory using ARC while preventing memory leaks and retain cycles
  • Set up elegant user interfaces easily, using Interface Builder and in code
  • Set up text input fields on the iPhone and move the virtual keyboard onto the screen
  • Internationalize applications using localization feature
  • Use Mapkit framework to use map in application
  • Use Core Location framework to develop location based program
  • View editable tables of data
  • Learn how to broadcast notifications and implement actions accordingly
  • Handle touch and complex multi-touch sequences
  • Design UI with UIKit components
  • Use the power of Core Data to store data
  • Fetch data from a web service
  • Save application preferences
  • Learn how to debug application using XCode IDE
  • Develop application for various Apple devices

Syllabus

XCode IntroductionKnow XCode IDE Basics & Develop UI using Interface Builder
Objective CLearn Objective C Programming Language
Memory ManagementApply Memory Management, iOS Properties & Keywords
View BasicsLearn Basics of View Programming and Drawing on Views
Panning and PagingView Redrawing, Panning and Paging using UIScrollView Component
View ControllerCustomize Views using View Controller and TabView Controller
Event DelegationDelegate Application Events
Table ViewShow Tabular Data using UITableView and UITableViewController
Table View ActionsEditing/Adding/Deleting Rows in UITableView Component
View NavigationNavigate Between View using UINavigationController
CameraTake Pictures using Camera
Touch EventsHandle Touch Events and UIResponder
Gesture and MenuTap Gesture Events and Work with Menus
DebuggingLearn How to Debug in XCode
AutolayoutMake Application UI Compatible for Various Apple Devices
Popover ControllerAutorotation, Popover Controllers, and Modal View Controllers
SettingsImplement Application Preferences and Settings using NSUserDefaults and pList
MapUse Power of Google Map using MapKit Framework
GPSWork With GPS Technology using Core Location Framework
Dynamic TypeChange Font Style using Dynamic Type
Web ServiceCommunicate with Web Services and UIWebView Component
Master Detail DataShow Master Detail Data using UISplitViewController Component, Universal Application
Core DataSave and Retrieve Data using Database
LocalizationInternationalize Application
StoryboardUI Designing and Prototyping using Storyboard
Project WorkDevelop 5 real life applications in hands-on mode

Software Testing Techniques and Automation with Selenium

Why This Course?

  • The course will give you professional level skill to design test case with proper test coverage as well as implement and automate Test cases with Selenium Web Driver tool
  • You will learn various Test Patterns that will help you to maintain test codes and data effectively

What You will Learn?

  • Concepts of various software testing
  • Black box and White box testing techniques
  • Test Automation with Selenium Webdriver
  • Locate web elements and interactions with Web Driver
  • Applying test patterns to write easily maintainable test cases in Selenium
  • Test data driven testing in Selenium
  • Stabilzing test cases
  • Effective bug analysis and reporting techniques
  • Testing mobile and web applications

Syllabus

Testing basicsVarious types of software testing
Black box testing techniquesEquivalent Partitions, Boundary Analysis, Finite State Machine, Decision Table
White box testing techniquesStatement Coverage, Branch Coverage, Branch and Condition Coverage, Condition Coverage, Multi Condition Coverage
Test Automation with Selenium Setup Project in Eclipse, Web Elements and Element Locator Strategy, XPath, CSS Selector, Browser Inspector Tool
Test Anti-patternsSpaghetti, Chain Linked and Big Ball of Mud Anti-patterns
Test PatternsDRY, Page Object, Test Independence, The Action Wrapper pattern
Making and Maintaining Test Data Fixtures, Stubs, YAML, JSON, API Endpoints, Default Values, Faker Library
Stabilzing TestsWaiting for AJAX requests to finish, Waiting for jQuery animations to finish, Black hole proxy pattern
Case StudyDemonstrate deriving test cases using black box, white box and error guessing techniques with a real life case study
Mobile and Web Application TestingTesting Challenges, Testing Strategy
Bug Analysis and Reporting TechniquesAnalyse the bug, Derive shortest path to reproduce bug, Finding general conditions to reproduce the bug, Effective reporting

Web Application Development with Struts, Spring and Hibernate Frameworks

Why This Course?

  • The course is designed to obtain skill in developing enterprise Java web applications using popular open source Java frameworks as Struts, Spring and Hibernate

What You will Learn?

  • Web application design models
  • Basics of HTML, CSS, XML
  • Session management techniques as URL rewritng, hidden fields, cookie and session
  • JSP lifecycle, JSP tags
  • Filtering role in web app
  • Struts lifecycle understanding
  • Struts tags
  • Struts validation
  • Struts localization
  • Spring dependency injection
  • Spring Simple JDBCTemplate
  • Spring transaction management
  • Hibernate as ORM
  • Hibernate associations and mappings
  • Struts Spring Hibernate Integration

Syllabus

Web App ArchitectureDifferent design models for web applications
Web UI basicsHTML, CSS, XML
ServletLifecycle, Servlet API, working with HTML forms, deployment descriptor
Session ManagementURL rewriting, hidden fields, cookies, HTTPSession objects
JSPLifecycle, scripting elements, directives, actions
JSP TagsJSP tags
FilterFilter API, Filter configuration, Filter order
StrutsStruts MVC, Request life-cycle, configuration, tags, validation, localization
SpringDependency injection, transaction management, Simple Spring JDBC
HibernateORM, Struts Spring Hibernate Integration, Spring Hibernate Template, HibernateDao support, Spring transaction handling with Hibernate

Professional Java Advanced

Why This Course?

  • Certain important aspects of programming - coding style, refactoring, sound coding constructs, flexible design, testing etc - are not focus of University computer science programming courses. Many programmers learn these techniques haphazardly or not learning them at all. This course will cover programming techniques that will upgrade your programming skill into professional level.

What You will Learn?

  • Code refactoring techniques
  • Code reusability techniques
  • Write code that is simple, clear, easy to understand and flexible to change
  • Effective Java Usages Patterns on Creating and Destroying Objects
  • Effective Java Usages Patterns on Classes and Interfaces
  • Effective Java Usages Patterns on Exception Handling
  • JUnit Testing. You will be able to integrate testing with automation to ensure quality of your program

Syllabus

Duplicate Code Identify and remove duplicate codes
Code smellsIdentify and remove code smells
Keeping code fitAdd new requirements by extending classes, impacts of expanding classes for new requirements, trimming classes
Taking care inheritancesHaving inherited inappropriate features, taking out non-essential features
Turning comments into codeTurning comments into class name, variable name, parameter names and part of a body. Delete useless comments. Extracting codes into a method
Handling inappropriate referencesCode not reusable for inappropriate references, how to check for inappropriate references
Java patterns: Create and destroy objectsStatic factory, builder, singleton. avoid creating unnecessary objects, eliminate obsolete references.
Java patterns: Classes and interfacesMinimize accessibility, accessor methods, composition over inheritance. Interface over abstract classes, class hierarchy over tagged classes, interface to define only types
Java Patterns: Exception usageEffective Java exception handling patterns
JUnit testingHow to do JUnit testing for test automation

Professional Java

Why This Course?

  • Obtain applied java skill essential for learning Android and Enterprise Java frameworks

What You will Learn?

  • Java language basics
  • JDK and eclipse IDE setup
  • OOP concepts
  • Class, Object, Inheritance
  • Polymorphism, Abstract Class, Interfaces
  • Exception Handling
  • File I/O
  • Java Coding Conventions
  • Generics
  • Collections: ArrayList, HashMap
  • Java Concurrency: Thread, Managing Threads, Using Executor API
  • Connect to Oracle database with JDBC, Do CRUD

Syllabus

Language basicsData types, variables, operators, expression, statements and blocks, control flow statements
OOP conceptsClass, object, inheritance, polymorphism
OOP with JavaClass, object, abstract classes, interfaces, inheritances, packages, static classes, anonymous classes, inner classes, polymorphism
Coding conventionsJava coding conventions used for professional programming
Exception handlingTypes of Exception, Dealing with Exception, Rethrowing Exceptions, Throwable Object
File I/OFile class, Reader and Writer classes, Object serialization
Generics and CollectionsArrayList, HashMap
Java concurrencyThread, Managing Threads, Using Executor API
JDBC Concepts, Connect to Oracle database with JDBC, Do CRUD

Professional Android App Development

Why This Course?

  • The course will help you to learn skill of developing professional level Android apps for mobile phone and tablets. You will learn important tools, programming techniques and design patterns as well as professional level development practices and conventions that are required for all kind of Android development.
  • You will work on several professional level projects bit-by-bit in each session during the course. Instructor will explain the theory and help you understand the code and you will learn Android programming by coding yourself in every session.

What You will Learn?

  • Learn and apply MVC pattern to design Android application architecture
  • Handle device rotation properly
  • Use fragments to support both mobile and tablets with a single app
  • Develop scrollable list views and grid views with custom layouts
  • Display option menus, context menus, search dialogs and action bars
  • Use Styles feature to make professional looking UI
  • Using Intent to communicate within and between apps
  • Handle JSON data
  • Parse and display XML data from RESTful web services
  • Develop Services to do background tasks of the application
  • Develop Broadcast Receivers to register and handle important events
  • Persist data using SQLite Database
  • Track user locations
  • Loading data asynchronously with Loader
  • Using Maps
  • Localization
  • Develop and debug Android Application using Eclipse IDE

Syllabus

Model View ControllerDesign and implement app with Model, View and Controller objects
Layout Define screen layout with parameters, margin, padding, weight, gravity
ActivityCreate simple activity with basic views, activity life-cycle
Touch EventsRespond to user touch events
RotationHandle rotation, save app state, restore app state
DebugLogCat, Android Debugger, Android Lint
CompatibilityAdding code from later API safely
FragmentUse fragment as a controller, fragment manager, fragment life-cycle
List FragmentWiring listview in listfragment
AdapterViewLoad large amounts of data using an adapter to List View and Grid View
ViewPagerShow details information with view pager
FragmentStatePagerAdapterWiring up view pager with its pager adapters
DialogFragmentShow Alert dialogs in a dialog fragment
MultimediaPlay Audio and Video files
LocalizationSupport multiple languages
Action barShow option menu, context menu and menus with Action bar
Shared PreferencesStore small piece of data persistently
JSONLoad and save JSON data in file
Implicit IntentUsing implicit intent communicate between apps
Two-pane UICreate layout with two fragment containers for tablets
StylesStatelist drawables, 9-patch images
XML web servicesGet data from web services using RESTful API
HTTP networkingConnect to the Internet
Asynchronous TaskAsyncTask to run on a background thread, Handler, Looper, HandlerThread
Location Get location information from device using GPS
File I/OLoad and save data in file system
SearchSearch data using Search API
Background ServiceManaging background tasks of an app
Broadcast IntentSubscribe to local and OS events, send and receive broadcast message, ordered broadcast
NotificationsCommunicate to the user from a service
SQLiteQuery, insert, update and delete data using SQLite DB API
CursorWrapperWrap an existing cursor. Useful for defining custom cursor for app model objects
Custom PermissionDefine private permission to make something not visible outside the app
LoaderLoading asynchronous data with Loader
MapsShow user locations on a map, add markers
DesignUnderstand overall app structure with object diagram. Show interaction between objects with sequence diagram