CS Department

CSCI 201L Home

Syllabus

Lectures

Assignments

Previous Exams



CSCI 201L
Principles of Software Development
Fall 2018


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