Information Technology: Programmer-Analyst

CampusStart DateTuition/Fees
Fredericton September 2023 (Blended Delivery) Domestic | International
Saint JohnSeptember 2023 (Blended Delivery) Domestic | International

Program Overview

From the software and apps we use every day to the video games we play, computer technology dominates industries. Computers can do just about anything. Programmer Analysts are the specialists who develop the software and write the programs that make systems and software work. Programmer Analysts speak multiple languages such as C#, Javascript and Java, and we use our knowledge to constantly evolve what technology can do. Imagine being the person behind the next mobile app or business system. If you love technology and are interested in programming and problem solving, you have the essential elements to code yourself a great career as a Programmer Analyst.
In our Information Technology: Programmer Analyst program, you'll design and develop software systems and learn how to apply them in a business-oriented environment. You'll learn how to write and test code and optimize systems so that they perform at their best. Upon graduation, you'll also complete a work practicum at an employer's site, allowing you to get hands-on experience beyond the classroom.  Enroll today and pursue an in-demand career where you can write your own program for success.


The requirements for this diploma program may be achieved within two academic years of full-time study.

Admission Requirements

    Profile A

  • High School Diploma or Adult High School Diploma or GED Diploma of High School Equivalency or Essential Skills Achievement Pathway: Post-Secondary Entry High School Diploma

    NB Francophone High School Math Equivalencies
    International Student Admission Equivalencies

    Career Possibilities

    NBCC's Information Technology graduates are attractive to organizations at all levels of the IT field in New Brunswick and beyond. Follow-up surveys with graduates show a relevant employment rate of more than 90%. Programmer Analysts find employment quickly in diverse areas, including IT, manufacturing, government, and education. You could work for computer software development firms, information technology consulting firms, or information technology units throughout the private and public sectors.
    There are many different opportunities under the Programmer Analyst umbrella. You may choose to specialize in a specific programming language or industry, such as interactive media. Other career paths include education and training roles, teaching end-users how to use the software and systems you develop.

    Find career possibilities related to this program in Career Coach.

    Specific Considerations

    Technology Requirements
    NBCC is a connected learning environment. All programs require a minimum specification, including access to the internet and a laptop. Your computer should meet your program technology requirements to ensure the software required for your program operates effectively. Free wifi is provided on all campuses.

    Areas of Study

    • Computer Hardware
    • Operating Systems
    • Networking Basics
    • Microsoft Office™
    • Web Page Design
    • Written and Oral Communications
    • Structured Programming in Traditional, Event-driven, and Object-oriented Environments, including: Visual C#™ and Java™
    • Object Oriented Analysis and Design
    • Database Design and Implementation
    • Group and Individual Software Development Activities
    • Business Fundamentals and Entrepreneurship
    • Mechatronics Principles
    • Project Management
    • Employability Skills
    • Work Practicum

    Program Courses

    Courses are subject to change.

    This course is designed to explore the variables involved in the start-up and sustainability of entrepreneurial ventures as it relates to your chosen field of study. The scope of the course ranges from idea generation to explore new market opportunities to developing strategies to gain and retain clientele. Knowledge is applied through the use of case studies and inter-active exercises.

    In this course, students acquire fundamental knowledge of computer systems. They learn key hardware and peripheral components, their properties, functions, compatibility, inter-connectivity, and inter-operability. They learn the safety and customer service standards associated with computer assembly and service. They set up basic computer systems that meet user requirements by selecting the appropriate types of hardware, cables/connectors, and peripheral devices. In the successive course, students install, configure, and troubleshoot these systems.

    This course introduces students to the fundamentals features and functions of integrated development environments and source code management tools to prepare them for the building of software applications. These skills are further developed as learners advance through the program. As part of this course, students learn the key concepts and principles of operating systems so they can better understand the relationship between it and the programming and application development environment. They also learn the very basics of Word Processing software in order to generate reports/deliverables relating to their projects.


    • PROG1017G

    Students will learn to write a variety of technical documents and business correspondence suitable to a specific audience and purpose as well as learn how to conduct research and document sources.

    This course teaches students how to create documents that are organized, unified, and coherent.

    The students learn how to write SQL statements to create and query a database with SQL Data Definition Language (DDL) and SQL Data Manipulation Language (DML). Coverage includes commands to insert, update, and delete database data and construct complex queries using joins, conditional SQL statements, and aggregate functions.

    The students learn how to write SQL stored procedures and triggers to create and maintain data in a database. Coverage includes various parameter types, concurrency, locking issues and transactions.


    • DATA1024

    This course introduces the concept of relational database design and the fundamental skills needed to develop a database and its related application. The course deals with the physical, logical, and managerial aspects of database design. Additionally, current theoretical concepts are put into practice using current database architectures and technology.

    This course introduces the students to data retrieval and visualization techniques. Progression is made from simple lists to summary reports and drill downs. Emphasis is placed on creating visualizations for basic to advanced applications.


    • DATA1025

    This course presents math concepts that are relevant to the information systems field. Topics include review of number systems, computer arithmetic, sets and relations, matrices, and linear equations. In addition, the course introduces elementary statistics, including descriptive statistics, probability distributions and sampling.

    This course introduces students to the use of microcontroller platforms to control electromechanical devices.    Students will integrate electronic and mechanical components to produce a device with an intended purpose, and then develop algorithms and programs that control the device to expected specifications.


    • PROG1017G

    This course introduces the concept of web development and provides the student with the knowledge to develop a well-designed Web site through the use of HTML and CSS.

    Responsive Web Design is a web design approach aimed at providing optimal viewing across a wide variety of devices from desktop computers to mobile devices. In this course, students gain experience in creating responsive web designs that meet specifications and are capable of adapting to any device on which they are displayed. Students learn how to use flexible grids, layouts, images and CSS media queries to make their designs responsive. Testing methodologies and best practices in the design of mobile web applications are also discussed.


    • MULT1083

    Linux adoption continues to rise world-wide as individual users, government entities and industries ranging from automotive to space exploration embrace open source technologies. This course covers the fundamentals of operating in a LINUX based operating system while in the command line environment.


    Learners are challenged to apply human relations and interpersonal communications theory to workplace-based and real life situations. They use a problem solving perspective in suggesting and carrying out appropriate communication strategies and techniques.

    This course will introduce students to job search techniques.

    This course provides an introduction to the meaning of community service.  Students learn how community service can enhance a student’s educational experience, personal growth, employability, and civic responsibility. Students participate in one day of volunteering to enhance their understanding of civic responsibility and to help the New Brunswick Community College realize its vision of transforming lives and communities. 

    This course introduces the student to the fundamentals of application design and programming. Students learn to use a development framework, interface and associated toolset for rapid application development. The course covers introductory elements of event driven programming including forms design, extensive use of controls, properties, methods, events, selection structures, loops, sub procedures, and functions.

    This course introduces students to alternative technologies, applications, or methodologies that are not part of the regular curriculum. The course could serve to enhance or supplement existing training in response to cutting edge technologies or industry demands. At the instructor’s discretion, the course could be presented as either an instructor-directed or student-directed learning experience. Due to the variable nature of this course, exams are discretionary.

    This course introduces the students to database programming.   As an essential part of understanding and building user applications, students learn to connect and update the data in a database.


    • DATA1024
    • PROG1311C

    In this course, students study the JavaScript programming language and become familiar with some fundamental programming concepts.


    • MULT1083

    Students learn the comprehensive steps required for building dynamic, data-driven, interactive server-side websites with PHP. A variety of practical real world projects drive the learning.


    • DATA1025

    This course is an opportunity for students to gain practical experience in system development.  Students apply systems design theory and computer programming skills to complete a small systems development project under the supervision of an instructor.  The student’s progress is closely monitored by the instructor using intermittent technical reviews and manual submissions. Students program, test, document and deliver a realistic, small-scale system with components written in a variety of languages (Visual Studio .Net, Java, and/or another approved programming language) against an approved Relational Database Management System (RDMS). Emphasis is placed upon individual initiative, resourcefulness and self-discipline to build and implement this project from start to finish.


    • SYST1018C
    • PROG1121K
    • PROG1313B
    • DATA1025

    The purpose of the practicum is to support and enhance each student’s educational experience by making learning experiential. Through an off campus placement, students gain valuable related work experience under the supervision of an experienced professional. Students apply the knowledge gained and skills developed through course work in a real life work setting, solving real world problems while working in project-based team environments.  As part of their practicum placement, students are required to document and present their experiences, outcomes, and learnings. The practicum experience can help guide students on their career paths while experiencing first-hand the conditions and expectations of the workplace. 


    The purpose of this course is to introduce students to the fundamentals of Java programming, program design and problem solving. Students gain practical experience editing, compiling, and executing Java applications using object oriented concepts. Students learn language constructs and syntax, collections, generics, iterators and enums.


    • PROG1311C

    Mobile devices have become an important part of our daily lives. In this course, students are introduced to Android application programming as a solid foundation for designing, creating and deploying applications into the Google Play Store. Topics include views, activities, intents, broadcast receivers, and content providers. Location-based services, sensors and app deployment are also covered.


      This course introduces the student to the higher-level concepts of object-oriented programming. The course covers introductory and advanced elements of object-oriented programming including inheritance, interfaces, polymorphism, encapsulation, abstraction and aggregation. The methodology of architecting an object-oriented programming solution aimed at solving a business problem is discussed.


      • PROG1017G

      This course is designed to enable students to apply advanced Java programming concepts to develop and deploy enterprise applications. 


      • PROG1303E

      This course builds upon the introduction to JavaScript language and fundamental programming concepts.  Integrated with their knowledge of responsive web design and app construction, students develop advanced skills in JavaScript and popular scripting libraries to use for web and mobile development.     


      • MULT1170
      • PROG1128
      • PROG1311C

      This course introduces students to fundamental networking concepts and technologies. Students then use this knowledge, coupled with programming knowledge, to design and write software applications that communicate over computer networks.


      • PROG1017G

      This course provides students with the knowledge and skills necessary to plan, coordinate, implement and evaluate a project within a team environment. Students learn effective project management techniques that allow them to monitor all work activities and ensure a quality product while remaining within budget and meeting all contract requirements.

      A safe and healthy workplace is the responsibility of the employer and the employee. This course introduces students to the importance of working safely and addresses how employers and employees can control the hazards and risks associated with the workplace. Students will also learn about the roles and responsibilities of key stakeholders including WorkSafeNB, the employer and the employee in ensuring workplaces are safe.

      This course provides students with the knowledge and skills necessary to apply the fundamentals of analysis, design and the development process using an object-oriented approach, including Rational Unified Process (RUP) and Unified Modeling Language (UML).

      This advanced level course features the study and practical application of advanced, structured Information Systems development skills. The Student is given a project in case study form to apply analysis and design theory, concepts and skills. This course stops just short of the actual coding, testing and implementation activities.

      A role-playing approach is used in dealing with realistic complexity in the development of Business Information Systems. Throughout the case study, there is heavy emphasis upon teamwork, problem-solving and communications skills.


      • PROJ1029D
      • SYST1017
      • DATA1028E

      User-interface design is the process of creating systems that are not only technically functional but also user-focused, with the emphasis on simplicity and efficiency. Here the Business Analyst’s role is to ensure that the design serves not only the needs of the user but also the goals and limitations of the organization. The purpose of this course is to provide learners with the skills and techniques to contribute to the design of user-focused graphical or web-based interface(s). Course concepts and content are applied through the use of real-world case studies.

      In this course, students gain exposure to the software testing process with a focus on product quality subsequent to unit testing. Software testing is examined from the perspective of the stakeholders involved.

      NOC Codes

      2174 - Computer programmers and interactive media developers

      Articulation Agreements

      Institution: University of New Brunswick Saint John - Faculty of Business
      Articulation Period:
      Information: Bachelor of Applied Management Degree
      NBCC graduates of any 2 year diploma program with a GPA of 70% or greater receive 2 years full credit toward this degree and will be eligible to enter year 3 of the 4 year Bachelor of Applied Management (BAM) program.


      Institution: University of New Brunswick - Bachelor of Computer Science
      Articulation Period:
      Information: Graduates of the NBCC Programmer Analyst two-year diploma program who have attained an  average of 70% or higher and a minimum grade of 60% in each course for which they seek transfer credit and they are in good standing will receive up to 61 credits towards a Bachelor of Science in Computer Science.

      Disclaimer: This web copy provides guidance to prospective students, applicants, current students, faculty and staff. Although advice is readily available on request, the responsibility for program selection ultimately rests with the student. Programs, admission requirements and other related information is subject to change.

      Ask us

      Career Coach