CS Department

CSCI 201L Home

Syllabus

Lectures

Assignments

Previous Exams



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