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 | ||
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 |
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 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 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 |
SWEN-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). |
4 |
SWEN-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). |
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. 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 The third course in the programming sequence expanding the student’s knowledge base of 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 equivalent course.) Lecture 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 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 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 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 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. 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 the student the essential project management basics needed by CIT and WMC majors. Exposure to project lifecycles and a sampling of PM best practices will be covered. (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 equivalent courses.) Lecture 3 (Fall). |