Weekly Schedule

Web Development

CSCI 331 explores how modern websites and web applications are designed, built, and published. Students progress from HTML, CSS, and JavaScript through server-side programming, databases, APIs, and full-stack development, culminating in a complete web application that integrates frontend and backend technologies.

Course Description

CSCI 331 Web Development: 3 Credits (3 Lec)

Corequisite: CSCI 232. Full-stack web development. HTML, CSS, JavaScript, database and data-storage techniques, server-side programming, and a variety of development frameworks. Students work in groups to build their own web application using revision control and present their project to the class. MART 145RA is recommended.

Course Outcomes

After successfully completing this course, students will be able to:

  1. Create a website using HTML, CSS, and JavaScript.
  2. Deploy a dynamic web application that incorporates database technology and at least one server-side programming language.
  3. Critically assess multiple full-stack development frameworks.

Instructor

Daniel DeFrance

Meeting Times

Monday, Wednesday, and Friday, 1:10–2:00 p.m., in Gianforte Hall 200

Course Assistant

Responsible for grading assignments:

Baral, Prakriti <prakritibaral@montana.edu>

Course assistants provide help through the Student Success Center.

Resources

No textbook is required. Course readings and references are available online.

  • Computer: Regular access to a computer capable of running a code editor and the course’s local development tools. A laptop is recommended.
  • Web documentation:MDN Web Docs and W3Schools
  • Code editor:Visual Studio Code will be used in class. Students may use another suitable editor or IDE.
  • Validation:W3C HTML Validator and W3C CSS Validator
  • Version control:Git installation guide and GitHub. A free GitHub account is required.
  • Local web-development environment:AMPPS will be used in class. MAMP or another environment with appropriate LAMP support may also be used.
  • File transfer:FileZilla will be demonstrated in class. Other suitable FTP clients may be used.
  • Full-stack tools:Node.js, Express, and React. Other frameworks and stacks may be appropriate for the final project.
  • Off-campus access: The MSU VPN may be required to reach course systems from outside the campus network.
  • Additional project information and current course links are provided in Canvas.

Course Server (The Short Version)

Use a terminal or command-shell window to log in to the course server. Replace <netid> with your MSU NetID:

ssh <netid>@csci331vm.cs.montana.edu

Prepare your home directory for web access:

chmod 711 ~
mkdir -p ~/public_html
chmod 755 ~/public_html

Place your index.html and other website files inside public_html. Your website will be available at:

https://csci331vm.cs.montana.edu/~<netid>/

The course site is visible only to users on the MSU-Secure Wi-Fi network. You must also be connected to the campus network or MSU VPN to use SSH or FTP. It is advisable to work locally in AMPPS and then synchronize your work with your space on the course server.

```html

Course Server (The Long Version... If you're having trouble with the above)

You must be connected to the MSU campus network or MSU VPN to use the course server.

Log in

Open a terminal or command-shell window. Replace <netid> with your MSU NetID:

ssh -l <netid>@student.montana.edu csci331vm.cs.montana.edu

For example, if your NetID is z98p293, enter:

ssh -l z98p293@student.montana.edu csci331vm.cs.montana.edu

Enter your MSU password when prompted. The password will not appear on the screen while you type.

Important: Do not shorten the login command to ssh <netid>@csci331vm.cs.montana.edu. Some student accounts are recognized by the server only when @student.montana.edu is included in the username.

Find your server username

After logging in, enter:

whoami

Record the result. Depending on how your MSU account is represented on the server, it may look like either of these:

<netid>
<netid>@student.montana.edu

This is not a profile that you created. It is the username assigned to your account by MSU’s authentication system.

Create your web directory

Enter these commands while logged in to the course server:

chmod 711 ~
mkdir -p ~/public_html
chmod 755 ~/public_html

Add an index.html file and other website content to public_html. HTML files must be readable by the web server. For example:

chmod 644 ~/public_html/index.html

Open your website

Your website address uses the exact username displayed by whoami:

http://csci331vm.cs.montana.edu/~<username-shown-by-whoami>/

For example, if whoami displays:

z98p293@student.montana.edu

then the website address is:

http://csci331vm.cs.montana.edu/~z98p293@student.montana.edu/

If whoami displays only:

z98p293

then the website address is:

http://csci331vm.cs.montana.edu/~z98p293/

Troubleshooting

If the website does not load, verify the directories and file:

ls -ld ~
ls -ld ~/public_html
ls -l ~/public_html/index.html

The permissions should normally begin with:

drwx--x--x  home directory
drwxr-xr-x  public_html
-rw-r--r--  index.html
  • Not Found or 404: Check the username in the URL, the spelling and capitalization of index.html, and whether the file is inside public_html.
  • Forbidden or 403: Check the directory and file permissions shown above.
  • SSH will not connect: Confirm that you are connected to the campus network or MSU VPN and that you used the full <netid>@student.montana.edu username.

The course site is visible only on the MSU campus network or through the MSU VPN. Develop and test your site locally, then copy or synchronize the files with your public_html directory on the course server.

Grading

The Midterm Exam must be taken in class at the regularly scheduled time. It will not be given early or late without a university-excused absence.

  • Assignments: 45% (all assignments weighted equally)
  • Midterm Exam: 20%
  • Final Project: 30%
    • Published Site: 20%
    • Public GitHub Repository: 5%
    • Presentation: 5%
  • Peer Evaluations: 5% (all peer evaluations weighted equally)

Letter grades are determined after any curving takes place. A curve, if used, will only lower the minimum percentages required for letter grades; it will never raise them. Without a curve, the following scale applies:

Letter grade
Minimum percentage
A
93
A-
90
B+
87
B
83
B-
80
C+
77
C
73
C-
70
D+
67
D
63
D-
60
F
Below 60

Course Policies

See the course policies page for expectations and consequences concerning collaboration, academic integrity, copyright responsibilities, the use of tools such as ChatGPT, late work, and emergencies.

CSCI 331-Specific Policy

In case of an emergency, each student has one seven-day late pass that may be used for any assignment due through Week 12. To use the late pass, email the course assistant before the assignment’s original deadline and submit the assignment within seven days of that deadline.

Additional MSU Resources