Programming & Mobile Applications

Everyone has a passion, and some people love technology! Do you love developing mobile apps, video games or working with robotics equipment?  If so, then the Programming and Mobile Applications program might be right up your alley! 

The State of Michigan has a shortage of IT professionals. Why not turn your interests into a high-paying information technology (IT) job or career?  As part of this program, students will gain skills that both colleges and employers require you to have.  When it's time to take the knowledge you have learned at the Wilson Talent Center into the real world, you'll be ready to compete in some of today's most exciting careers such as game designer, application developer, robotics engineer or website developer to name a few.

All skills, projects and software used in the is class are reviewed by an advisory board of local IT experts to ensure you learn the skills you really need to be successful in the future.

View the Articulated Credit Sheet for Programming & Mobile Applications.

Our mission is to provide students with the essential knowledge, skills, and work habits to excel in their careers and future learning.

Course

Programming & Mobile Apps

National Career Cluster: Information Technology
Michigan Career Pathway: Business/Management/Marketing & Technology

Instructor                                                       

David Baker
517.244.1322

Pete Eisinger,  Instructional Assistant

Types of Credit

Fourth year math credit
½ - 1 English Language Arts credit
Elective Credit
Credit recommended by WTC awarded by sending school

Articulation Agreements

Lansing Community College
Baker College
Davenport University
Ferris State University
Washtenaw Community College

Special Requirements/Program Prerequisites

This program may be taken as a one or two year program by both juniors and seniors. The program is designed to give students marketable skills in the areas covered as well as prepare them for careers and college.  Students may return for a second year to focus their learning on their specific interest areas.

Students entering the program should demonstrate the following skills.

  • Good communication skills, including reading and writing at grade level.
  • Good attendance (no more than 2 absences each term)
  • Strong understanding of Algebra concepts
  • Positive attitude and a sincere interest in Programming and/or Robotics (no previous experience required).

Course Topics

Academic (Mathematics, Reading, Writing and Study Skills)

Students will complete assignments in class to improve their math, reading, and writing skills.  Because this class integrates math with many assignments, math credit is available (see pg 1) for most students. Math, reading and writing skills are integrated into class assignments and projects.  Study skills are taught and integrated in all assignments.  Students will learn how to apply critical thinking skills to solve problems that seem difficult at first glance.  Second year students will be part of writing composition course that focuses on content related technical writing.

Career and Job Preparation

All students have the opportunity to demonstrate their knowledge by presenting their projects and receive business feedback in our class Showcase held each spring.  The showcase is judged by a variety of IT professionals and parents are encouraged to attend.

Students create a portfolio of team and individual work which they use during job interviews. Students also create resumes, cover letters and learn how to properly complete job applications. Students explore their personal values and strengths, learning styles and abilities as they relate to their career interests.   Information technology related business visits, guest speakers and job shadows provide more information on career interests.

Students may choose to compete in Information Technology and Business skill competitions by joining our Business Professionals of America (BPA) chapter.  Students can compete in regional, state and national competitions as well as become a chapter or state officer. BPA members increase their confidence and skills by solving real business related problems.  Students will also have the opportunity to participate and compete in other organizations and competitions including, Square One, Vex Robotics or other programming competitions.

Computer Programming

Students will learn the Key Programming concepts, including Procedural Programming and Object Oriented Programming; using Java Programming Language, students will have the opportunity to learn other languages as well including C++,C#, Python and JavaScript..  As we learn the basic concepts in Procedural Programming students will get exposure to basic microprocessor design, and computer architecture. Students will learn about the Software Development Lifecycle and how to plan and manage a larger scale programming project on teams.    At the end of the year students will put what they learned together to create a project of their choice (Robotics, Game Design, Mobile Application Development, Website Design etc).

Exit Outcomes

  • Proficient use of computers and computer software.
  • Design, development and high quality of effective high quality interactive computer programs.
  • Teamwork and leadership skills.
  • Exploration of careers pertaining to student’s interests and abilities and preparation for higher education.
  • Business etiquette skills.
  • Employability skills to seek, obtain, and keep a job.

Work Based Learning Opportunities

After attaining adequate skills and knowledge in their career area, students that demonstrate employable work habits will be placed in work experiences as those positions are available.  We strive to provide students with a job shadow or work experience in the area of their career interest depending upon the availability of appropriate opportunities. Students benefit from trips to businesses, colleges, and guest speakers.

Grading Policy

We will have a strong emphasis on student self evaluation and teaching students how to become independent lifelong learners. According to studies one of the most effective ways in helping students learn is to have students constantly self evaluate themselves and drive their own learning, another is to have high expectations. Both of these will be major focuses in our class along with providing students real industry like experience including design reviews and working  on group projects.

Students final grades are composed of Problem Solving (20%), Procedures (25%), Content Growth (20%) and Work Habits (35%).

Problem Solving  20% 

Problem Solving is a key component of programming and students will provide evidence during week group meetings showing that they are applying the problem solving strategies taught in the class. As the year progresses and students have learned more, the expectations increase on what strategies students must be able to demonstrate effectively. 

Procedures 25%

The programming class will have a strong focus on teaching students on proper software development practices that not only allows them to solve problems and create programs, but to do so while developing “best practices” in the industry.  Including using proper documentation, test driven development, planning and proper use of tools such as GitHub.   Students will provide evidence during weekly group meetings that they followed these best practices (after being taught and practiced) when working on projects.  

Content Growth 25%

There is not going to be a set pace for the class and students will do daily self evaluations on what they have learned.  Everyone learns at different paces and the expectation is that everyone fully applies themselves while in class.  Content growth should come naturally if it is true and will mostly be used as a means to identify students that need additional help or support.  If students show that they are not able to apply themselves  then individualized growth goals will be set for those students and this portion of the grade will reflect success rate in meeting the goals.

Work Habits 35%

Students are graded on the following ten work habits as described in the Student/Parent Handbook.

Thirty-five percent (35%) of the student’s grade is based on the work habits below.  These habits will be evaluated daily by the students and Students will provide evidence of their progress weekly during group meetings.  

Attendance Cooperation
Safety of Work Area Self-Discipline & Responsibility

Care & Maintenance of Equipment/Work Area

Quality of Work
Good Judgement Quantity
Effort Dress, Grooming and Appearance

 

Early College with Baker of Jackson

Students will be expected complete the same assessments/or equivalent assessments for the corresponding courses at Baker College in addition to meeting satisfactory requirements of the Programming course at the Wilson Talent Center.

These courses include the following:

  • Principles of Computer Science: CS1010
  • Introduction to Programming: CS1110
  • C++ Programming: CS2150
  • Java Programming: CS2410
  • Microprocessor Electronics: CS2310

High Level Outline of typical Material Covered:

Year 1:  C++, Java

Semester 1:

  • Computer Background/foundations
  • Procedural Programming
  • Test Driven Development                                 

Semester 2:

  • Object oriented programming
  • Project management

Year 2:  (Students Returning for Year 2 and not part of the Early College can choose to follow this or go more in depth in one specific topic.)

Semester 1:

  • Logic Design
  • Microprocessor Design
  • Computer Architecture

Semester 2:

  • Computer Architecture
  • Relational Databases

Student Learning Outcomes for above Topics:

Procedural Programming

  1. Demonstrate an understanding of programming terminology and methodology.
  2. Distinguish between the different data and variable types and differentiate when each type should be used.
  3. Demonstrate the ability to perform calculations as required to meet specifications for a program.
  4. Distinguish and compare the different flow control mechanisms including the following:
  5. Differentiate between simple and structured data types, especially arrays.
  6. Organize complex computer problems into modular components using subroutines and functions.
  7. Demonstrate the ability to write and debug programs using simple input and output routines as well as interactive debugging tools if they are part of the selected computer language.
  8. Demonstrate the ability to complete a programming assignment that includes development, documentation, design, and debugging of a program.
  9. Demonstrates ability to use Exception handling and Try Catch blocks
  10. Demonstrate ability to be able to apply all of the above with both Java and C++

Test Driven Development

  1. Describe the concept of unit testing, and the benefits especially in larger projects
  2. Demonstrate development test cases for assignments based on project specifications
  3. Demonstrate how to use test cases to verify if a program work correctly
  4. Demonstrate use of unit testing before system integration

Object Oriented Programming

  1. Explain the concepts of Encapsulation, Inheritance and Polymorphism.
  2. Demonstrate the ability to create programs using the above concepts.

Project Management

  1. Explain how a Gantt Chart is used to make a bottom up schedule for a project
  2. Explain how the Agile Project management methodology can be used in software development.
  3. Demonstrate ability to manage a larger scale project using one of the above methods.
  4. Demonstrate how a Trello board or similar can be used to make an Agile board.

Logic Design

  1. Demonstrate understanding of basic logic gates and combinational logic, and truth tables
  2. Explain different numbering systems and Demonstrate converting between bases.
  3. Explain 2s compliment numbering system
  4. Demonstrate through FPGA design how to implement sequential logic to create basic applications like a calculator.
  5. Ability to read timing diagrams and explain the importance of hold and setup times
  6. Demonstrate ability to make a clock divider and counter.

Microprocessor Design

  1. Describe how software and hardware interact 
  2. Discuss how each piece of system architecture interacts with each other 
  3. Demonstrate design of microprocessor embedded design using a SOC

Computer Architecture

  1. Explain the concept of CPI and Cycle time and how they relate to performance.
  2. Explain the concept of Pipelining
  3. Demonstrate ability to write simple assembly programs.
  4. Explain the different stages of a 5 stage pipeline and be able to identify data dependencies.

Relational Databases

  1. Explore The basic structures of tables in electronic databases.
  2. Examine relational database principles, concepts and design
  3. Construct queries using SQL in DBMS
  4. Explore the role of the Database administrator
  5. Create a database structure for a specific system/problem.

Internships and Work Based-Learning

Internships and work-based learning are evaluated by the employer each term.  The student will be evaluated on both skills and work habits on an evaluation form.  This evaluation becomes a pro-rated portion of the student’s grade for the term.

Examples:
6 week internship during a 9 week marking period
2/3 of the grade = internship evaluation
1/3 of the grade=class grade

Cooperative work-based learning (unpaid or paid):
2 school days at work and 3 days in class.
2/5 of the grade = co-op evaluation by employer
3/5 of the grade = class academics grade

Virtual Mentorship – Graded same as Cooperative work-based learning

  • This is similar to Cooperative work-based learning, but students remain in the classroom and meet virtually with Mentor in the industry to work on Industry programming problems while also working on class work.

Universal Learning

The Programming and Mobile Applications program is committed to universal learning and supporting all students’ needs. Our classroom space, routines, resources, and interactions will be as inclusive as possible. Treating each other with respect, listening to each other, having an open mind and a willingness to help each other learn is crucial to universal learning.

Strategies to provide optimal learning for all students in this course include:

  • Each student can redo assignments, tests and quizzes if they are not satisfied with their first attempt.
  • Every student can move around the classroom as needed.
  • Every student has access to a copy of the teachers notes on the class web page
  • Each student will be afforded a spot in the classroom where they can learn to the best of their ability.
  • Each student will have access to peer to peer support.

Programming & Mobile Applications Virtual Visit

PDF DocumentDownload Transcript

Student Testimonials

PDF DocumentDownload Transcript

Music:
"Pixelland" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 4.0 License
creativecommons.org/licenses/by/4.0/