CS Department

CSCI 201L Home

Syllabus

Lectures

Assignments

Previous Exams



CSCI 201L
Principles of Software Development
Summer 2019


Chapter references are from Liang, Y. Daniel. Introduction to Java Programming, Comprehensive Version, 11th Edition, Prentice Hall, Inc., 2017. ISBN 978-0134670942


Lectures
Week #LabLecture #DayDateLecture TopicChapterProgram
1 Github Tutorial
Environment Setup
1 Wednesday 5/15 Introduction
Environment
Reading Parameters
Conditions
Loops
Methods
Arrays
Strings
1-8 Operation.java
Fibonacci.java
Salary.java
Dice.java
1 Wednesday 5/15 Classes
Packages
File I/O
9-10 Salary.java
FileCopy.java
FileCopier.java
2 Inheritance
Lab2.java
2 Thursday 5/16 Inheritance
Abstract Classes and Interfaces
Polymorphism
11, 13 TestShape.java
Shape.java
Rectangle.java
Square.java
Triangle.java
2 Thursday 5/16 Garbage Collection
Exception Handling
Serialization
Generics
12, 19 NumberExceptions.java
NumberGreaterException.java Employee.java
EmployeeMain.java
GenericArray.java
Sunday 5/19 ASSIGNMENT 1 DUE
3 HTML/CSS
css0.html
css1.html
css1.css
css2.html
css2.css
3 Monday 5/20 HTML
CSS
base.html
css0.html
css1.html
css1.css
css2.html
css2.css
3 Monday 5/20 Java Servlets
JSP
37-38 jstl-1.2.jar
schoolform.html
SchoolFormServlet.java
SchoolForm.jsp
4 JSP and Servlets 4 Tuesday 5/21 JavaScript
4 Tuesday 5/21 AJAX ajaxform.html
validate.jsp
form.jsp
5 JavaScript and AJAX 5 Wednesday 5/22 Software Engineering
Methodologies
Testing
Royce's Waterfall Paper (1970)
Boehm's Spiral Paper (1988)
Demarco/Boehm Agile Discussion Paper (2002)
5 Wednesday 5/22 Final Project Discussion
6 MySQL Installation 6 Thursday 5/23 Databases 32, 35
6 Thursday 5/23 SQL 32, 35 createDatabase.sql
queryDatabase.sql
Sunday 5/26 ASSIGNMENT 2 DUE
FP - TEAM MEMBERS AND PROPOSAL DUE
Monday 5/27 No Class - Memorial Day
7 JDBC 7 Tuesday 5/28 JDBC
JDBC Tutorial
32, 35 MySQL JDBC Driver 5.1.46
MySQL JDBC Driver 8.0.15
JDBCTest.java
Grades.sql
studentQuery.html
queryStudent.java
displayStudent.jsp
7 Tuesday 5/28 Concurrent Computing 32 MultipleThreads.java
ThreeThreads.java
Tuesday 5/28 FP - HIGH LEVEL REQUIREMENTS DUE
8 Software Engineering 8 Wednesday 5/29 Thread Methods
Thread Pools
Thread Priorities
32 Counting.java
8 Wednesday 5/29 Networking Theory 33
9 No Lab 9 Thursday 5/30
10:00a.m.-12:00p.m.
WRITTEN EXAM #1
Sunday 6/2 ASSIGNMENT 3 DUE
10 Networking Worksheet (PDF)
Networking Worksheet (Word)
10 Monday 6/3 Networking Theory (cont.) 33
10 Monday 6/3 Network Programming
31 ChatServer.java
ChatClient.java
Monday 6/3 FP - TECHNICAL SPECIFICATIONS DUE
11 Threads 11 Tuesday 6/4 Multi-Threaded Network Programming 31 ChatRoom.java
ChatClient.java
ServerThread.java
11 Tuesday 6/4 Networking Serialization 31 ChatRoom.java
ChatClient.java
ServerThread.java
ChatMessage.java
12 Web Server 12 Wednesday 6/5 WebSockets 31 chat.html
ServerSocket.java
12 Wednesday 6/5 Concurrency
Monitors
30 AddAPenny.java
AddAndRemoveAPenny.java
Wednesday 6/5 FP - DETAILED DESIGN DOCUMENT DUE
13 Locks and Monitors
13 Thursday 6/6 Locks and Conditions
Producer/Consumer
30 AddAndRemoveAPenny.java
ProducerConsumerWithMonitors.java
ProducerConsumerWithLocks.java
13 Thursday 6/6 Sleeping Barber
Locks Programming
30 SleepingBarber.java
Customer.java
Util.java
NumberServer.java
NumberClient.java
Thursday 6/6 FP - TESTING DOCUMENT DUE
FP - PEER REVIEW #1 DUE
Friday 6/7 FP - DEPLOYMENT DOCUMENT DUE
14 Sleeping Barber 14 Monday 6/10 Multi-Threaded Programming Design
Semaphores
Semaphore Programming
30 NumberServer.java
NumberClient.java
14 Monday 6/10 Parallel Computing
Lecture Video
Programming Video
30 SumNoParallel.java
SumParallel.java
NonParallelMergeSort.java
ParallelMergeSort.java
Monday 6/10 ASSIGNMENT 5 DUE
FP - COMPLETE CODE DUE
FP - PEER REVIEW #2 DUE
FP - COMPLETE DOCUMENTATION DUE
15 No Lab 15 Tuesday 6/11 FP - Project Demonstrations
15 Tuesday 6/11 WRITTEN EXAM #2