Department of Computer Science, Lehman College
Welcome to the Immersive Engineering Lab! This course is designed to equip students with the practical skills needed to succeed in an AI-driven tech industry. Moving beyond just coding, this class emphasizes systems design and architecture to provide a holistic understanding of modern full-stack web development. Students will learn to conceptualize, build, and deploy scalable web applications while leveraging emerging technologies like AI to enhance productivity and quality.
By the end of this course, students will:
- Understand the core components of modern web applications, including front-end, back-end, databases, APIs, and cloud infrastructure.
- Develop systems architecture diagrams and understand the rationale behind design decisions, such as caching and scalability.
- Gain hands-on experience building projects collaboratively using industry-standard tools and workflows.
- Learn how to integrate AI tools into the development process, focusing on testing, QA, and automation.
This course is about preparing you for the real world. The tech landscape is changing rapidly, and understanding how to design, build, and collaborate in an AI-driven environment will give you a competitive edge. Be curious, ask questions, and dive deep into the projects—your portfolio will thank you later!
- Weekly Meetings: 2 sessions (1.5 hours each)
- Lab Day: Focus on hands-on building, collaborative exercises, and practical implementation.
- Content Day: Context setting, demonstrations, and deep dives into key concepts.
- Active Learning: Class time is dedicated to building projects and working through challenges collaboratively. Lectures are assigned as homework via readings or recorded videos.
- Flexible Labs: Activities include:
- Developing systems architecture diagrams and whiteboarding exercises.
- Implementing design decisions, such as setting up caching mechanisms, scaling services, or integrating APIs.
- Creating deliverables to showcase on GitHub, such as functional prototypes, architecture diagrams, and documentation.
Students will use the following tools throughout the course:
- GitHub: For version control and project collaboration.
- Slack: For communication and peer support.
- AI Tools: Exploring technologies like GitHub Copilot and ChatGPT for coding assistance and QA.
- Development Frameworks: React (with minimal JavaScript), Express, and database systems.
- Cloud Platforms: Hands-on experience with cloud infrastructure for deployment and scalability.
- Introduction to core components of a modern web application:
- Front-End: HTML, CSS, minimal JavaScript, and React basics.
- Back-End: Express.js, RESTful APIs, and Microservices architecture.
- Databases: Relational and NoSQL databases (PostgreSQL, MongoDB).
- Cloud Infrastructure: Basics of deployment, scaling, and serverless functions.
- Using AI for code generation, debugging, and optimization.
- Understanding AI’s role in systems design and how to work alongside AI tools effectively.
- QA and testing in an AI-driven workflow.
- Agile workflows: Sprints, standups, and task management.
- Version control best practices: Git and GitHub collaboration.
- Communication and accountability through online platforms (Slack).
- Systems architecture principles: Caching, load balancing, and fault tolerance.
- Diagramming and whiteboarding exercises for design planning.
- Writing effective documentation and README files for projects.
Week | Content Day (Monday) | Lab Day (Wednesday) | Instructor Resources |
---|---|---|---|
1 (Jan 27) | Course Introduction and Overview of Full Stack Web Development | No Class | Full Stack Web Development - Coursera |
2 (Feb 3) | Introduction to HTML and CSS | Hands-on Practice with HTML and CSS | HTML & CSS Basics |
3 (Feb 10) | Introduction to JavaScript | No Class | JavaScript Basics - MDN |
4 (Feb 17) | No Class | JavaScript DOM Manipulation | DOM Manipulation Guide - MDN |
5 (Feb 24) | Introduction to React.js | Building a Simple React Application | React Official Docs |
6 (Mar 2) | Introduction to Node.js and Express.js | Creating RESTful APIs with Express | Node.js and Express Guide - MDN |
7 (Mar 9) | Introduction to Databases | Working with MongoDB | MongoDB Basics |
8 (Mar 16) | Introduction to Systems Architecture | Designing System Architecture Diagrams | System Architecture - MIT OpenCourseWare |
9 (Mar 23) | Introduction to Caching and Performance Optimization | Implementing Caching with Redis | Redis Documentation |
10 (Mar 30) | No Class | Scaling Applications and Load Balancing | AWS Load Balancing |
11 (Apr 8) | Introduction to Authentication and Security | Implementing Authentication with JWT | JWT Authentication - JWT.io |
12 (Apr 15-19) | Spring Break - No Classes | - | - |
13 (Apr 22) | Introduction to Cloud Infrastructure | Deploying a Full-Stack Application | Deploying React and Node.js Apps - Heroku |
14 (Apr 29) | Introduction to AI and Automation in Development | Using AI Tools for Coding and Debugging | GitHub Copilot |
15 (May 6) | Testing and Quality Assurance in Systems | Writing Unit Tests and API Testing | Jest Testing Guide |
16 (May 13) | Capstone Project Review and Wrap-Up | Final Project Submission and Peer Reviews | - |
- Attendance: Regular attendance is critical for hands-on labs and collaborative exercises.
- Project Delivery: Graded based on GitHub commits, functionality of deliverables, and adherence to specified criteria.
- Participation: Active engagement through Slack, peer support, and class discussions.
- All projects must be hosted on GitHub with clear documentation (e.g., a README file).
- Deliverables include both working prototypes and supplementary artifacts (e.g., architecture diagrams, testing plans).
- Basic programming knowledge (e.g., Java or Python).
- Familiarity with foundational web concepts (HTML/CSS) is helpful but not required.
To support your learning, you will have access to:
- Recorded lectures and reading materials.
- Sample projects and templates to kickstart development.
- Online forums for peer collaboration and troubleshooting.
This course observed and upholds the CUNY Policy on Academic Integrity (Accessible Plain Text). Each student in this course is expected to abide by this policy. Any work submitted by a student in this course for academic credit will be the student's own work. Collaboration is allowed where assignments are designated as group projects.
You are encouraged to study together and to discuss information and concepts covered in lecture and the sections with other students. You can give "consulting" help to or receive "consulting" help from such students. However, this permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in the form of an e-mail, an e-mail attachment file, a diskette, or a hard copy.
Should copying occur, both the student who copied work from another student and the student who gave material to be copied will both automatically receive a zero for the assignment. Penalty for violation of this Code can also be extended to include failure of the course and University disciplinary action.
During examinations, you must do your own work. Talking or discussion is not permitted during the examinations, nor may you compare papers, copy from others, or collaborate in any way. Any collaborative behavior during the examinations will result in failure of the exam, and may lead to failure of the course and University disciplinary action.
In compliance with CUNY policy (PDF) and equal access laws, I am available to discuss appropriate academic accommodations that may be required for student with disabilities.
We understand that our members represent a rich variety of backgrounds and perspectives. The Computer Science department is committed to providing an atmosphere for learning that respects diversity. While working together to build this community we ask all members to:
- share their unique experiences, values and beliefs
- be open to the views of others
- honor the uniqueness of their colleagues
- appreciate the opportunity that we have to learn from each other in this community
- value each other's opinions and communicate in a respectful manner
- keep confidential discussions that the community has of a personal (or professional) nature
- use this opportunity together to discuss ways in which we can create an inclusive environment in this course and across the CUNY community