Courses

COP 2006 Programming I - 3 credit(s)

Sections:

    Description

    Introductory computer programming concepts and problem solving skills are learned using a modern programming language. Principles of good programming style are emphasized. This course is delivered in C++/Java unless noted otherwise.


    Prerequisite(s)

    COP 1500 for level Undergraduate with minimum grade of C

    COP 2001 Programming Methodology - 3 credit(s)

    Sections:

      Description

      Advanced computer programming concepts and problem solving are explored using a procedural programming language and software tools. Topics include pointers, dynamic memory allocation, string handling, structures, file I/O, and recursion. Includes two hours of lecture and one hour of lab per week.


      Prerequisite(s)

      COP 2006 for level Undergraduate with minimum grade of C and MAC 2312 for level Undergraduate with minimum grade of C

      COP 3003 Programming II - 3 credit(s)

      Sections:

        Description

        Students will expand on their knowledge base and skills gained from introductory programming. Topics include, but are not limited to, modularity (classes and packages); object-oriented concepts (e.g., encapsulation, inheritance, and polymorphism); error handling and exceptions; generics/templates; dynamic constructs and memory management encompassing pointer arithmetic, parameter passing, and dereferencing; and reuse of API/frameworks/libraries/packages (e.g., GUI, networking, persistence storage, and web). Relevant programming environments and tools (e.g., build tools), especially in the context of software engineering are also experienced. This course is delivered in C++ unless noted otherwise.


        Prerequisite(s)

        COP 2006 for level Undergraduate with minimum grade of C

        CDA 3104 Computer Organization & Assembly Language Programming - 3 credit(s)

        Sections:

          Description

          Covers the basic concepts of computer organization using a computer platform or a simulator and the corresponding assembly language. Topics include Boolean algebra, logic gates, registers, memory models, CPU structures, basic assembly instructions, procedures, stack frames, and interrupt handling.


          Prerequisite(s)

          (PHY 2048C for level Undergraduate with minimum grade of C or (PHY 2048 for level Undergraduate with minimum grade of C and PHY 2048L for level Undergraduate with minimum grade of C)) and COP 2006 for level Undergraduate with minimum grade of C

          CDA 3200 Digital Systems & Architecture - 3 credit(s)

          Sections:

            Description

            This course covers design and application of data paths, controllers, memory systems, and registers involved in digital systems. It discusses aspects of traditional and modern computer architecture. Design topics include finite state machines, logic gates, and Boolean algebra.


            Prerequisite(s)

            COP 2006 for level Undergraduate with minimum grade of C and (PHY 2048C for level Undergraduate with minimum grade of C or (PHY 2048 for level Undergraduate with minimum grade of C and PHY 2048L for level Undergraduate with minimum grade of C))

            COP 3530 Data Structures & Algorithms - 3 credit(s)

            Sections:

              Description

              Data structure design, implementation, application, and analysis are explored. Abstract data types (ADTs) are introduced and uses of interfaces is emphasized. Topics include stacks, queues, linked lists, and trees. Recursion is revisited, the O notation is introduced, and computational complexity of searching and sorting algorithms are explored.


              Prerequisite(s)

              COP 3003 for level Undergraduate with minimum grade of C and MAD 3107 for level Undergraduate with minimum grade of C

              COP 3710 Introduction to Data Engineering - 3 credit(s)

              Sections:

                Description

                This course covers database design and applications of database management systems in software development. It includes relational database management systems (RDBMS) and SQL, and how databases are accessed in computer programs. It also covers different data formats, i.e. XML, JSON, etc. This course will also introduce to students the application of NoSQL systems. It will explore topics related to data analysis.


                Prerequisite(s)

                COP 3530 for level Undergraduate with minimum grade of C

                CEN 4930 ST:Embedded Programming - 3 credit(s)

                Sections:

                  Description

                  The Special Topics: Embedded Programming with C++ and Arduino course is a specialized offering within the Undergraduate Software Engineering Program, designed to provide students with an in-depth understanding of the intricate interplay between software and hardware in embedded systems. This course delves into the practical aspects of designing, developing, and optimizing software for embedded environments, leveraging the powerful capabilities of the C++ programming language and Arduino microcontrollers.


                  Prerequisite(s)

                  COP 3003 for level Undergraduate with minimum grade of C