An image of students walking.

Summer Pre-College: Robotics

Earn college credits this summer while you learn to design and create your own robot design.

Menu Display

An error occurred while processing the template.
The following has evaluated to null or missing:
==> navbarId  [in template "86161#86202#287243" at line 85, column 8]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${navbarId}  [in template "86161#86202#287243" at line 85, column 6]
----
1<#include "${templatesPath}/NAVIGATION-MACRO-FTL" /> 
2 
3<#if !entries?has_content> 
4    <#if themeDisplay.isSignedIn()> 
5        <div class="alert alert-info"> 
6            <@liferay.language key="there-are-no-menu-items-to-display" /> 
7        </div> 
8    </#if> 
9<#else> 
10    <#assign 
11        portletDisplay = themeDisplay.getPortletDisplay() 
12 
13        navbarId = "navbar_" + portletDisplay.getId() 
14    /> 
15 
16    <div id="${navbarId}" class="mt-3"> 
17        <div class="accordion" id="${navbarId}-top-accordion"> 
18            <div class="accordion navbar-site" id="${navbarId}-accordion"> 
19                <header id="${navbarId}-header" class="d-block d-md-none text-right" data-toggle="collapse" data-target="#${navbarId}-top-collapse" aria-expanded="false" aria-controls="${navbarId}-top-collapse">Section Menu <i class="menu-icon ml-2"></i><hr/></header> 
20                <div id="${navbarId}-top-collapse" class="collapse d-md-block pl-0 ml-0" aria-labelledby="${navbarId}-header" data-parent="#${navbarId}-top-accordion"> 
21                    <#assign navItems = entries /> 
22 
23                    <#list navItems as navItem> 
24                        <#assign showChildrenNavItems = (displayDepth != 1) && navItem.hasBrowsableChildren() /> 
25 
26                        <#if navItem.isBrowsable() || showChildrenNavItems> 
27                            <#assign 
28                                nav_item_css_class = "" 
29                                nav_item_href_link = "" 
30                            /> 
31 
32                            <#if navItem.isChildSelected() || navItem.isSelected()> 
33                                <#assign nav_item_css_class = "active" /> 
34                            </#if> 
35 
36                            <#if navItem.isBrowsable()> 
37                                <#assign nav_item_href_link = "href='${navItem.getURL()}' ${navItem.getTarget()}" /> 
38                            </#if> 
39 
40                            <div class="card collapse-card shadow-none border-0 mb-0"> 
41                                <#if showChildrenNavItems> 
42                                    <#assign toggle_text> 
43                                        <@liferay.language key="toggle" /> 
44                                    </#assign> 
45                                </#if> 
46                                <#if showChildrenNavItems> 
47                                    <div class="collapse-header card-header mb-0 border-0" id="${navbarId}-card-header-${navItem?index}"> 
48                                        <button class="${nav_item_css_class} btn btn-link collapse-btn d-inline-flex justify-content-between align-items-center w-100" type="button" data-toggle="collapse" data-target="#${navbarId}-collapse-${navItem?index}" aria-expanded="false" aria-controls="${navbarId}-collapse-${navItem?index}"> 
49                                            <span class="collapse-header-text mb-0 text-left mr-2">${navItem.getName()}</span> 
50                                            <span class="collapse-header-chevron"></span> 
51                                            <span class='sr-only'>${toggle_text}</span> 
52                                        </button> 
53                                    </div> 
54                                    <div class="collapse" id="${navbarId}-collapse-${navItem?index}" aria-lablledby="${navbarId}-card-header-${navItem?index}" data-parent="#${navbarId}-accordion"> 
55                                        <div class="card-body p-0"> 
56                                            <@buildChildrenNavItems 
57                                                displayDepth=displayDepth 
58                                                navItem=navItem 
59                                            /> 
60                                        </div> 
61                                    </div> 
62                                </#if> 
63                                 
64                            </div> 
65                        </#if> 
66                    </#list> 
67                </div> 
68            </div> 
69        </div> 
70    </div> 
71 
72    <@liferay_aui.script use="liferay-navigation-interaction"> 
73        var navigation = A.one('#${navbarId}'); 
74 
75        Liferay.Data.NAV_INTERACTION_LIST_SELECTOR = '.navbar-site'; 
76        Liferay.Data.NAV_LIST_SELECTOR = '.navbar-site'; 
77 
78        if (navigation) { 
79            navigation.plug(Liferay.NavigationInteraction); 
80
81    </@> 
82</#if> 
83 
84<style> 
85    #${navbarId} .collapse-card { 
86        border-radius: 0; 
87
88 
89    #${navbarId} .collapse-header { 
90        background-color: #ffffff; 
91        border-radius: 0; 
92        padding: 0; 
93
94 
95    #${navbarId} .collapse-header:active, 
96    #${navbarId} .collapse-header:focus, 
97    #${navbarId} .collapse-header:focus-within, 
98    #${navbarId} .collapse-header:target, 
99    #${navbarId} .collapse-header:hover, 
100    #${navbarId} .collapse-header:focus-visible { 
101        background-color: #b31b1b; 
102
103 
104    #${navbarId} .collapse-header-text { 
105        font-family: myriad-pro, sans-serif; 
106        font-style: normal; 
107        font-weight: 600; 
108        color: #333333; 
109
110 
111    #${navbarId} .collapse-header:active .collapse-header-text, 
112    #${navbarId} .collapse-header:focus .collapse-header-text, 
113    #${navbarId} .collapse-header:focus-within .collapse-header-text, 
114    #${navbarId} .collapse-header:target .collapse-header-text, 
115    #${navbarId} .collapse-header:hover .collapse-header-text, 
116    #${navbarId} .collapse-header:focus-visible .collapse-header-text { 
117        color: #ffffff; 
118
119 
120    #${navbarId} .collapse-btn:active, 
121    #${navbarId} .collapse-btn:focus, 
122    #${navbarId} .collapse-btn:focus-within, 
123    #${navbarId} .collapse-btn:target, 
124    #${navbarId} .collapse-btn:hover, 
125    #${navbarId} .collapse-btn:focus-visible { 
126        box-shadow: none; 
127        text-decoration: none; 
128
129 
130    #${navbarId} .collapse-header-chevron::before { 
131        font-family: 'fontawesome-alloy'; 
132        color: #333333; 
133
134 
135    #${navbarId} .collapse-header:active .collapse-header-chevron::before, 
136    #${navbarId} .collapse-header:focus .collapse-header-chevron::before, 
137    #${navbarId} .collapse-header:focus-within .collapse-header-chevron::before, 
138    #${navbarId} .collapse-header:target .collapse-header-chevron::before, 
139    #${navbarId} .collapse-header:hover .collapse-header-chevron::before, 
140    #${navbarId} .collapse-header:focus-visible .collapse-header-chevron::before { 
141        color: #ffffff; 
142
143 
144    #${navbarId} .collapse-btn[aria-expanded="true"] > .collapse-header-chevron::before { 
145        font-family: FontAwesome; 
146			  content: "\f078"; 
147        color: #ffffff; 
148
149 
150    #${navbarId} .collapse-btn[aria-expanded="false"] > .collapse-header-chevron::before { 
151        font-family: FontAwesome; 
152        content: "\f077"; 
153
154 
155    #${navbarId} .collapse-btn[aria-expanded="true"] { 
156        background-color: #b31b1b; 
157
158 
159    #${navbarId} .collapse-btn[aria-expanded="true"] > .collapse-header-text { 
160        color: #ffffff; 
161
162 
163    #${navbarId} .dropdown-item.active { 
164        background-color: #b31b1b; 
165        color: #ffffff; 
166        text-decoration: none; 
167
168 
169    #${navbarId} .dropdown-item { 
170        background-color: #ffffff; 
171        color: #333333; 
172        font-family: myriad-pro, sans-serif; 
173        font-style: normal; 
174        font-weight: 600; 
175        padding-top: 6px; 
176        padding-bottom: 6px; 
177
178 
179    #${navbarId} .dropdown-item:active, 
180    #${navbarId} .dropdown-item:focus, 
181    #${navbarId} .dropdown-item:focus-within, 
182    #${navbarId} .dropdown-item:target, 
183    #${navbarId} .dropdown-item:hover, 
184    #${navbarId} .dropdown-item:focus-visible { 
185        background-color: #b31b1b; 
186        color: #ffffff; 
187
188 
189    #${navbarId} .card-body > li { 
190        display: block; 
191
192 
193    #${navbarId} header { 
194        font-family: myriad-pro, sans-serif; 
195        font-style: normal; 
196        font-weight: 600; 
197
198 
199    #${navbarId} .menu-icon { 
200        font-family: "fontawesome-alloy"; 
201        speak: none; 
202        font-style: normal; 
203        font-weight: normal; 
204        font-variant: normal; 
205        text-transform: none; 
206        line-height: 1; 
207        -webkit-font-smoothing: antialiased; 
208
209     
210    #${navbarId} header[aria-expanded="false"] .menu-icon:before { 
211			  font-family: 'FontAwesome'; 
212        content: "\f0c9"; 
213
214     
215    #${navbarId} header[aria-expanded="true"] .menu-icon:before { 
216			  font-family: 'FontAwesome'; 
217        content: "\f00d"; 
218
219</style> 

Are you interested in a hands-on learning experience while solving mechanical problems and working with a team to find solutions? Students who enroll in the Marist Summer Pre-College Robotics course will apply the techniques learned in real robotic systems, using commercial robotics kits and programming environments. Students will apply concepts they learn in chassis design, sensor selection, actuator implementation, and control theory, to solve real world problems in robotics. While programming is a large component of the program, no prior experience is required. We will be teaching simple programming techniques to implement our solutions and will be working through many practical laboratories honing your skills and confidence!

About Professor Brian Gormanly 

Brian Gormanly received his MS from Marist and his BS from Mount Saint Mary College. His professional interests are Software Engineering, Robotics, Distributed Application Systems, Microservices, and the Internet of Things.

Brian has worked as a software engineer for 15 years in industry and has been an active entrepreneur, starting several businesses over his career.  As a software engineer, Brian grew into senior and lead Positions, architecting enterprise systems.  He has presented on topics including the performance of Oracle on System z, augmented reality, and cloud-based enterprise solutions.  He currently works creating highly scalable systems collecting data from IoT devices and sensors for applications such as indoor localization and robotics.  He has combined his expertise in distributed cloud application programing with microservices architecture and embedded application programing, topics he incorporates in his teaching.  He has also developed other navigation algorithms working with Simultaneous Localization and Mapping (SLAM) navigation for robotics, experimenting with low-cost and smaller sensing options such as ultrasonic and infrared.