Syllabus: CSCI 331
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:
- Create a website using HTML, CSS, and JavaScript.
- Deploy a dynamic web application that incorporates database technology and at least one server-side programming language.
- Critically assess multiple full-stack development frameworks.
Instructor
- Office hours
- Office: Gianforte Hall 160-C
- Email: daniel.defrance@montana.edu
- Faculty Directory
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 insidepublic_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.eduusername.
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.
