Ensino Médio Técnico
Cursos técnicos integrados ao ensino médio, com material didático incluso.
Horários das aulas
7h30 às 12h45 ou 13h às 18h15
Escolas
28 escolas em todo o Estado
Matrícula
On-line, por ordem de chegada
Diferenciais da nossa escola
Metodologia integrada
Estudantes aprendem com a realização de projetos, que integram ensino médio e técnico
Formação cidadã e diversa
Incentivamos o protagonismo por meio de valores como respeito e pluralidade de ideias
Material incluso e avaliação contínua
Material didático sem taxas extras e avaliações que ocorrem no dia a dia das aulas
Atividades extras gratuitas
Acesso a oficinas, simulados, vagas de estágio, olimpíadas do conhecimento e muito mais
Como funciona o ensino integrado?
Formação básica
Atuamos de acordo com a Base Nacional Comum Curricular do Ensino Médio, com Formação Geral Básica de excelência em todas as áreas do conhecimento:
Ciências da Natureza e suas tecnologias, Linguagens e suas tecnologias, Ciências humanas e sociais aplicadas e Matemática e suas Tecnologias.
Formação técnica
O ensino técnico é realizado junto com o ensino médio. Ao final de cada ano, estudantes recebem certificações intermediárias.
Ao concluir o 3º ano, além dessas certificações, também recebem seu diploma de ensino médio e técnico podendo dar continuidade aos estudos. Confira nossos cursos:
- Inteligência Artificial
- Administração
- Internet das Coisas
- Ciências de dados
- Marketing
- Informática
- Multimídia
Nossa metodologia
Autoconhecimento + emancipação + autonomia
Confira alguns depoimentos de estudantesEnsino médio e técnico integrados por projeto
De forma dinâmica e colaborativa, estudantes aprendem por meio da realização do Projeto do Ano Letivo, que reúne conteúdos do ensino médio e técnico, com temáticas que fazem sentido para a turma.
Nesses projetos, desafios são lançados e estudantes criam estratégias e soluções para resolver problemas similares àqueles encontrados no mercado de trabalho e na vida.
Projeto de Vida para pensar o futuro
Com atividades práticas, muito diálogo e troca de experiências, o Projeto de Vida contribui para que jovens possam tomar decisões, resolver problemas e lidar com situações inesperadas sobre a vida, o futuro e o trabalho.
Acolhimento para uma formação cidadã
Acreditamos em uma formação cidadã, pautada na diversidade, pluralidade de ideias, vivência, respeito e sustentabilidade.
Acolhemos todas as pessoas e queremos que cada uma se sinta parte essencial da nossa escola. Preparamos nossos alunos e alunas não apenas para o mercado de trabalho, mas para a vida!
Professores com formação multidisciplinar
Nossa equipe tem experiência multidisciplinar e de mercado de trabalho. Sabe como atuar com jovens, na mediação de grupos, lidar com o diverso, trabalhar em equipe e por projetos, agindo sempre com postura democrática, atitude inclusiva e crítica.
Avaliação contínua
O desempenho de cada estudante é avaliado no dia a dia, ao longo do curso, a partir de sua participação nas atividades e projetos realizados.
Preparação para o Enem
Além do ensino de excelência, oferecemos atividades extras, como oficinas de redação e simulados, contribuindo para que estudantes possam se preparar para o vestibular e o Enem.
Bolsas de estudo 100% gratuitas
Como funciona?
- É preciso ter renda familiar mensal de até 2 salários mínimos federais por pessoa
- As vagas são limitadas e as inscrições on-line, preenchidas por ordem de chegada, sem provas e taxas
- Ao ingressar como bolsista no 1° ano, o benefício é válido até a conclusão do 3° ano
- A bolsa de estudo será cancelada mediante reprovação
Encontrar cursos
Resultados
Opa! Não encontramos resultados para sua busca
Altere ou limpe os filtros para fazer uma nova busca.
Vagas para transferências de estudantes em breve!
Voltar ao TopoPrecisa de mais informações? Confira as dúvidas frequentes.
Valores e pagamento
Referente a turmas de 1ª ano 2026
Selecione o desconto:
Total do ano letivo: R$ 15392,00
até 13x de
R$ 0
Diferenciais da nossa escola
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getContent()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 1, \"ctCollectionId\": 0, \"uuid\": \"6f3036dd-8928-c88b-9a3f-8a3a5015c56c\", \"id\": 98690154, \"resourcePrimKey\": 372023, \"groupId\": 372015, \"companyId\": 20102, \"userId\": 48082490, \"userName\": \"Aline De Sousa Moura\", \"createDate\": \"Thu Aug 06 12:18:27 GMT 2020\", \"modifiedDate\": \"Mon Mar 17 16:45:41 GMT 2025\", \"externalReferenceCode\": \"372021\", \"folderId\": 0, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/\", \"articleId\": \"372021\", \"version\": 7.9, \"urlTitle\": \"senac-jabaquara\", \"DDMStructureKey\": \"134298\", \"DDMTemplateKey\": \"\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": \"Thu Aug 06 12:17:00 GMT 2020\", \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 48082490, \"statusByUserName\": \"Aline De Sousa Moura\", \"statusDate\": \"Mon Mar 17 16:45:41 GMT 2025\"}"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign document = saxReaderUtil.read... [in template "20102#20129#87533748" at line 58, column 25] ----
1<style>
2 .ssp-new-emed__conheca-nossas-escolas-filter-content .ssp-new-emed__filtro-select-content .select-dropdown .dropdown-content li input {
3 display: flex;
4 align-items: center;
5 gap: 8px;
6 padding: 1rem;
7 color: var(--neutros-neutro-600, var(--neutros-neutro-600, #5D6372));
8 /* Formulário/placeholder */
9 font-family: Montserrat;
10 font-size: var(--Font-size-Placeholder, 16px);
11 font-style: normal;
12 font-weight: var(--Font-weight-Placeholder, 400);
13 line-height: var(--Line-height-Placeholder, 24px);
14 /* 150% */
15 background: unset;
16 border: 0;
17 width: 100%;
18 text-align: left;
19 }
20
21 .ssp-new-emed__conheca-nossas-escolas-filter-content .ssp-new-emed__filtro-select-content .select-dropdown .dropdown-content {
22 position: absolute;
23 z-index: 1000;
24 }
25
26 .ssp:not(.liferay-instance) .select-conheca-nossas-escolas .dropdown-content input:hover {
27 background-color: #ddd !important;
28 }
29
30 .select-conheca-nossas-escolas .dropdown-content label:hover{
31 background: unset !important;
32 }
33
34</style>
35
36<#assign prefix = "ssp" />
37 <#assign defaultImage = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTuyJZ_Ky8o9kn0wiBy4mp5-3sb7xei_WudTL_3Jo6yvWmzQHuK&s" />
38 <#assign groupId = themeDisplay.getSiteGroupId()>
39
40 <#assign normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer") />
41
42<div class="ssp-new-emed__conheca-nossas-escolas-filter-content">
43 <h3 class="filter-title">Selecione a escola de interesse:</h3>
44 <div class="ssp-new-emed__filtro-select-content">
45 <div class="select-dropdown select-conheca-nossas-escolas" id="checkboxDropdown">
46 <button type="button" id="btn-combolist" role="combobox" aria-autocomplete="list"
47 aria-owns="checkboxOptions" aria-label="Selecione uma escola" class="">
48 <span>Selecionar</span> <i aria-hidden="true" class="fa-regular fa-chevron-down"></i>
49 </button>
50 <ul class="dropdown-content" role="listbox" aria-expanded="false" aria-multiselectable="true"
51 aria-orientation="vertical" tabindex="0" id="checkboxOptions">
52
53 <#assign unidades = []/>
54
55 <#list entries?reverse as entry>
56
57 <#assign renderer = entry.getAssetRenderer() />
58 <#assign document = saxReaderUtil.read(renderer.getArticle().getContent()) />
59 <#assign rootElement = document.getRootElement() />
60 <#assign journalArticle = renderer.getArticle() />
61
62 <#-- Get fields -->
63
64 <#-- Nome da unidade -->
65 <#assign xPathSelector_nome = saxReaderUtil.createXPath("dynamic-element[@field-reference='nomeUsualUnidade']")>
66 <#assign nomeUnidade = xPathSelector_nome.selectSingleNode(rootElement).getStringValue()>
67
68 <#assign xPathSelector_codigoUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='codigoUnidade']")>
69 <#assign codigoUnidade = xPathSelector_codigoUnidade.selectSingleNode(rootElement).getStringValue()?trim>
70
71 <#if nomeUnidade?? >
72 <#assign nome = nomeUnidade >
73 <#else>
74 <#assign nome = "" >
75 </#if>
76
77 <#-- Nome da unidade -->
78 <#assign xPathSelector_nomeUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='nomeUnidade']")>
79 <#assign nomeUnidade = xPathSelector_nomeUnidade.selectSingleNode(rootElement).getStringValue()>
80
81 <#-- Nome da unidade -->
82 <#assign xPathSelector_linkAgendarVisita = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkAgendarVisita']")>
83 <#assign linkAgendarVisita = xPathSelector_linkAgendarVisita.selectSingleNode(rootElement).getStringValue()>
84
85 <#assign xPathSelector_codigoUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='codigoUnidade']")>
86 <#assign codigoUnidade = xPathSelector_codigoUnidade.selectSingleNode(rootElement).getStringValue()?trim>
87
88 <#assign
89
90 xPathSelectorInfraestruturaUnidadeFieldSet = saxReaderUtil.createXPath("dynamic-element[@field-reference='InfraestruturaUnidadeFieldSet']")
91
92 infraestruturaUnidade = xPathSelectorInfraestruturaUnidadeFieldSet.selectSingleNode(rootElement)
93 <#-- Valor de Link tour -->
94 xPathSelectorlinkTour360 = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkTour360']")
95 linkTour360 = xPathSelectorlinkTour360.selectSingleNode(infraestruturaUnidade).getStringValue()?trim
96
97 />
98
99 <#-- Rua -->
100 <#assign xPathSelector_enderecoUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='enderecoUnidade']")>
101 <#assign enderecoUnidade = xPathSelector_enderecoUnidade.selectSingleNode(rootElement).getStringValue()?trim>
102
103 <#if enderecoUnidade?? >
104 <#assign endereco = enderecoUnidade >
105 <#else>
106 <#assign endereco = "" >
107 </#if>
108
109 <#-- número -->
110 <#assign xPathSelector_numEnderecoUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='numEnderecoUnidade']")>
111 <#assign numeroUnidade = xPathSelector_numEnderecoUnidade.selectSingleNode(rootElement).getStringValue()?trim>
112
113 <#if numeroUnidade?? >
114 <#assign numero = numeroUnidade >
115 <#else>
116 <#assign numero = "" >
117 </#if>
118
119 <#-- Bairro -->
120 <#assign xPathSelector_bairroUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='bairroUnidade']")>
121 <#assign bairroUnidade = xPathSelector_bairroUnidade.selectSingleNode(rootElement).getStringValue()?trim>
122
123 <#if bairroUnidade?? >
124 <#assign bairro = bairroUnidade >
125 <#else>
126 <#assign bairro = "" >
127 </#if>
128
129 <#-- Cidade -->
130 <#assign xPathSelector_cidadeUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='cidadeUnidade']")>
131 <#assign cidadeUnidade = xPathSelector_cidadeUnidade.selectSingleNode(rootElement).getStringValue()?trim>
132
133 <#if cidadeUnidade?? >
134 <#assign cidade = cidadeUnidade >
135 <#else>
136 <#assign cidade = "" >
137 </#if>
138
139 <#assign enderecoCompleto = enderecoUnidade + ", " + numeroUnidade + ", " + bairroUnidade + ", " + cidadeUnidade >
140
141
142 <#-- Região da unidade -->
143 <#assign xPathSelector_regiaoUnidade = saxReaderUtil.createXPath("dynamic-element[@field-reference='codRegiaoUnidade']")>
144 <#assign regiaoUnidadeUnidade = xPathSelector_regiaoUnidade.selectSingleNode(rootElement).getStringValue()>
145
146 <#if regiaoUnidadeUnidade?contains("I") >
147
148 <#assign regiaoUnidadeUnidade = "Interior" >
149
150 <#elseif regiaoUnidadeUnidade?contains("C")>
151
152 <#assign regiaoUnidadeUnidade = "Capital" >
153
154 <#elseif regiaoUnidadeUnidade?contains("GS")>
155
156 <#assign regiaoUnidadeUnidade = "Grande São Paulo" >
157
158 <#else>
159 <#assign nome = "" >
160 </#if>
161
162 <#-- Get no campo repeatable -->
163
164 <#assign infraItemRepeatableNode = document.getRootElement().selectNodes("//dynamic-element[@field-reference='infraUnidadeItemFieldSet']") />
165 <#assign unidadesInfraImagensUrl = []>
166 <#-- Lista de itens -->
167 <#list infraItemRepeatableNode as item>
168
169 <#-- Imagem -->
170 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='fotoInfraitem']")>
171
172 <#assign imagemStr = xPathSelector.selectSingleNode(item).getStringValue()>
173
174 <#-- get info imagem -->
175 <#if imagemStr?contains("{") >
176 <#assign
177
178 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
179 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
180 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
181 dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
182 imagemInfraDescricao = imagemJson.get('alt')
183 fileEntry = dl.getFileEntry(imagemId)>
184
185
186 <#assign imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)>
187
188
189 <#else>
190 <#assign imagemUrl = "">
191 </#if>
192
193 <#if item?counter == 6>
194 <#break>
195 <#else>
196 <#assign unidadesInfraImagensUrl = unidadesInfraImagensUrl + [{"imagemUrl" : imagemUrl}]>
197 </#if>
198
199 </#list>
200
201 <#-- Imagem -->
202
203 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='imagemUnidade']")>
204
205 <#assign imagemStr = xPathSelector.selectSingleNode(rootElement).getStringValue()>
206
207 <#if imagemStr?contains("classPK") >
208 <#assign
209 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
210 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
211 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
212 dLURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
213 fileEntry = dl.getFileEntry(imagemId)
214 imagemUrl = dLURLHelper.getImagePreviewURL(fileEntry, themeDisplay)
215 />
216 <#else>
217 <#assign imagemUrl = "">
218 </#if>
219
220 <#assign unidades = unidades + [{
221 "nomeUnidade": nomeUnidade,
222 "nome": nome,
223 "codigoUnidade" : codigoUnidade,
224 "regiaoUnidadeUnidade" : regiaoUnidadeUnidade,
225 "imagemUrl" : imagemUrl,
226 "enderecoCompleto" : enderecoCompleto,
227 "linkTour360" : linkTour360,
228 "unidadesInfraImagensUrl" : unidadesInfraImagensUrl,
229 "linkAgendarVisita" : linkAgendarVisita,
230 "urlUnidade" : "/${journalArticle.getUrlTitle()}"
231 }]>
232
233 </#list>
234 </ul>
235 </div>
236 </div>
237</div>
238<div class="ssp-new-emed__conheca-nossas-escolas-info-unidade-content-grid" aria-live="polite">
239 <!-- Esse box deve ser mostrado quando o select está vazio -->
240 <div class="ssp-new-emed__conheca-nossas-escolas-info-unidade-content wireframe d-none"
241 aria-label="Marcação de espaço para carregamento das unidades e suas informações">
242 <div class="bg-backdrop"></div>
243
244 <div class="box-slider-img">
245 <div class="link-tour-360"></div>
246 <div class="slider-items"></div>
247 <div class="dots-content">
248 <span></span>
249 <span></span>
250 <span></span>
251 <span></span>
252 <span></span>
253 <span></span>
254 </div>
255 </div>
256 <div class="box-info-unidade">
257 <div class="box-info-unidade__header">
258 <div class="box-info-unidade__header-regiao"></div>
259 <div class="box-info-unidade__header-nome"></div>
260 <address class="box-info-unidade__header-endereco"></address>
261 </div>
262 <div class="box-info-unidade__body">
263 <div></div>
264 <ul>
265 <li>
266 <span></span>
267 </li>
268 <li>
269 <span></span>
270 </li>
271 <li>
272 <span></span>
273 </li>
274 <li>
275 <span></span>
276 </li>
277 <li>
278 <span></span>
279 </li>
280 <li>
281 <span></span>
282 </li>
283
284 </ul>
285 </div>
286 <div class="box-info-unidade__footer">
287 <span></span>
288 <span></span>
289 </div>
290 </div>
291 </div>
292
293 <div class="ssp-new-emed__conheca-nossas-escolas-info-unidade-content valid d-none">
294 <div class="box-slider-img" aria-hidden="true">
295
296 <div class="link-tour-360">
297 <i class="fa-sharp fa-solid fa-route"></i>
298 <a class="" target='_blank' href="#">
299 Tour 360º
300 </a>
301 </div>
302
303 <!-- esse é bloco onde a imagens devem ser inseridas para o slider -->
304 <div class="slider-items bloco-template d-none">
305 <img src="./src/img/bg-header.png" alt="">
306 <img src="./src/img/bg-header.png" alt="">
307 <img src="./src/img/bg-header.png" alt="">
308 <img src="./src/img/bg-header.png" alt="">
309 <img src="./src/img/bg-header.png" alt="">
310 </div>
311
312 </div>
313 <div class="box-info-unidade">
314 <div class="box-info-unidade__header">
315 <h3 class="box-info-unidade__header-regiao">Capital</h3>
316 <h3 class="box-info-unidade__header-nome">Nações Unidas</h3>
317 <address class="box-info-unidade__header-endereco">Av. Engenheiro Eusébio Stevaux, 823<br>
318 Santo Amaro, São Paulo, SP, 04696-000</address>
319 </div>
320 <div class="box-info-unidade__body">
321 <h4>Cursos do Ensino Médio Técnico</h4>
322 <ul>
323 <li>
324 <a href="#" target="_blank">Administração</a>
325 </li>
326 <li>
327 <a href="#">Administração</a>
328 </li>
329 <li>
330 <a href="#">Administração</a>
331 </li>
332 <li>
333 <a href="#">Administração</a>
334 </li>
335 <li>
336 <a href="#">Administração</a>
337 </li>
338 </ul>
339 </div>
340 <div class="box-info-unidade__footer">
341 <a class="ssp-new-emed__btn-cta mais-sobre btn-blue-400" target='_blank' href="#">Mais sobre a escola</a>
342 <a class="ssp-new-emed__btn-cta agendar-visita btn-blue-400-outline" target='_blank' href="#">Agendar visita</a>
343 </div>
344 </div>
345 </div>
346</div>
347
348<script>
349
350 // const btnComboListConheca = document.getElementById('btn-combolist');
351 const btnComboListConheca = document.querySelectorAll('.select-conheca-nossas-escolas button');
352 const dropdownContent = document.getElementById('checkboxOptions');
353 let optionList = dropdownContent.querySelectorAll('li input');
354 let firstOptionList = optionList[0];
355 var idCategoryByCodeUnit;
356 let map = new Map();
357 const tipoCursoNome = "Ensino Médio Técnico";
358 let unidades = []
359
360 btnComboListConheca.forEach((comboList) => {
361 comboList.addEventListener('click', (e) => {
362 let parentDropdownContent = comboList.parentElement
363 let dropdownContent = parentDropdownContent.querySelector('.dropdown-content')
364 e.target.classList.toggle('btn-active');
365 toggleDropdown(dropdownContent);
366 });
367 })
368
369 function toggleDropdown(dropdownContent) {
370 var isExpanded = dropdownContent.getAttribute('aria-expanded') === 'true';
371 dropdownContent.setAttribute('aria-expanded', !isExpanded);
372
373 if (!isExpanded) {
374 dropdownContent.classList.add('dropdown-active'); // Ensure class is added before focusing
375 } else {
376 dropdownContent.classList.remove('dropdown-active');
377 }
378 }
379
380 $(document).ready(function() {
381
382 unidades = [<#list unidades as unidade>{ "nomeUnidade" : "${unidade.nomeUnidade?trim}", "nome" : "${unidade.nome?trim}","codigoUnidade" : "${unidade.codigoUnidade}", "regiaoUnidadeUnidade" : "${unidade.regiaoUnidadeUnidade}", "imagemUrl" : "${unidade.imagemUrl}", "enderecoCompleto" : "${unidade.enderecoCompleto}", "unidadesInfraImagensUrl" : [<#list unidade.unidadesInfraImagensUrl as unidadeUrl>"${unidadeUrl.imagemUrl}",</#list>], "urlUnidade" : "${unidade.urlUnidade}", "linkAgendarVisita" : "${unidade.linkAgendarVisita?trim}", "linkTour360" : "${unidade.linkTour360?trim}"}, </#list>]
383 $(".wireframe").removeClass("d-none");
384 preencheSelect();
385
386 });
387
388 function preencheSelect(){
389 let unidadesSelect = ajustaUnidades(unidades);
390 let $listSelect = $(".select-conheca-nossas-escolas").find(".dropdown-content")
391 const groupId = "${groupId}"
392 $listSelect.empty()
393
394 for (const regiao in unidadesSelect) {
395 if (regiao) {
396 $listSelect.append('<li role="option"><label><strong>'+regiao+'</strong></label></li>')
397
398 unidadesSelect[regiao].forEach(item => {
399 $listSelect.append('<li role="option"><input type="button" data-codUnidade="'+item.codigoUnidade+'" value="'+item.nome+'"></li>')
400 });
401 }
402 }
403
404 $('#checkboxOptions li input').on('click', function(event) {
405
406 $(".wireframe").addClass("d-none");
407 let $btnSelect = $(".select-conheca-nossas-escolas button")
408 if($btnSelect.hasClass("btn-active"))
409 $(".select-conheca-nossas-escolas button").click()
410
411 var selectedId = $(this).data("codunidade");
412 $btnSelect.find("span").text($(this).val())
413 var selectedItem = unidades.find(item => item.codigoUnidade == selectedId);
414
415 var urlSearchCategories = '/o/senac-content-services/categoriaPorCodUnidade/{groupId}/{codUnidade}';
416 var urlSearch = urlSearchCategories.replace('\{groupId\}', groupId)
417 .replace('\{codUnidade\}', selectedId);
418 // Outras ações que você deseja executar ao mudar a seleção
419
420 $.ajax({
421 url : urlSearch,
422 async: false,
423 method : 'get'
424 }).done(
425 function(data) {
426 idCategoryByCodeUnit = '';
427 try{
428 idCategoryByCodeUnit = JSON.parse(data);
429 }catch(err){
430 idCategoryByCodeUnit = data;
431 }
432
433 $.ajax({
434 url : '/o/senac-content-services/cursosPorCategoria/'
435 + groupId + '/'
436 + idCategoryByCodeUnit +'/'
437 + tipoCursoNome + '/-1/-1',
438 type : 'get'
439 }).done(function(cursosPorUnidade) {
440
441 cursosPorUnidade = JSON.parse(cursosPorUnidade);
442
443 listaCursos = cursosPorUnidade.cursos;
444
445 //Se nao retornou cursos, deve esconder a div da categoria
446 if(cursosPorUnidade.total != 0){
447 unidades.find(item => item.codigoUnidade == selectedId).cursos = cursosPorUnidade.cursos;
448 }
449
450 mostrarUnidade(unidades.find(item => item.codigoUnidade == selectedId))
451 });
452
453
454
455 });
456
457 });
458
459
460 }
461
462 function mostrarUnidade(unidade){
463
464 let $container = $(".valid")
465 let $sliderUnidades = $container.clone(".bloco-template")
466 $container.find(".link-tour-360 a").attr("href", unidade.linkTour360)
467 $(".bloco").remove();
468 $sliderUnidades.empty()
469 $sliderUnidades.removeClass();
470 $sliderUnidades.addClass("slider-items bloco")
471 for(unidadeImg of unidade.unidadesInfraImagensUrl){
472 $sliderUnidades.append("<img src="+unidadeImg+" alt=''>")
473 }
474 $(".bloco-template").after($sliderUnidades)
475 slickSlider();
476
477 $container.find(".box-info-unidade__header-regiao").text(unidade.regiaoUnidadeUnidade);
478 $container.find(".box-info-unidade__header-nome").text(unidade.nomeUnidade);
479 $container.find(".box-info-unidade__header-endereco").text(unidade.enderecoCompleto);
480
481 let $cursosList = $container.find(".box-info-unidade__body ul");
482 $cursosList.empty()
483 for(let curso of unidade.cursos) {
484 $cursosList.append("<li><a href="+unidade.urlUnidade+curso.url+" target='_blank'>"+curso.title+"</a></li>")
485 };
486
487 $container.find(".mais-sobre").attr("href", unidade.urlUnidade + "/ensino-medio-tecnico")
488 $container.find(".agendar-visita").attr("href", unidade.linkAgendarVisita)
489 $container.removeClass("d-none");
490
491 }
492
493 function slickSlider(){
494 $('.bloco').slick({
495
496 slidesToShow: 1,
497 slidesToScroll: 1,
498 autoplay: true,
499 autoplaySpeed: 5000,
500 variableWidth: true,
501 infinite: true,
502 dots: true,
503 arrows: false,
504 prevArrow: '<a href="#" class="slick-prev"><i class="fas fa-chevron-left"></i></a>',
505 nextArrow: '<a href="#" class="slick-next"><i class="fas fa-chevron-right"></i></a>',
506 responsive: [
507 {
508 breakpoint: 1200,
509 settings: {
510 slidesToShow: 1,
511 slidesToScroll: 1,
512
513 }
514 },
515 {
516 breakpoint: 768,
517 settings: {
518 slidesToShow: 1,
519 slidesToScroll: 1,
520 centerPadding: 0,
521
522
523 }
524 }
525
526 ]
527
528 });
529
530
531 }
532
533 function ajustaUnidades(data){
534 return data.reduce((acc, item) => {
535 // Obter a categoria atual
536 const regiao = item.regiaoUnidadeUnidade;
537
538 // Se a categoria não existir no acumulador, crie uma nova array para ela
539 if (!acc[regiao]) {
540 acc[regiao] = [];
541 }
542
543 // Adicione o item à categoria correspondente
544 acc[regiao].push(item);
545
546 return acc;
547 }, {});
548 }
549
550
551</script>
Como é estudar com a gente?
Confira os depoimentos de nossos alunos e alunas.
Maria Clara Ferraz, 17 anos

Maria Clara Ferraz, 17 anos
2º ano, Ensino Médio Técnico em Multimídia
Todos são acolhedores, desde a secretaria até a coordenação. Gosto muito de estudar aqui, os professores dialogam muito com os alunos e criam um ambiente leve que facilita o aprendizado.
Katharina Szabo, 17 anos

Katharina Szabo, 17 anos
3º ano, Ensino Médio Técnico em Administração
Estudar no Senac foi um sonho realizado que eu não sabia que tinha, é muito satisfatório estar lá! O apoio, suporte e autonomia que passam faz muita diferença para o nosso desenvolvimento.
Lorena Maziero, 16 anos

Lorena Maziero, 16 anos
1º ano, Ensino Médio Técnico em Marketing
A metodologia é muito diferente de outras escolas! Tem sido incrível fazer o Projeto de Vida, sinto que é um momento de troca, que auxilia no meu desenvolvimento profissional e pessoal.
Raul Gomes, 17 anos

Raul Gomes, 17 anos
3º ano, Ensino Médio Técnico em Multimídia
Acho que um diferencial são os laboratórios com equipamentos de última geração. As salas de aula fogem do tradicional, a gente se sente confortável para estudar, é sensacional!
Dúvidas frequentes
Clique no assunto e conheça as dúvidas mais frequentes.
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getContent()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 1, \"ctCollectionId\": 0, \"uuid\": \"476fecba-2952-e4cd-b13d-451470df6d00\", \"id\": 105228705, \"resourcePrimKey\": 87419040, \"groupId\": 20125, \"companyId\": 20102, \"userId\": 4513701, \"userName\": \"Livia Juliana Marques Cunha de Velasco\", \"createDate\": \"Thu Aug 15 20:52:56 GMT 2024\", \"modifiedDate\": \"Tue Jun 24 14:37:09 GMT 2025\", \"externalReferenceCode\": \"87419038\", \"folderId\": 87385060, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/42114/35992157/87385060/\", \"articleId\": \"87419038\", \"version\": 1.9, \"urlTitle\": \"matricula-1-ano-duplicar-9-1\", \"DDMStructureKey\": \"87384926\", \"DDMTemplateKey\": \"\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": \"Thu Aug 15 18:16:00 GMT 2024\", \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 62653777, \"statusByUserName\": \"Juliana Penna Folhadella\", \"statusDate\": \"Tue Jun 24 14:37:09 GMT 2025\"}"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign document = saxReaderUtil.read... [in template "20102#20129#87531938" at line 5, column 5] ----
1<nav class="ssp-new-emed__duvidas-topic-content" aria-label="Dúvidas por tópicos">
2<#list entries?reverse as entry>
3
4 <#assign renderer = entry.getAssetRenderer() />
5 <#assign document = saxReaderUtil.read(renderer.getArticle().getContent()) />
6 <#assign rootElement = document.getRootElement() />
7
8 <#-- Nome -->
9 <#assign xPathSelector_nome = saxReaderUtil.createXPath("dynamic-element[@field-reference='nomeTopico']")>
10 <#assign nomeTopico = xPathSelector_nome.selectSingleNode(rootElement).getStringValue()?trim>
11
12
13 <button id="tab${entry?counter}" role="tab" aria-expanded="false" aria-selected="false" aria-controls="panel1" type="button">${nomeTopico}</button>
14
15
16</#list>
17</nav>
18
19<div>
20
21<#list entries?reverse as question>
22
23 <#assign renderer = question.getAssetRenderer() />
24 <#assign document = saxReaderUtil.read(renderer.getArticle().getContent()) />
25 <#assign rootElement = document.getRootElement() />
26
27 <#-- itens -->
28 <#assign xPathSelector_itens = saxReaderUtil.createXPath("dynamic-element[@field-reference='itemDuvida']")>
29 <#assign itens = xPathSelector_itens.selectNodes(rootElement)>
30 <div class="ssp-new-emed__duvidas-topic-content-group-items" role="tabpanel" id="panel${question?counter}" aria-labelledby="tab${question?counter}" class="tabpanel">
31 <#list itens as item>
32
33 <#-- item -->
34 <#assign xPathSelector_nome = saxReaderUtil.createXPath("dynamic-element[@field-reference='itemPergunta']")>
35 <#assign pergunta = xPathSelector_nome.selectSingleNode(item).getStringValue()?trim>
36
37 <#assign xPathSelector_descr = saxReaderUtil.createXPath("dynamic-element[@field-reference='itemResposta']")>
38 <#assign resposta = xPathSelector_descr.selectSingleNode(item).getStringValue()?trim>
39
40
41 <details>
42 <summary>${pergunta}</summary>
43 ${resposta}
44 </details>
45
46
47 </#list>
48 </div>
49
50
51
52
53
54</#list>
55
56
57</div>