CSCI 201L Syllabus Principles of Software Development Spring 2017

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

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

Introduction to Java Programming ITP 109 (2 Units) Fall 2015

Computer Science CS 2334: Programming structures and abstractions

College Algebra Online Course Syllabus

ITP 300: Database Web Development. Database Web Development (Monday section) Fall 2012 Course Units

CIS Information and Database Systems I. Course Syllabus Spring 2015

Interactive Web Development ITP 301 (4 Units)

Mobile Application Technologies ITP 140 (2 Units)

Mobile Application Development ITP 342 (3 Units)

Mobile Application Development ITP 342 (3 Units)

Syllabus: IST451. Division of Business and Engineering. Penn State Altoona

Video Game Programming ITP 380 (4 Units)

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

Database Web Development ITP 300 (3 Units)

COURSE SYLLABUS PAD 3003 Section 05 Public Administration in Society: Online

Fundamentals of Computer Programming CS 101 (3 Units)

COURSE REQUIREMENTS AND EXPECTATIONS FOR ALL STUDENTS ENROLLED IN COLLEGE ALGEBRA ROWAN UNIVERSITY CAMDEN CAMPUS SPRING 2011

Analytical Chemistry Lecture - Syllabus (CHEM 3310) The University of Toledo Fall 2012

The University of Akron Department of Mathematics. 3450: COLLEGE ALGEBRA 4 credits Spring 2015

3D Modeling, Animation, Compositing, and Special Effects ITP 215x (2 Units)

ISM 3254 Business Systems I

GIT 335 COMPUTER SYSTEMS TECHNOLOGY Course Syllabus Fall 2008 Professor Penny Ann Dolin

TA contact information, office hours & locations will be posted in the Course Contacts area of Blackboard by end of first week.

COURSE SYLLABUS INTRODUCTION TO INTERNATIONAL BUSINESS, MGT ONLINE FALL 2013

DESIGN FOR USER EXPERIENCE (ITP 310)

Investment Management Course

COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida

Mobile Application Development ITP 342 (3 Units)

Syllabus. Methods of Social Research, SYA , Spring 2009

Tennessee Wesleyan College Math 131 C Syllabus Spring 2016

University of North Georgia Department of Criminal Justice College of Arts and Letters

Introduction to Cloud Technologies ITP 111x (2 Units)

Course Syllabus OPRE/MIS Supply Chain Software The University of Texas at Dallas

Mobile App Project ITP 442x (4 Units)

University of Florida ADV 3502, Section 7E39 Advertising Sales Summer C 2016

1. COURSE DESCRIPTION

Precalculus Algebra Online Course Syllabus

Intro. to Data Visualization Spring 2016

Department of Chemistry, Delaware State University

College Algebra MATH 1111/11

Peru State College, Peru, NE. MGMT 602 Research Methods. Master of Science in Organizational Management. Syllabus Spring Semester 2014

Central Texas College CLASS SYLLABUS Term: 1 Fall Colorado Ave., Bldg 733E Fort Leonard Wood, MO (573)

Advanced Online Media Production

Syllabus Principles of Microeconomics ECON200-WB11 Winter Term 2016

3D Modeling, Animation, and Special Effects ITP 215x (2 Units)

Technologies and Processes for Building Web Startups ITP 499 (4 Units)

International Business Negotiations. Spring Semester 2013

SOCIOLOGY OF GENDER-SYLLABUS

Seattle Central Community College BITCA Division. Syllabus MIC Online

NORTHWESTERN UNIVERSITY Department of Statistics. Fall 2012 Statistics 210 Professor Savage INTRODUCTORY STATISTICS FOR THE SOCIAL SCIENCES

Course Syllabus. Software Project Management

ACCY 2001 Intro Financial Accounting Fall 2014

Professor: Dr. Esra Memili Office: 370 Bryan Office Hours: Monday 2:00-6:00pm and 8:50-9:50pm, and by appointment

Introduction to Computer Forensics ITP 499 (3 Units)

Gustavus Adolphus College Department of Economics and Management E/M : MARKETING M/T/W/F 11:30AM 12:20AM, BH 301, SPRING 2016

Major Topics Covered in the Course

Software Development Foundations CPSC Spring 2014 Syllabus

English 230: Shakespeare and His Time

IML 400 Creative Coding for the Web

COURSE SYLLABUS INTRODUCTION TO INTERNATIONAL BUSINESS MGT ONLINE FALL 2014

Geography 676 Web Spatial Database Development and Programming

MCOM 251: RADIO BROADCASTING Fall Semester, 2016

PLV Goldstein 315, Tuesdays and Thursdays, 6:00PM-7:50PM. Tuesdays and Thursdays, 4:00PM-5:30PM and 7:50PM 9:30PM at PLV G320

MAC2233, Business Calculus Reference # , RM 2216 TR 9:50AM 11:05AM

Dr. Gus C. Lease. Instructor: MUSIC BUILDING, Room 185. Office Location: 1/408/ Telephone:

Building the High Tech Startup ITP 499x (4 Units)

CS 425 Software Engineering

Syllabus for PM538 Introduction of Biomedical Informatics and the Applications

January 10, Course MIS Enterprise Resource Planning Professor Dr. Lou Thompson Term Spring 2011 Meetings Thursday, 4-6:45 PM, SOM 1.

CPIT-285 Computer Graphics

Introduction to Integrated Marketing Communication (IMC) Department of Communication Studies University of North Carolina Wilmington

GEOG 5200S Elements of Cartography : Serving the Community Through Cartography Spring 2015

Florida State College at Jacksonville MAC 1105: College Algebra Summer Term 2011 Reference: MW 12:00 PM 1:45 PM, South Campus Rm: G-314

University of Florida ADV 3502, Section Advertising Sales Spring 2016

Department of Geography University of Idaho. GEOG 390: Geographic Visualization January to May 2010 COURSE OUTLINE. (subject to change)

IINF 202 Introduction to Data and Databases (Spring 2012)

Introduction to Computer Forensics Course Syllabus Spring 2012

South Plains College: General Course Syllabus

Department of Economics and Finance Lutgert College of Business ECP 6705 Managerial Economics Fall 2013 CRN Lutgert Hall 2208

Course information: Copy and paste current course information from Class Search/Course Catalog.

ACG (10061) INTERMEDIATE THEORY III (3 credit hours) Tentative Syllabus spring 2012 Class hours: Wednesdays, 7:10 p.m. 10:00 p.m.

BADM323: Information Systems for Business Professionals SU2016 Online Course

BUAD 310 Applied Business Statistics. Syllabus Fall 2013

Mobile App Design ITP 340x (3 Units)

Lincoln Land Community College Business and Technologies Division COS Office Professional Syllabus - 3 credit hours

Network Security ITP 457 (4 Units)

Lehigh University CHEM 112 ORGANIC CHEMISTRY II Spring 2016 Course Syllabus. Instructors:

ISM 4210: DATABASE MANAGEMENT

ECON 351: Microeconomics for Business

ABNORMAL PSYCHOLOGY (PSYCH 238) Psychology Building, Rm.31 Spring, 2010: Section K. Tues, Thurs 1:45-2:45pm and by appointment (schedule via )

FUNDAMENTALS OF NEGOTIATIONS Purdue University Fall 2014 CSR CRN Tuesday and Thursday 7:30 AM - 8:45 AM Krannert Building G016

Syllabus -- Spring 2016 Juvenile Justice (CRJU CRN 7031)

Database Management Systems ISM 4212 (3 Credit Hours) Fall 2011

West Los Angeles College Department of Allied Health Pharmacy Technician Program

Kean University Department of Criminal Justice Ethics in Criminal Justice CJ Spring 2012

MAR 4232 Retail Management Syllabus Spring 2014 Term

CSCI-599 DATA MINING AND STATISTICAL INFERENCE

Security and Computer Forensics ITP 477 (4 Units)

Transcription:

CSCI 201L Syllabus Principles of Software Development Spring 2017 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, Monday/Wednesday 8:a.m.-9:50a.m., THH 212 381D, Tuesday/Thursday 9:a.m.-10:50a.m., SOS B4 393R, Tuesday/Thursday 11:00a.m.-12:20p.m., SOS B4 Quiz: 29981R, Friday Labs: 29990R, Tuesday, 8:00a.m.-9:50a.m., SAL 109 29929R, Tuesday, 3:p.m.-5:20p.m., SAL 109 29931R, Tuesday, 5:p.m.-6:20p.m., SAL 109 110R, Wednesday, 8:00a.m.-9:50a.m., SAL 109 299R, Wednesday, 10:00a.m.-11:50a.m., SAL 109 380R, Wednesday, 12:00p.m.-1:50p.m., SAL 127 Office Hours: Monday 12:00p.m.-1:p.m. Tuesday 12:p.m.-1:p.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 graphic user interfaces; using professional tools on team project. Grades: Labs 10% Assignments 20% Group Project % Programming Exam #1 10% Programming Exam #2 10% Written Exam #1 10% Written Exam #2 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, Comprehensive Version, 10 th Edition, Prentice Hall, 2014. ISBN 978-0133761313 Week Lecture Date Lecture Topic Lab Topic Chapter 1 January 9-10, 2017 Introduction, Environment, Methods Github 1-8 Tutorial, 1 Classes, Packages, File I/O, Abstract 2 January 11-12, 2017 Environment Classes and Interfaces Setup 9-10, 12-13 No Lecture Martin Luther King Jr. s January 16-17, 2017 2 Birthday File I/O 3 January 18-19, 2017 Inheritance, Polymorphism 11 3 Garbage Collection, Exception Handling, 4 January 23-24, 2017 12, 19 Serialization, Generics, Inner Classes Inheritance 5 January 25-26, 2017 HTML, CSS 4 6 January -31, 2017 Java Servlets, JSP 37-38 HTML, CSS 7 February 1-2, 2017 JavaScript, AJAX Software Engineering, Methodologies, 8 February 6-7, 2017 5 Testing JSP 42 9 February 8-9, 2017 Concurrent Computing 10 February 13-14, 2017 Thread Methods, Thread Pools, Thread Priorities 6 11 February 15-16, 2017 Project Description, Review for Exam No Lab February 17, 2017 Written Exam #1 7 12 February 20-21, 2017 No Lecture Presidents Day AJAX 13 February 22-23, 2017 Networking Theory 31 14 February 27-28, 2017 Network Programming 31 15 March 1-2, 2017 Networking Serialization 31 8 Practice Exam March 3, 2017 Programming Exam #1 9 16 March 6-7, 2017 Multi-Threaded Network Programming MySQL 31 17 March 8-9, 2017 Databases Installation 32, 35 March 13-16, 2017 No Lecture Spring Break No Lab 10 18 March 20-21, 2017 SQL 32, 35 Threads 19 March 22-23, 2017 JDBC 32, 35 11 20 March 27-28, 2017 Concurrency, Monitors JDBC 21 March 29-, 2017 Locks, Conditions, Producer/Consumer 22 April 3-4, 2017 Sleeping Barber, Locks Programming 12 Multi-Threaded Programming Design, Networking 23 April 5-6, 2017 Semaphores 13 24 April 10-11, 2017 Parallel Computing Locks, 25 April 12-13, 2017 Distributed Computing, RMI Monitors 39 14 26 April 17-18, 2017 Project Demonstrations Parallel April 19-20, 2017 Project Demonstrations Computing 27 April 24-25, 2017 Project Demonstrations 28 April 26-27, 2017 Project Demonstrations 15 Practice Exam April 28, 2017 Programming Exam #2 16 May 9, 2017 4:p.m.-6:p.m. Written Exam #2 Exams: Written Exam #1 Friday February 17, 2017 Programming Exam #1 Friday March 3, 2017 Programming Exam #2 Friday April 28, 2017 Written Exam #2 Tuesday May 9, 2017 4:p.m.-6:p.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. The programming exams are open book and open Internet, though no other people can be used (i.e. no posting on discussion boards, email, chatting, texting, etc.). You will need to write a program that compiles based on certain specifications, similar to assignments, though adjusted based on time constraints. 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 (hopefully before the exam). 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 following: - If an excuse is not approved, you will be given a 0 on the exam. - If there is an approved excuse for the written midterm exam, the percentage for that exam will be added to the percentage for the written final exam. - If there is an approved excuse for the programming exam #1, the percentage for that exam will be added to the percentage for the programming exam #2. - If there is an approved excuse for the programming exam #2, that percentage will be added to the percentage for the written final exam. - If there is an approved excuse for the written final exam, 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. Grading criteria will be provided at the time the assignment is assigned. Graders will grade the assignments. If any questions arise based on the grade on the assignment, students should first contact the grader who graded the assignment. If a satisfactory resolution is not reached, you should next contact the TA. If a satisfactory resolution is still not reached, then come to the professor. Assignments will be submitted via Blackboard and are due by 11:59p.m. on the due date (see Late Policy below). Project: Late Policy: 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. In extenuating circumstances, students may be allowed to submit an assignment late, but only if approved by the professor. This typically should be done before the due date, though I understand some situations may not allow this. For any assignment or project that is submitted after 11:59p.m. on the due date, the student will receive a 0.

Labs: 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 two-hour 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 one hour 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, especially since the code used during the lab is the basis for the programming exams. 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%. With 14 labs, that gives a total of 11.2%. That means that you are able to miss 1½ labs without penalty to your final grade, or you can earn 1.2% extra credit if you get full credit on all of the labs. Prerequisites: CSCI 104L Data Structures and Object Oriented Design Students with Disabilities: Academic Integrity: Viterbi Honor Code: 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. 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 The ability to understand the software engineering in terms of requirements, design, and implementation; ii An understanding of how to use interaction diagrams to help define requirements; iii The ability to produce a software design based on requirements; iv The ability to produce software, including graphical user interfaces, from a design; v The ability to unit test a module; vi An understanding of concurrency and how it works in computer operating systems; vii The ability to write multi-threaded programs and correctly solve a mutual exclusion problems using semaphores or monitors; viii The ability to use Java in writing programs; ix The ability to use HTML and CSS in designing graphical user interfaces; x The ability to use messaging as a communication method; xii The ability to apply a software engineering process to a large software project; xiii The ability to work effectively on a team; xiv 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.