CSCI 421- Lecture 1
Instructor's Class Notes
- Class Essentials
- Introduction to instructor, student roll call taken.
- Review of instructor's page at cs.millersville.edu/~trogers
- Review of course page at cs.millersville.edu/~trogers/csci421
- Review of class, lab, exam schedule at cs.millersville.edu/~trogers/csci421/2024_spring/schedule.html
- It's time to work...
- Part 1 - Introducing Full-Stack Development
- History of Web Development
- First ever website published in 1991 by Tim Berners-Lee. He was the creator of the first web browser and invented the World Wide
Web. See screenshot here
- The first websites were merely pages of information with hyperlinks to other pages and all very rudimentary and used primarily for information sharing among the academic and research institutions.
- The first commercial website was GNN, here, and deployed August 1993.
- For the next couple of years (1993 through 1995) the focus was on developing websites using HTML and the standards it
provided with GET (read a web page) and POST (submit information to the server), with posted information (data in forms)
handled by CGI (Common Gateway Interface) wherein applications or scripts were written to run on the web server and
process data posted.
- Scripting, in particular JavaScript was introduced in 1993 by NetScape as a browser (client-side) scripting technology allowing for validation of form fields before posting a page, etc. This helped to evolve the "front-end" programming paradigm to add user interaction.
- Amazon.com was introduced in 1993, eBay.com in 1994.
- In 1995, Microsoft added JavaScript to its IIS web server as a server-side technology, standardizing and evolving "back-end" web development.
- Through the 2000s front-end and back-end technologies matured and evolved with many different products, standards and technologies emerging...it was chaos. Complexity and diversity at both spectrums was at an all-time high with framework products galore, but the trends were towards divergence.
![](before_fullstack.png)
- Full-Stack development frameworks that took the best technologies and products at each layer and
brought them together, cohesively started to emerge a few years ago and have really taken off.
![](after_fullstack.png)
- Full-stacked merged the development efforts, pusing a lot of the coding more towards the front-end:
- The last few years have seen moving the application logic away from the server and into the front end by exploiting JavaScript frameworks like AngularJS, Backbone, and Ember.
- This reduces the load on the web servers, crowd-sourcing computing on user's browsers.
- It has blurred the lines of front-end and back-end development.
- Why Full-Stack Development?
- Benefits of Full-Stack Development - "Being able to develop the full scope of a website or application gives you better overall control and can help the different parts work seamlessly together, as they haven't been built in isolation by separate teams." -- Simon Holmes
- Other benefits (from the book):
- You're more likely to have a better view of the bigger picture by understanding the different areas and how they
fit together.
- You'll form an appreciation of what other parts of the team are doing and what they need to be successful.
- Team members can move around more freely.
- You can build applications end-to-end by yourself with no dependencies on other people.
- You have more skills, services, and capabilities to offer customers.
- Why the MEAN Stack?
- The MEAN Stack is made up of the "best of breed" web development components of the last several years, with these
components together making for a complete toolkit for website and web application development.
- Not only does MEAN use JavaScript in the browser but JavaScript is fundamental throughout the stack.
- MEAN Stack gets its named from its component technologies: MongoDB, Express, AngularJS and Node.js
- What is the MEAN Stack:
- M is for MongoDB - That database repository for the stack.
- E is for Express - The website and web application framework for Node.js that accelerates development of websites.
- A is for AngularJS - The front-end framework for developing Single Page Applications (SPA) that are responsive and dynamic.
- N is for Node.js - The web server platform.