Mobile Programming - Syllabus

Course Overview and Structure

Embark on a profound academic exploration as you delve into the Mobile Programming course () within the distinguished Tribhuvan university's BCA department. Aligned with the BCA Curriculum, this course (CACS351) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60+20+20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Description

This course provides the comprehensive knowledge related to the Mobile programming, which encompasses integrated development environment, infrastructure, design, and develop and testing of mobile application, which communicate with database to solve real word problem.

Course Objectives:

The general objectives of this course is to develop mobile application that solve real word problem with use of current mobile technology.

Units

Key Topics

  • Introduction to Computers
    IN-01

    An overview of computers and their significance in today's world. This topic sets the stage for understanding the basics of computers.

  • Digital and Analog Computers
    IN-02

    Understanding the difference between digital and analog computers, their characteristics, and applications.

  • Characteristics of Computers
    IN-03

    Exploring the key characteristics of computers, including input, processing, storage, and output.

  • History of Computers
    IN-04

    A brief history of computers, from their inception to the present day, highlighting key milestones and developments.

  • Generations of Computers
    IN-05

    Understanding the different generations of computers, including their features, advantages, and limitations.

  • Classification of Computers
    IN-06

    Categorizing computers based on their size, functionality, and application, including desktops, laptops, and mobile devices.

  • The Computer System
    IN-07

    An in-depth look at the components of a computer system, including hardware and software.

  • Applications of Computers
    IN-08

    Exploring the various applications of computers in different fields, including business, education, and healthcare.

Key Topics

  • Android Layout Types
    DE-01

    Understanding different types of layouts in Android such as Linear, Relative, Table, Absolute, and Constraint layouts.

  • Layout Attributes
    DE-02

    Learning about various attributes that can be used to customize and configure Android layouts.

  • Android Widgets
    DE-03

    Exploring different types of Android widgets such as TextView, EditText, Checkbox, RadioButton, Spinner, and their attributes.

  • Event Handling
    DE-04

    Understanding how to handle events and respond to user interactions in Android applications.

  • Working with Strings and String Arrays
    DE-05

    Learning how to work with strings, string arrays, and colors in Android applications.

  • Working with Resources and Drawables
    DE-06

    Understanding how to work with resources and drawables in Android applications.

  • Adding Icons to the Project
    DE-07

    Learning how to add icons to an Android project and customize the user interface.

Key Topics

  • Activity Life Cycle
    AN-1

    Understanding the different stages of an activity's life cycle, including creation, start, resume, pause, stop, and destroy. This topic covers the methods that are called during each stage.

  • Creating Multiple Activities
    AN-2

    Learning how to create multiple activities in an Android application, including defining and implementing separate activities for different tasks.

  • Declaring Activities in the Manifest
    AN-3

    Understanding how to declare activities in the AndroidManifest.xml file, including specifying the activity's name, label, and intent filters.

  • Connecting Activities with Intents
    AN-4

    Learning how to use intents to connect activities, including creating and sending intents, and handling intent requests.

  • Passing Data Between Activities
    AN-5

    Understanding how to pass data between activities, including using intent extras, bundles, and shared preferences.

  • Getting a Result Back from a Child Activity
    AN-6

    Learning how to get a result back from a child activity, including using startActivityForResult() and onActivityResult().

  • Getting and Setting Data to/from the Layout File
    AN-7

    Understanding how to get and set data to and from the layout file, including using findViewById() and setting UI component properties.

Key Topics

  • UI Flexibility
    UI-1

    The importance of having flexible user interfaces in mobile applications. Understanding the need for adaptable UI designs.

  • Introduction to Fragments
    UI-2

    An overview of UI fragments, their purpose, and benefits in mobile app development.

  • Fragment Lifecycle
    UI-3

    Understanding the different stages of a fragment's lifecycle, from creation to destruction.

  • Creating a UI Fragment
    UI-4

    A step-by-step guide to creating a UI fragment, including layout design and XML coding.

  • Creating a Fragment Class
    UI-5

    Defining a Java class for a fragment, including methods and variables.

  • Wiring Widgets in a Fragment
    UI-6

    Connecting UI widgets to their corresponding Java methods in a fragment.

  • Introduction to Fragment Manager
    UI-7

    Understanding the role of the fragment manager in managing multiple fragments in an activity.

  • Activity vs Fragments
    UI-8

    Comparing and contrasting activities and fragments in mobile app development.

  • Introduction to Menus
    UI-9

    An overview of menus in mobile applications, including their types and uses.

  • Implementing Menus
    UI-10

    A step-by-step guide to implementing menus in a mobile application.

  • Introduction to Dialogs
    UI-11

    An overview of dialogs in mobile applications, including their types and uses.

  • Creating a Dialog Fragment
    UI-12

    A step-by-step guide to creating a dialog fragment, including layout design and Java coding.

  • Setting a Dialog's Content
    UI-13

    Defining the content and layout of a dialog fragment.

Key Topics

  • History of Linux
    LI-1

    Overview of the development and evolution of the Linux operating system.

  • Kernel Modules
    LI-2

    Understanding kernel modules, their types, and their role in extending Linux kernel functionality.

  • Process Management
    LI-3

    Managing processes in Linux, including process creation, synchronization, and termination.

Key Topics

  • Active Database Concepts and Triggers
    AD-1

    This topic covers the concepts of active databases, including triggers, and their applications in advanced database systems.

  • Temporal Database Concepts
    AD-2

    This topic explores the concepts and techniques of temporal databases, which manage time-varying data and support temporal queries.

  • Spatial Database Concepts
    AD-3

    This topic introduces the concepts and techniques of spatial databases, which manage spatial data and support spatial queries and analysis.

  • Multimedia Database Concepts
    AD-4

    This topic covers the concepts and techniques of multimedia databases, which manage multimedia data such as images, audio, and video.

  • Deductive Database Concepts
    AD-5

    This topic explores the concepts and techniques of deductive databases, which use logical rules to derive new information from existing data.

  • Introduction to Information Retrieval and Web Search
    AD-6

    This topic provides an introduction to the concepts and techniques of information retrieval and web search, including indexing, querying, and ranking.

  • Multitasking
    AD-7

    Multitasking in 80286 architecture allows multiple tasks to run concurrently, improving system performance and responsiveness.

Key Topics

  • .NET and ASP.NET Frameworks
    IN-001

    Overview of .NET and ASP.NET frameworks including .NET, .NET Core, Mono, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API, and ASP.NET Core.

  • .NET Architecture and Design Principles
    IN-002

    Fundamentals of .NET architecture and design principles that guide the development of .NET applications.

  • Compilation and Execution of .NET Applications
    IN-003

    How .NET applications are compiled and executed, including the roles of CLI, MSIL, and CLR.

  • .NET Core in Detail
    IN-004

    In-depth exploration of .NET Core, including its features, benefits, and use cases.

  • .NET CLI
    IN-005

    Using .NET CLI to build, run, test, and deploy .NET Core applications, including its commands and options.

  • Integrated Windows Authentication
    IN-006

    Authenticating users using their Windows login credentials.

  • Cookies
    IN-007

    Storing small pieces of data on a user's device to track their interactions with a web application.

  • File Handling
    IN-008

    Managing files on a web server, including uploading, downloading, and manipulating files.

  • Form Handling
    IN-009

    Processing and validating user input from HTML forms in a web application.

  • Storyboard and View Controllers
    IN-010

    Using storyboards to design user interfaces and understanding view controllers.

  • Working with Widgets and Attributes
    IN-011

    Using widgets and attributes to customize UI elements in iOS applications.

  • Creating a Simple iOS Application
    IN-012

    Building a simple iOS application from scratch, integrating UI and code.

Lab works

Laboratory Works

Laboratory works should be done covering all the topics listed above and a small project work should be carried out using the concept learnt in this course. Project should be assigned on individual basis.