Web and Mobile Computing BS - Curriculum

Web and Mobile Computing BS

Web and Mobile Computing, BS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
GCIS-123
Software Development and Problem Solving I (General Education)
A first course introducing students to the fundamentals of computational problem solving. Students will learn a systematic approach to problem solving, including how to frame a problem in computational terms, how to decompose larger problems into smaller components, how to implement innovative software solutions using a contemporary programming language, how to critically debug their solutions, and how to assess the adequacy of the software solution. Additional topics include an introduction to object-oriented programming and data structures such as arrays and stacks. Students will complete both in-class and out-of-class assignments. Lab 6 (Fall, Spring).
 
GCIS-124
Software Development and Problem Solving II (General Education)
A second course that delves further into computational problem solving, now with a focus on an object-oriented perspective. There is a continued emphasis on basic software design, testing & verification, and incremental development. Key topics include theoretical abstractions such as classes, objects, encapsulation, inheritance, interfaces, polymorphism, software design comprising multiple classes with UML, data structures (e.g. lists, trees, sets, maps, and graphs), exception/error handling, I/O including files and networking, concurrency, and graphical user interfaces. Additional topics include basic software design principles (coupling, cohesion, information expert, open-closed principle, etc.), test driven development, design patterns, data integrity, and data security. (Prerequisite: C- or better in SWEN-123 or CSEC-123 or GCIS-123 or equivalent course.) Lab 6 (Fall, Spring, Summer).
 
ISTE-140
Web & Mobile I
This course provides students with an introduction to internet and web technologies, and to development on Macintosh/UNIX computer platforms. Topics include HTML and CSS, CSS3 features, digital images, web page design and website publishing. Emphasis is placed on fundamentals, concepts and standards. Additional topics include the user experience, mobile design issues, and copyright/intellectual property considerations. Exercises and projects are required. Lec/Lab 3 (Fall, Spring).
3
ISTE-144
Design for Developers
This is a production-based course that introduces the basic elements, principles, and methods of visual design for digital applications. Students will experiment with design thinking, ideation, and concept development techniques as they explore the computer as an illustrative and image generation tool. Emphasis is on effective visual communication and design skills through digital image creation, graphic organization, and typography for screen-based output. Lecture 3 (Fall, Spring).
3
ISTE-230
Introduction to Database and Data Modeling
A presentation of the fundamental concepts and theories used in organizing and structuring data. Coverage includes the data modeling process, basic relational model, normalization theory, relational algebra, and mapping a data model into a database schema. Structured Query Language is used to illustrate the translation of a data model to physical data organization. Modeling and programming assignments will be required. Note: students should have one course in object-oriented programming. (Prerequisites: ISTE-120 or ISTE-200 or IGME-101 or IGME-105 or CSCI-140 or CSCI-142 or NACA-161 or NMAD-180 or BIOL-135 or GCIS-123 or GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
ISTE-240
Web & Mobile II
This course builds on the basics of web page development that are presented in Web and Mobile I and extends that knowledge to focus on theories, issues, and technologies related to the design and development of web sites. An overview of web design concepts, including usability, accessibility, information architecture, and graphic design in the context of the web will be covered. Introduction to web site technologies, including HTTP, web client and server programming, and dynamic page generation from a database also will be explored. Development exercises are required. (Prerequisites: (ISTE-120 or CSCI-140 or CSCI-141 or GCIS-127 or NACA-161 or IGME-105 or IGME-101 or NMAD-180 or GCIS-123) and (ISTE-140 or NACA-172 or IGME-230 or IGME-235) or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
MATH-131
Discrete Mathematics (General Education – Mathematical Perspective A)
This course is an introduction to the topics of discrete mathematics, including number systems, sets and logic, relations, combinatorial methods, graph theory, regular sets, vectors, and matrices. (Prerequisites: MATH-101, MATH-111, NMTH-260, NMTH-272 or NMTH-275 or a Math Placement Exam score of at least 35.) Lecture 4 (Fall, Spring).
4
YOPS-010
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. (This class is restricted to incoming 1st year or global campus students.) Lecture 1 (Fall, Spring).
0
 
General Education – Elective
3
 
General Education – Ethical Perspective
3
 
General Education – First-Year Writing (WI)
3
Second Year
ISTE-99
School of Information Second Year Seminar
This course helps students prepare for cooperative employment by developing job search approaches and material. Students will explore current and emerging aspects of IST fields to help focus their skill development strategies. Students are introduced to the Office of Career Services and Cooperative Education, and learn about their professional and ethical responsibilities for their co-op and subsequent professional experiences. Students will work collaboratively to build résumés, cover letters, and prepare for interviewing. (Prerequisites: This class is restricted to HCC-BS or CMIT-BS or WMC-BS or COMPEX-UND Major students with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
ISTE-222
Applied Data Structures and Algorithms
This course expands the student’s knowledge base of applying higher level programming concepts including data structures, algorithm development and analysis, Big-O notation, directed graphs, priority queues, performance, and a greater understanding of how complex software can more easily be designed. Programming assignments are required. (Prerequisites: ISTE-121 or ISTE-200 or CSCI-142 or CSCI-140 or IGME-106 or CSCI-242 or GCIS-124 or GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
ISTE-252
Foundations of Mobile Design
This course is an introduction to designing, prototyping, and creating applications and web applications for mobile devices. These devices include a unique set of hardware and communications capabilities, incorporate novel interfaces, are location aware, and provide persistent connectivity. Topics covered include user interaction patterns, connectivity, interface design, software design patterns, and application architectures. Programming projects are required. (Prerequisites: ISTE-240 or IGME-330 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
ISTE-260
Designing the User Experience
The user experience is an important design element in the development of interactive systems. This course presents the foundations of user-centered design principles within the context of human-computer interaction (HCI). Students will explore and practice HCI methods that span the development lifecycle from requirements analysis and creating the product/service vision through system prototyping and usability testing. Leading edge interface technologies are examined. Group-based exercises and design projects are required. (Prerequisite: ISTE-140 or IGME-230 or NACA-172 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
ISTE-330
Database Connectivity and Access
In this course, students will build applications that interact with databases. Through programming exercises, students will work with multiple databases and programmatically invoke the advanced database processing operations that are integral to contemporary computing applications. Topics include the database drivers, the data layer, connectivity operations, security and integrity, and controlling database access. (Prerequisites: (ISTE-230 or CSCI-320) and (ISTE-120 or GCIS-124 or CSCI-140 or CSCI-142 or CSCI-242 or GCIS-127) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
ISTE-340
Client Programming
This course will explore the analysis, design, development, and implementation of client-side programming in the context of Internet technologies, mobile devices, Web-based client systems and desktop applications. Students will learn to design and build usable and effective interactive systems, clients, and interfaces. Key features addressed will include browser and platform compatibility, object reusability, bandwidth and communications issues, development environments, privacy and security, and related technologies and APIs. Programming is required. (Prerequisites: (ISTE-240 or IGME-330) and (GCIS-124 or ISTE-121 or ISTE-200 or CSCI-142 or CSCI-140 or IGME-106 or IGME-102 or GCIS-127) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
ISTE-499
Undergraduate Co-op (summer)
Students perform paid, professional work related to their program of study. Students work full-time during the term they are registered for co-op. Students must complete a student co-op work report for each term they are registered; students also are evaluated each term by their employer. A satisfactory grade is given for co-op when both a completed student co-op report and a corresponding employer report that indicates satisfactory student performance are received. (Enrollment in this course requires permission from the department offering the course.) CO OP (Fall, Spring, Summer).
0
MATH-161
Applied Calculus (General Education – Mathematical Perspective B)
This course is an introduction to the study of differential and integral calculus, including the study of functions and graphs, limits, continuity, the derivative, derivative formulas, applications of derivatives, the definite integral, the fundamental theorem of calculus, basic techniques of integral approximation, exponential and logarithmic functions, basic techniques of integration, an introduction to differential equations, and geometric series. Applications in business, management sciences, and life sciences will be included with an emphasis on manipulative skills. (Prerequisite: C- or better in MATH-101, MATH-111, MATH-131, NMTH-260, NMTH-272 or NMTH-275 or Math Placement Exam score greater than or equal to 45.) Lecture 4 (Fall, Spring).
4
NSSA-290
Networking Essentials for Developers
This is a course in the basics of network communication for software developers. Topics will include the OSI 7-layer model and its realization in the TCP/IP protocol stack. Students will also learn about naming and name resolution as it is used in the internet, plus the basics of routing and switching. The focus in all of this will be on an analysis of how name resolution, routing and switching operate at the developer's perspective. The specifics of how the socket transport layer appears to the programmer and operates will be a key topic. Finally, an overview of authentication mechanisms and number of examples of the security vulnerabilities of existing communication protocols will be provided to instruct students on the inherent risks of communication via the INTERNET. (Prerequisites:GCIS-124 or ISTE-121 or ISTE-200 or CSCI-142 or CSCI-140 or CSCI-242 or IGME-102 or IGME-106 or GCIS-127 or equivalent course.) Lecture 3 (Fall, Spring).
3
SWEN-383
Software Design Principles and Patterns
Quality software designs and architectures reflect software engineering principles that represent best contemporary practice. This course focuses on explicating these fundamental principles, examining a set of design and architecture patterns that embody the principles, and applying patterns appropriate to a design problem in a given context. Restricted to IST majors only. (Prerequisites: ISTE-240 or equivalent course. Co-requisite: ISTE-340 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
 
General Education – Artistic Perspective
3
 
General Education – Global Perspective
3
Third Year
ISTE-341
Server Programming
This course provides in-depth work in server-side programming. Students will develop dynamic, data centric web pages and systems, and server-side information services that will be available to clients implemented in a variety of software technologies. Topics include XML parsing, generation, and consumption; web configuration and security; design patterns; web service structures, and application security. Programming projects are required. (Prerequisites: ISTE-340 and (ISTE-230 or CSCI-320) and (SWEN-383 or SWEN-262) or equivalent courses.) Lec/Lab 3 (Fall, Spring).
3
ISTE-422
Application Development Practices
In this course, students will gain experience with the processes, practices, and tools professional developers use to deliver robust and maintainable applications. Students will apply these practices and tools to build smaller-scale production-quality applications and systems. Topics include development life cycles, version control, test bed development and use, build utilities, error handling, deployment tools, and documentation. (Prerequisites: ISTE-121 or ISTE-200 or CSCI-142 or CSCI-140 or IGME-106 or CSCI-242 or GCIS-124 or GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
Choose one of the following:
0
   ISTE-498
Undergraduate Creative, Innovative or Research Experience (summer)
Students may substitute the second block of traditional co-op experience with creative, innovative or research (iSchool CIR) activities as long as it is directly related to the applicant’s degree. Examples include contributing to research projects, supervised participation in entrepreneurial activities, and cross-disciplinary innovation projects not otherwise eligible for co-op. Students will follow a structured application process prior to registering for the course. They will submit a plan of work that outlines the proposed activities, defines tangible goals and deliverables, and identifies a person (faculty member, business contact, etc.) who will provide oversight throughout the term. At the conclusion of the term, students will follow an assessment process similar to that used for traditional co-op as well as (submission of evaluation of responsible oversight party, their daily time and activity logs, the students report and an announced presentation – see iSchool CIR Experience Guidelines on the web at https://ischool.rit.edu/ > Student Resources > Co-op Enrollment for further information). (Prerequisites: ISTE-499 or equivalent course.) CO OP (Fa/sp/su).
 
   ISTE-499
Undergraduate Co-op (summer)
Students perform paid, professional work related to their program of study. Students work full-time during the term they are registered for co-op. Students must complete a student co-op work report for each term they are registered; students also are evaluated each term by their employer. A satisfactory grade is given for co-op when both a completed student co-op report and a corresponding employer report that indicates satisfactory student performance are received. (Enrollment in this course requires permission from the department offering the course.) CO OP (Fall, Spring, Summer).
 
 
WMC Concentration Courses
6
 
General Education – Immersion 1
3
 
General Education – Social Perspective
3
 
General Education – Natural Science Inquiry Perspective‡
4
 
Open Electives
9
Fourth Year
ISTE-500
Senior Development Project I
The first course in a two-course, senior level, system development capstone project. Students form project teams and work with sponsors to define system requirements. Teams then create architectures and designs, and depending on the project, also may begin software development. Requirements elicitation and development practices introduced in prior coursework are reviewed, and additional methods and processes are introduced. Student teams are given considerable latitude in how they organize and conduct project work. (This course is restricted to WMC-BS, HCC-BS, CMIT-BS, and 2 ISTE-499 completed or (1 ISTE-498 completed and 1 ISTE-499 completed).) Lecture 3 (Fall, Spring).
3
ISTE-501
Senior Development Project II (WI-PR)
The second course in a two-course, senior level, system development capstone project. Student teams complete development of their system project and package the software and documentation for deployment. Usability testing practices introduced in prior course work are reviewed, and additional methods and processes are introduced. Teams present their developed system and discuss lessons learned at the completion of the course. (Prerequisites: ISTE-500 or equivalent course.) Lecture 3 (Fall, Spring).
3
 
WMC Concentration Courses
6
 
General Education – Immersion 2, 3
6
 
General Education – Scientific Principles Perspective
4
 
Open Elective
3
 
General Education – Electives
6
Total Semester Credit Hours
126

Please see General Education Curriculum (GE) for more information.

(WI) Refers to a writing intensive course within the major.

Please see Wellness Education Requirement for more information. Students completing bachelor's degrees are required to complete two different Wellness courses.

‡ Students satisfy this requirement by taking either a 3 or 4 credit hour lab science course. If a science course consists of separate lecture and laboratory sections, students must take both the lecture and the lab portions to fulfill the requirement.

Concentrations

Web Application Development

Course
ISTE-442
Secure Web Application Development
When building larger-scale web applications, there are a myriad of concerns that range from technology, security, framework, and architecture selection to runtime performance optimization. This course focuses on the development of secure integrated web applications that consume information served from one or many sources. Trends in web application development are identified and assessed. Programming projects are required. (Prerequisites: ISTE-341 or equivalent courses.) Lec/Lab 3 (Fall).
ISTE-444
Web Server Development and Administration
Web developers often need to go beyond building web pages and client-server programming to plan, install, configure, develop, and maintain the Web servers that host their sites. They need to understand issues of scalability, performance, and security as they apply to deploying a web presence. This course provides a practical hands-on approach to development, configuration, and administration of Web server platforms, including operating system administration and shell scripting. Topics include issues of and approaches to scalability, multiple server systems, security, and auditing, as well as the many configuration options, modules, and server alternatives available. (Prerequisites: ISTE-341 or equivalent course.) Lec/Lab 3 (Spring).

Mobile Application Development

Course
ISTE-454
Mobile Application Development I
This course extends the material covered in the Foundations of Mobile Design course and provides students with the experience of creating interesting applications for small-size form factor mobile devices such as smartphones These devices are exceptionally portable, have unique sets of hardware and communications capabilities, incorporate novel interfaces, are location aware, and provide persistent connectivity. Students are encouraged to make creative use of these unique device characteristics and operating properties to develop innovative applications. Programming projects are required. (Prerequisites: (ISTE-252 and ISTE-340) or IGME-330 or equivalent courses.) Lec/Lab 3 (Fall, Spring).
ISTE-456
Mobile Application Development II
This course extends the Foundations of Mobile Design course in that students will learn to apply mobile design skills to develop applications in the Android platform. Students will design, develop, and test mobile applications using the Android Studio IDE. This course covers the major components such as activities, receivers, content providers, permissions, intents, fragments, data storage, and security. Programming projects are required (Prerequisites: (ISTE-252 and ISTE-340) or IGME-330 or equivalent courses.) Lec/Lab 3 (Fall, Spring).

Wearable & Ubiquitous Development

Course
ISTE-358
Foundations of Wearable & Ubiquitous Computing
Wearable technologies, like smart watches, and ubiquitous computing technologies, including the Internet of Things, are entering the mainstream. In this introductory course, students will learn the history of research in these areas and fundamentals of developing for these devices, including interface design, networking, physical form factors; societal issues such as privacy will also be discussed. This class is primarily project-based. (Prerequisites: ISTE-341 and ISTE-252 or equivalent courses.) Lec/Lab 3 (Fall).
ISTE-458
Advanced Topics in Wearable & Ubiquitous Computing
This course is a sequel to ISTE-358, Foundations of Wearable and Ubiquitous Computing. In this advanced course, students will further their understanding of these technologies and what they can do. A major emphasis will be on context and activity recognition; for example, automatically understanding what a person is doing or whom they are with. This class is primarily project-based. (Prerequisites: ISTE-358 or equivalent course.) Lec/Lab 3 (Spring).

Project Life Cycle

Course
NSSA-370
Project Management
This course teaches students essential project management principles and prepares them to be effective members of a project team. Topics include business drivers for project selection, project management methodologies, and practical implementation of project management principles across the Information Technology spectrum. (This class is restricted to students with at least 3rd year standing.) Lecture 3 (Spring).
ISTE-430
Information Requirements Modeling
Students will survey and apply contemporary techniques used in analyzing and modeling information requirements. Requirements will be elicited in a variety of domains and abstracted at conceptual, logical, and physical levels of detail. Process, data, and state modeling will be applied in projects that follow a systems development lifecycle. Object-oriented modeling will be explored and contrasted with data and process oriented modeling. Individual and team modeling assignments will be required. (Prerequisites: ISTE-230 or CSCI-320 or equivalent course.) Lecture 3 (Fall, Spring).

Database

Course
Choose two of the following:
   ISTE-432
 Database Application Development
Database applications have aspects that need to be considered when designing and developing larger-scale systems. In this course students will explore topics such as concurrent processing, scalability, performance, and security within the context of developing larger-scale data/base information processing systems. Programming projects are required. (Prerequisites: ISTE-330 or equivalent course.) Lec/Lab 3 (Fall, Spring).
   ISTE-438
 Contemporary Databases
This course will introduce the topic of contemporary databases by covering the design, application and use of non-relational (NoSQL) database technologies. Topics include an overview of data types, structuring and processing data and knowledge, data transformation, and data storage and warehousing. Students will learn the interaction between relational and non-relational databases in the Cloud or other storage media. Programming assignments will be required. (Prerequisites: (ISTE-230 or CSCI-320) and ISTE-240 or IGME-330) or equivalent courses.) Lec/Lab 3 (Spring).
   ISTE-470
 Data Mining and Exploration
Rapidly expanding volumes of data from all areas of society are becoming available in digital form. High value information and knowledge is embedded in many of these data volumes. Unlocking this information can provide many benefits, and may also raise ethical questions in certain circumstances. This course provides students with a hands-on introduction to how interactive data exploration and data mining software can be used for data-driven knowledge discovery, including domains such as business, environmental management, healthcare, finance, and transportation. Data mining techniques and their application to large data sets will be discussed in detail, including classification, clustering, association rule mining, and anomaly detection. In addition, students will learn the importance of applying data visualization practices to facilitate exploratory data analysis. (Prerequisites: (STAT-145 OR MATH-251) and (GCIS-124 OR ISTE-121 OR CSCI-140 OR CSCI-142 OR CSCI-242 OR ISTE-200 OR IGME-201 OR IGME-106 OR GCIS-127) or equivalent courses.) Lecture 3 (Fall).