CSCI 201L Syllabus Principles of Software Development Spring 2018

Similar documents
Introduction to Information Technology ITP 101x (4 Units)

Introduction to Programming System Design CSCI 455x (4 Units)

ISM 324: Information Systems Security Spring 2014

ITP454 Enterprise Resource Planning, Design, and Implementation

Database Systems: Concepts, design, and implementation ISE 382 (3 Units)

ITP489 In-Memory DBMS for Real Time Analytics

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CSCI 6312 Advanced Internet Programming

Internet Web Technologies ITP 104 (2 Units)

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

Cleveland State University

ITP454 Enterprise Resource Planning, Design, and Implementation

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

INFS 2150 (Section A) Fall 2018

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

Advanced Topics in Database Systems Spring 2016

ECE Object-Oriented Programming using C++ and Java

Course Syllabus MIS Foundation of Information Systems Spring Semester, Credit Hours. (Last updated: 1/16/2016)

ITSY Information Technology Security Course Syllabus Spring 2018

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

IS 331-Fall 2017 Database Design, Management and Applications

IS Spring 2018 Database Design, Management and Applications

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

Course and Contact Information. Course Description. Course Objectives

Course Syllabus MIS Foundation of Information Systems Spring Semester, Credit Hours

DIG 3110 Web Design & Interactive Media

CIS 3308 Web Application Programming Syllabus

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Course Syllabus MIS Foundation of Information Systems Spring Semester, Credit Hours

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

Spring CISM 3330 Section 01D (crn: # 10300) Monday & Wednesday Classroom Miller 2329 Syllabus revision: #

CPS352 Database Systems Syllabus Fall 2012

CMSC 132: Object-Oriented Programming II. Administrivia

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS LINUX SYSTEM ADMINISTRATION CSIT 2411

Digital Forensics ITP 375 (3 Units)

CIS 408 Internet Computing (3-0-3)

Course and Contact Information. Course Description. Course Objectives

Web Development: Client Side

Syllabus for HPE 451 Directed Study 1-3 Credit Hours Spring 2014

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

CS 241 Data Organization using C

Computer Science Technology Department

GET 433 Course Syllabus Spring 2017

Introduction to UNIX

Enterprise Network Design ITP 499 (3 Units)

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

Web Programming Spring 2010

Computer Science Technology Department

Web Programming Fall 2011

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

IST359 - INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

programming exercises.

EECE.2160: ECE Application Programming Spring 2019

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET

Syllabus CSCI 405 Operating Systems Fall 2018

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

ESET 349 Microcontroller Architecture, Fall 2018

Windows Server 2008 Applications Infrastructure Configuration (ITMT 2322)

INFSCI 1017 Implementation of Information Systems Spring 2017

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1 and 2, Spring 2016

Introduction to Computers & Their Use

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

Compilers. Computer Science 431

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

A: 90% - 100% B: 80% - <90% C: 70% - <80% D: 60% - <70% F: < 60% Important Dates:

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CS 375 UNIX System Programming Spring 2014 Syllabus

CSCE 441 Computer Graphics Fall 2018

Instructor: Anna Miller

San Jose State University - Department of Computer Science

Murach's HTML and CSS3 3 rd Edition By Boehm, Anne Fresno, Calif Publisher: Mike Murach & Associates, 2015 ISBN-13:

Oklahoma State University Oklahoma City ITD 1113: Windows Expert User Syllabus Fall, 2014

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

Course Syllabus MECHANICAL ENGINEERING LABORATORY I Spring 2006

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

MGMT 4336 Networks & Data Communication Section D10

Office Hours: (By Appoint Only)

IML 300: Reading and Writing the Web

CS 3270 Mobile Development for Android Syllabus

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

Course Title: Computer Networking 2. Course Section: CNS (Winter 2018) FORMAT: Face to Face

Advanced Client-Side Web Programming CSCI 491/595 Syllabus Fall 2018

BS in Computer Science Outcome Set (CAC/ABET)

Computer Science Technology Department

Gerlinde Brady Phone: Office Hours: see Web at:

CS120 Computer Science I. Instructor: Jia Song

Syllabus Course: MIS Foundation of Information Systems Fall Semester, Credit Hours

Developing Web Applications and Services Course Syllabus Fall 2015

Programming Languages CSCE

CONCORDIA UNIVERSITY DEPARTMENT OF CHEMISTRY AND BIOCHEMISTRY CHEM 293 SPECTROSCOPY AND STRUCTURE OF ORGANIC COMPOUNDS. SYLLABUS Winter 2018

CMPE 280 Web UI Design and Development

Programming Game Engines ITP 485 (4 Units)

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Course Syllabus. Course Information

Transcription:

L Syllabus Principles of Software Development Spring 2018 Instructor: Jeffrey Miller, Ph.D. Email: jeffrey.miller@usc.edu Web Page: http://www-scf.usc.edu/~csci201 Office: SAL 342 Phone: 213-740-7129 Lectures: 29928R, Tuesday/Thursday 8:00a.m.-9:20a.m., THH 114 30381R, Tuesday/Thursday 9:30a.m.-10:50a.m., THH 114 30393R, Tuesday/Thursday 11:00a.m.-12:20p.m., GFS 101 Quiz: 29981R, Thursday, 7:00p.m.-8:50p.m. Labs: 29929R, Tuesday, 3:30p.m.-5:20p.m. 29931R, Tuesday, 5:30p.m.-7:20p.m. 30110R, Wednesday, 8:00a.m.-9:50a.m., SAL 126 29930R, Wednesday, 10:00a.m.-11:50a.m. 30380R, Wednesday, 12:00p.m.-1:50p.m., SAL 127 Office Hours: Tuesday 6:00a.m.-7:30a.m. and 12:30p.m.-1:30p.m. Thursday 6:00a.m.-7:30a.m. and 1:30p.m.-3:45p.m. Any day by appointment Textbooks: Liang, Y. Daniel. Introduction to Java Programming, Comprehensive Version, 10 th Edition, Prentice Hall, Inc., 2014. ISBN 978-0133761313 Description: Object-oriented paradigm for programming-in-the-large in Java; writing sophisticated concurrent applications with animation and graphical user interfaces; using professional tools on team project. Grades: Labs 10% Assignments 20% Written Exam #1 15% Group Project 30% Written Exam #2 15% Lecture Attendance 10% Grades will be based on a curve that operates in favor of the students, with at least the following grades for a given percentage x. If the average in the class is lower than 80%, the average will become the cut-off between a B- and a C+. x >= 93 A 73 <= x < 77 C 90 <= x < 93 A- 70 <= x < 73 C- 87 <= x < 90 B+ 67 <= x < 70 D+ 83 <= x < 87 B 63 <= x < 67 D 80 <= x < 83 B- 60 <= x < 63 D- 77 <= x < 80 C+ x < 60 F

Lecture Schedule: Chapter references are from Y. Daniel Liang, Introduction to Java Programming and Data Structures, Comprehensive Version, 11 th Edition, Prentice Hall, 2017. ISBN 978-0134670942 Week Lecture Date Lecture Topic Lab Topic Chapter 1 January 9, 2018 Introduction, Environment, Methods Github 1-8 1 Tutorial, 2 January 11, 2018 Classes, Packages, File I/O Environment 9-10 Setup 2 Abstract Classes and Interfaces, 3 January 16, 2018 11, 13 Inheritance, Polymorphism Inheritance Garbage Collection, Exception Handling, 4 January 18, 2018 12, 19 Serialization, Generics, Inner Classes 3 5 January 23, 2018 HTML, CSS HTML, CSS 6 January 25, 2018 Java Servlets, JSP 37-38 4 7 January 30, 2018 JavaScript JSP and 8 February 1, 2018 AJAX Servlets 5 9 February 6, 2018 Concurrent Computing 32 JavaScript and Thread Methods, Thread Pools, Thread 10 February 8, 2018 AJAX 32 Priorities Software Engineering, Methodologies, 11 February 13, 2018 6 Testing Threads 12 February 15, 2018 Project Description 7 13 February 20, 2018 Networking Theory Software 33 14 February 22, 2018 Networking Theory (cont.) Engineering 33 15 February 27, 2018 Network Programming 33 16 March 1, 2018 Multi-Threaded Network Programming Networking 33 8 March 1, 2018 Worksheet Written Exam #1 7:00p.m.-8:50p.m. 9 17 March 6, 2018 Network Serialization Web Server 18 March 8, 2018 Web Sockets 34-35 10 19 March 20, 2018 Databases MySQL 34-35 20 March 22, 2018 SQL Installation 34-35 11 21 March 27, 2018 JDBC 32 JDBC 22 March 29, 2018 Concurrency, Monitors 32 12 23 April 3, 2018 Locks, Conditions, Producer/Consumer Locks and 32 24 April 5, 2018 Sleeping Barber, Locks Programming Monitors 32 13 Multi-Threaded Programming Design, 25 April 10, 2018 Sleeping 32 Semaphores Barber 26 April 12, 2018 Parallel Computing 40 14 27 April 17, 2018 Distributed Computing, RMI Parallel 28 April 19, 2018 Project Demonstrations Computing 15 29 April 24, 2018 Project Demonstrations 30 April 26, 2018 Project Demonstrations No Lab 16 May 8, 2018 4:30p.m.-6:30p.m. Written Exam #2

Exams: Written Exam #1 Thursday March 1, 2018 7:00p.m.-8:50p.m. Written Exam #2 Tuesday May 8, 2018 4:30p.m.-6:30p.m. The written exams are closed book and will consist of theoretical questions and may have code to be analyzed, though very little code will be required to be written. You are allowed one 8.5 x11 of double-side hand-written notes for the exam, but not other resources are permitted. An exam can only be taken on the scheduled date and at the scheduled starting time. Accommodations for students with letters from DSP will be provided, though the exam will still need to be taken on the scheduled date. There are no makeup exams. If you miss an exam due to an emergency, official written documentation, whatever that may be based on the situation, will need to be submitted to me as soon as you are physically able (before the exam if possible). Approval will be solely based on my discretion though it should be based on a documented illness or emergency. Based on the exam, here are the rules that will be followed: - If an excuse is not approved, you will be given a 0 on the exam. - If there is an approved excuse for written exam #1, the percentage for that exam will be added to the percentage for written exam #2. - If there is an approved excuse for written exam #2, you will receive an Incomplete grade in the course and have to make up the exam based on the conditions of an Incomplete. Assignments: Assignments will be discussed in class and worked on individually. Discussion among students is fine, but no copying of other student s code is allowed. The program needs to compile, and grading will only occur if the program is able to be run. Assignments will be submitted via Github or Blackboard (instructions will be provided in class) and are due by 11:59p.m. on the due date (see Late Policy below). Grading criteria will be provided at the time the assignment is assigned. Graders will grade the assignments. Once grades are entered into Blackboard, students will be able to request a regrade if they think a mistake has been made in the grading through the following process: 1. Within five days of receiving the grade on an assignment, submit a formal request with the online form. Note that this is the only request that can be made to regrade that specific assignment, so be sure to include all relevant information. If the request is submitted more than five days after the grades are posted, the request will be denied. 2. The TA will review the request and determine if a regrade will be granted. a. If the regrade request is denied, the original grade will stand. b. If the regrade request is granted, the TA will forward the request to a grader (possibly a different one than who originally graded it). The grader will conduct a regrade and send the updated grade to the TA, who will then enter it into Blackboard. 3. There will only be one regrade request, and the grade after the regrade is final. If any questions arise beyond that, the student will need to speak with the professor in person.

Project: Late Policy: Labs: Attendance: The project in the class will be assigned approximately half-way through the semester. The project will consist of between 4-6 students. Formal documentation following the software engineering process will be required. The project will be discussed in class with the corresponding due dates. The project deliverables will be submitted via Blackboard and is due by 11:59p.m. on the due date (see Late Policy below). There is no late policy. For any assignment or project that is submitted after 11:59p.m. on the due date, the student will receive a 0. Assignments should be submitted early in case some situation arises that prohibits a student from submitting an updated version before the deadline. I understand that things happen, students get sick, accidents occur, computers crash, and so on, so budget your time appropriately taking into account any risk factors. The TA/CPs will lead the lab section each week. There will be an assigned lab program each week that reinforces the topics covered in the lectures for the week. The lab assignments will be graded based on effort and attendance. You should NOT complete the lab before your assigned lab section. The labs are intended to be completed during the lab period, and you are expected to work on the lab during the section. The lab assistants have been instructed NOT to grade any labs until after half of the lab has elapsed. You also must show up to the lab within the first 10 minutes or you will not be allowed to join the lab that week. Solutions will be posted to the labs, but you should make sure you are using the lab periods to learn the material that has been covered. The lab assistants are there to answer any questions and help you, so use your time in lab wisely. Each lab is worth 0.8% of the final grade, and the total lab score is out of 10%. Any amount over 10% that a student earns for labs will be applied as extra credit. Attendance will be taken during lecture. To receive full credit for attendance, you must attend 26 lectures out of the 30 lectures this semester. If you attend more than 26 lectures, you will receive 0.3% extra credit for each lecture over 26. Because there are four lectures that can be missed without penalty to your final grade, there are no excused absences. You can miss four lectures for whatever reason, but no student will be given attendance points without attending the lecture. If a lecture is cancelled for any reason, it does not change that you still must attend 26 lectures over the semester to receive full credit for attendance. To earn full credit for the lecture, you must arrive within the first 10 minutes of class. Arriving after the first 10 minutes but before 30 minutes will earn half credit. Arriving after 30 minutes will not earn credit. Prerequisites: CSCI 104L Data Structures and Object Oriented Design Students with Disabilities: Any student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to the professor as early in the semester as possible.

Academic Integrity: Viterbi Honor Code: The Viterbi School of Engineering s policy on Academic Integrity can be found at http://viterbi.usc.edu/academics/integrity/. All students are expected to understand and abide by these principles. SCampus (http://scampus.usc.edu), the Student Conduct Code, contains the information about violating University standards in Section 11.00. Any potential violations will be taken seriously and the proper academic process will be followed, including reporting to the USC Student Judicial Affairs and Community Standards (SJACS). Engineering enables and empowers our ambitions and is integral to our identities. In the Viterbi community, accountability is reflected in all our endeavors. Engineering+ Integrity. Engineering+ Responsibility. Engineering+ Community. Think good. Do better. Be great. These are the pillars we stand upon as we address the challenges of society and enrich lives.

Course Outcomes (expected after you've finished the course) i ii iii iv v vi vii viii ix x xii xiii xiv The ability to understand the software engineering in terms of requirements, design, and implementation; An understanding of how to use interaction diagrams to help define requirements; The ability to produce a software design based on requirements; The ability to produce software, including graphical user interfaces, from a design; The ability to unit test a module; An understanding of concurrency and how it works in computer operating systems; The ability to write multi-threaded programs and correctly solve a mutual exclusion problems using semaphores or monitors; The ability to use Java in writing programs; The ability to use HTML and CSS in designing graphical user interfaces; The ability to use messaging as a communication method; The ability to apply a software engineering process to a large software project; The ability to work effectively on a team; An understanding of the ethical issues in working within a group; ABET Program Outcomes (after you have finished your degree) a An ability to apply knowledge of computing and mathematics appropriate to the discipline; b An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution; c An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs; d An ability to function effectively on teams to accomplish a common goal; e An understanding of professional, ethical, legal, security, and social issues and responsibilities; f An ability to communicate effectively with a range of audiences; g An ability to analyze the local and global impact of computing on individuals, organizations and society; h Recognition of the need for, and an ability to engage in, continuing professional development; i An ability to use current techniques, skills, and tools necessary for computing practices. j An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices; k An ability to apply design and development principles in the construction of software systems of varying complexity.