Code Monkey home page Code Monkey logo

southernct-csc-443-201701's Introduction

CSC 443 - Fundamentals of Internet Programming

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.

Scope

  • The Role of Application Software in Organizations and Society
  • Software Development Tools, Practices, and Methodologies
  • Internet Technologies
  • Internet Programming Languages and Frameworks

Objectives

  1. Describe the ecosystem of tools, technologies, and languages used to plan, develop, and manage websites and web applications.
  2. Describe in a practical sense how the Internet works, specifically focusing on the lifecycle of a network request.
  3. Describe the difference between traditional “waterfall” and agile systems development methodologies.
  4. Discuss security and privacy considerations relevant in designing and managing websites and web applications.
  5. Participate in, and describe the advantages of software version control.
  6. Describe the advantages and disadvantages of open source software.
  7. Describe the role of the development, staging, and production development environments.
  8. Gain marketable skills in the area of website and web application development; build an online portfolio consisting of multiple Internet programming projects.
  9. Have fun!
  1. Personal Website — HTML, CSS, JavaScript, hosted on GitHub Pages
  2. Data Visualization — HTML, CSS, JavaScript, hosted on GitHub Pages
  3. CRUD Web Application — HTML, CSS, JavaScript, Node.js, Express.js, hosted on Heroku
  4. REST API (Optional) — Node.js, Express.js, Database (PostgreSQL or MongoDB), hosted on Heroku

Materials

Textbooks

There are no required textbooks for this course. Online resources pertaining to the topics at hand will be shared with students as applicable.

Software

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.

Text Editor

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.

Browser

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.

Local Web Server

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.

Command-line Utilities

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)

Learning Community

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.

Evaluation

Final grades will be calculated by weighted average according to the following structure:

Name Weight
Projects 65%
Peer Evaluations 15%
Final Exam 20%

Schedule

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.

Policies

All members of the learning community agree to abide by the policies described herein.

southernct-csc-443-201701's People

Contributors

abdullahalsalihi avatar deborahrachel avatar jessiemb avatar jestores7 avatar jlragr avatar jmarcellus90 avatar kakradetome avatar kshaham avatar leecaseyc avatar lukeberglund avatar markanderson10 avatar mohdm1 avatar moucira1 avatar perryblunt avatar qamaralsalihi avatar robertorozco1 avatar s2t2 avatar sahilmak avatar thisissovereign avatar vicsotojr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

southernct-csc-443-201701's Issues

Git CLI Overview

Help, I'm new to using Git from the command line! Are there any cheat sheets you can share?

More help with version control

Please post a tutorial/exercise on creating/initializing repositories using the github desktop software. Please include a few screenshots.

Peer review

Consider one or more official peer review exercises to further prepare students before project due dates.

EDIT: provide additional guidance for existing peer review process.

Misplaced CSS objectives

The assignment called "Website from Scratch" contains CSS-related objectives, when it should not. Those objectives should be moved into the subsequent assignment, called "Website Bootstrapping"

Fix typos and broken links

I've noticed some misinformation on the README (time of day, project names) and PROJECTS pages (dates, names, links). The syllabus docs should be reviewed and edited.

Translate commands for Windows users

I could use some help ensuring instructions are relevant for Windows users.

If there are any commands, especially in recent checkpoints, that are not Windows-equivalent, then each should be accompanied by a Windows equivalent. The preferred markdown for each would look something like this:

```` sh
# Mac Terminal:
some mac command

# Windows Command Prompt:
some windows command
````

Reference exercises/commmand-line-computing/ for a comparison of Mac and Windows commands.

Any relevant merged pull requests which reference this issue will earn the contributor these official course badges:

  • Content Contributor Badge 🏆
  • Translator Badge 🏆

Updating a forked repo

I noticed while working with a student in class tonight that the concept of forking could use further clarification.

Consider creating an exercise to instruct students how to fetch updates from an upstream repo. Use the prof-rossetti/student-site for this purpose because it has since been updated with a LiCENSE after students first forked it during the first week of class.

So by the end of the exercise students should see the LICENSE in their own forks.

Problem installing cURL on Windows

Last class, one student was having an issue installing cURL on Windows given the existing link in the windows-command-prompt.md exercise.

To remedy, the existing instructions should be expanded or clarified.

Private submissions

Clarify in submission instructions that students have the option of submitting privately via email or slack DM and those links won't be added to the submissions page, but will be evaluated and peer evaluated the same way public submissions are.

Guidance for working on a slow computer

  1. Close all non-essential applications. Essentials include a browser, text editor, terminal or other git client

  2. Check your storage. Your hard drive might be getting full. Consider using cloud storage.

  3. Save software files locally, not on Dropbox or other cloud storage. You're pushing to github so it's all backed up there anyway.

  4. I have seen github desktop software affect some computers by causing crashes or slow downs. Maybe try a more light weight git client, or start using git from the command line earlier rather than later.

  5. Leverage the lab computers. They're stocked and ready to go.

Post all the GIF videos to YouTube or something

"the GIFs are too fast" and not interactive (i.e. no pausing or stopping)

To improve the effectiveness of demonstration GIFs as learning tools, their original screencast videos should also be shared with students. YouTube was a suggested medium.

Longer demonstrations

In order to help students establish a higher baseline level of comfort before getting thrown in the metaphorical deep end, consider broadening the scope and lengthening the duration of in-person demonstrations.

Specify commands in assignment instructions

As a student trying to follow along with the various command-line commands, it would be more helpful for me to have access to them inside the assignment instructions than floating around in Slack.

Improper windows file path slashes

The "Website from Scratch" assignment erroneously provides Windows-related instructions that use a mixture of forward- and back-slashes. The windows commands should only use backslashes (e.g. mkdir C:\Users\YOUR_USERNAME\Desktop\my-site).

DOM Event Docs

Students were seeking a comprehensive list of DOM events, so the course material should include links to this and related documentation references.

Move GIFs out of this repo

To reduce the file size of this repository, all GIF files should be removed, uploaded to Amazon S3 or other asset-hosting service, then all original GIF references should point to those hosted versions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.