This repository contains resources for instructing a university-level computer science course on Internet Programming.
This course is an elective for undergraduate computer science majors.
See the contributor's guide for instructions on how to add and modify repository content.
university | school | department | term | course | section | credits |
---|---|---|---|---|---|---|
Southern Connecticut State University (SCSU) | School of Arts and Sciences | Computer Science (CSC) | Spring 2017 (201701) | Fundamentals of Internet Programming (443) | Thursday nights (01) | 3 |
A study of programming languages used in developing interactive web sites. Basic experience in the full development cycle including: web site conception, client/server side programming, and web site maintenance. Individual programming intensive web projects are required.
- CSC 212 - Data Structures
- CSC 153 - Computer Programming II
- CSC 152 - Computer Programming I
- CSC 102 - BASIC Programming: Programming in BASIC
- The Role of Application Software in Organizations and Society
- Software Development Tools, Practices, and Methodologies
- Internet Technologies
- Internet Programming Languages and Frameworks
- Describe the ecosystem of tools, technologies, and languages used to plan, develop, and manage websites and web applications.
- Describe in a practical sense how the Internet works, specifically focusing on the lifecycle of a network request.
- Describe the difference between traditional “waterfall” and agile systems development methodologies.
- Discuss security and privacy considerations relevant in designing and managing websites and web applications.
- Participate in, and describe the advantages of software version control.
- Describe the advantages and disadvantages of open source software.
- Describe the role of the development, staging, and production development environments.
- Gain marketable skills in the area of website and web application development; build an online portfolio consisting of multiple Internet programming projects.
- Have fun!
- Personal Website — HTML, CSS, JavaScript, hosted on GitHub Pages
- Data Visualization — HTML, CSS, JavaScript, hosted on GitHub Pages
- CRUD Web Application — HTML, CSS, JavaScript, Node.js, Express.js, hosted on Heroku
- REST API (Optional) — Node.js, Express.js, Database (PostgreSQL or MongoDB), hosted on Heroku
There are no required textbooks for this course. Online resources pertaining to the topics at hand will be shared with students as applicable.
This course requires students to use numerous software packages. Every effort will be made to make available all required packages on assigned lab computers, but students are encouraged to install the software on their personal computers as well to achieve a more location-flexible development environment.
Each student is expected to achieve proficiency using a text editor of choice. Ideally, the text editor should include syntax auto-completion functionality for HTML, CSS, and JavaScript. The official text-editor for this course is Atom, however Sublime and Notepad++ are also viable options.
Each student is expected to achieve proficiency using a modern browser for web development purposes. The browser must include the ability to inspect underlying elements on the page. The official browser for this course is Google Chrome, however Mozilla Firefox is another viable option.
Each student is expected to achieve proficiency using a local web server of choice for web development purposes. This course recommends using Python to run a local web server, however there are many other viable options.
The following command-line utilities will be covered throughout the course of the semester:
- Git
- Node.js and Node Package Manager (NPM)
- Heroku Toolbelt
- Choice of either MongoDB or PostgreSQL (Optional)
The maximum enrollment for this class is 20 students per section.
Michael Rossetti (LinkedIn, GitHub) will be administering the course and teaching all course material. If you have a question about assignments, projects, or anything covered in class, email Professor Rossetti at [email protected]. The professor aims to provide an average email response time of under two business days. If emailing the professor, please use your university-issued email address.
There is no Teaching Assistant assigned to aid instruction of this course.
Final grades will be calculated by weighted average according to the following structure:
Name | Weight |
---|---|
Projects | 65% |
Peer Evaluations | 15% |
Final Exam | 20% |
The class meets on Thursday nights from 7:35pm to 10:05pm during the spring semester effective 1/17/17 through 5/12/17.
The Schedule contains a tentative week-by-week description of the topics and technologies covered in each class, as well as assignments given and due. It is likely to change to reflect the pace of instruction.
The course google calendar is available in HTML and iCal format. It reflects the most up-to-date scheduling information, including class times, instructor office hours, holidays, and more.
Note: The last day for course withdrawals is March 26th, 2017.
All members of the learning community agree to abide by the policies described herein.