Difference: SoftwareDevelopmentFall2017 (23 vs. 24)

Revision 242017-11-18 - JimSkon

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Software Development

James Skon
Line: 8 to 8
 
Tutoring:
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. C. A. R. Hoare (1980 Turing Award Lecture)
Changed:
<
<

Overview

>
>

Course Learning Outcomes

 
Changed:
<
<
This course gives students experience designing, implementing, testing and debugging moderately complex systems of software components that collectively form a multilayer application. There will be an emphasis on crafting quality code, designing and implementing effective user interfaces, and building multicomponent architectures using a mix of off-the-self and custom code.Topics will include inner process and inter-system communication, multi-threading, and the synchronization of shared resources, web interfaces, and working with large data sets. Students will primarily use C++, but also will learn Javascript and other languages as needed. Prerequisite: SCMP 118 or permission of instructor.
>
>
This course gives students experience designing, implementing, testing and debugging moderately complex systems of software components that collectively form a multilayer application. There will be an emphasis on crafting quality code, designing and implementing effective user interfaces, and building multicomponent architectures using a mix of off-the-self and custom code.Topics will include inner process and inter-system communication, multi-threading, and the synchronization of shared resources, web interfaces, and working with large data sets. Students will primarily use C++, but also will learn Javascript and other languages as needed. Prerequisite: SCMP 118 or permission of instructor.Cource outcomes

At the completion of this course the students should

  1. Exhibit best practices in creating code that is well structured and organized using object-oriented concepts.
  2. Exhibit an understanding of quality use of identifier naming within code.
  3. Be capable of providing appropriate internal documentation within code.
  4. Understand and utilize proper use of internal barricading and error checking of values within a program.
  5. Be capable of creating detailed requirement for a problem bending solved.
  6. Be capable of creating architectural designs for multi-component software systems.
  7. Be capable of collaboration in software development including pair-programming, peer design and code reviews.
  8. Be capable of creating and using a MySQL database using SQL and phpmysql.
  9. Write JavaScript code using HTML, CSS and jQuery.
  10. be able to create an HTML and JavaScript front end that communicate with a C++ program through an Apache2 web server.
  11. design and develop web based data visualization components and user interfaces that use quality metaphoric concepts.
  12. be able to produce JavaScript and/or C++ effectively processes XML documents.
 

Text

Code Complete, Second Edition; Steve McConnell;
Microsoft Press; 2nd edition (June 19, 2004)
CodeComplete.jpg

Technical Topics

Line: 96 to 110
 
02-20 Collaborative Programming
Group Formation
Chapter 21
Link Chapter 21 GIT HW
02-22 Project 3: Data Visualization, metaphor, and visual communication. Project 3
Visualization Introduction - watch before class
Link   Project 2, Complete
02-24 Project 3 - Project discussion and brainstorming.
Group Formation
visap2015_Cruz_WrongfullyRight.pdf - Please read before class Link    
Changed:
<
<
02-27
General Issues in Using Variables
Group Work
Chapter 10 link 10.Variables.ppt
 
03-1 The Power of Variable Names Chapter 11 link 11.Variables.ppt Project 3 Proposal
>
>
02-27
Visit to Gund Art Gallery
  link 10.Variables.ppt
 
03-1 General Issues in Using Variables, the Power of Variable Names Chapter 10, Chapter 11 link 11.Variables.ppt Project 3 Proposal
 
03-3 Team Presentations on Visualization Plan Include Power points with mockups     Project 3 Presentation
03-4 - 03-19 Spring Break        
03-20 Midterm Exam - Study Guide Chapters 1-11,21, User Interface Design, GIT Link    
Changed:
<
<
03-22          
03-24         Project 3 Version 1
>
>
03-22 Introduction to SQL, phpmyadmin SQLTutorial, Learn SQL, phpmyadmin Tutorial      
03-24 MySQL and the World Database SQL World Database     Project 3 Version 1
 
03-27 Project 3 Code Reviews Be prepared to show and describe code in class for 10 minutes.     Code Review
Changed:
<
<
03-29 Introduction to SQL, phpmyadmin SQLTutorial, Learn SQL, phpmyadmin Tutorial      
03-31 MySQL and the World Database SQL World Database     SQL HW 1
04-03 MySql with C++ C++/MySQL tutorials     SQL HW 2- phpmyadmin
04-05 Project 4: Web Chat with Database Project 4     SQL/C++ HW
04-07 Project 4 Group formation        
04-10 Multi-threaded Coding, timers, Drop downs.        
04-12 Project 5 Work and information        
04-14 Project 5 Work and information XML Parser for C++, Documentation
Demo Software: /home/class/SoftDev/cppXMLAJAX/
     
04-17 Project 6: Massive Word Search Demo Program
Demo Software: /home/class/SoftDev/SearchBooks
Project 6
     
04-19 Project 5 Presentations Be prepared to demonstrate and talk about your project     Project 5 Complete
04-21 Using Conditionals Chapter 15   Chapter 15  
04-24 Controlling Loops Chapter 16   Chapter 16 Project 5 Design
04-26 Binary IO Good Reference: Link
/home/class/SoftDev/binaryFiles
  RecordFieldsBinaryIO.ppt Project 6 - Algorithm Design
04-28 Unusual Control Structures, Table-Driven Methods Chapter 17, 18   Chapter 17
Chapter 18
Project 6 - Code proving design
05-1 Personal Character Chapter 33   Chapter 33  
05-3 The Software-Quality Landscape Chapter 20   Chapter 20 Project 6 - Complete System
05-5 Developer Testing Chapter 22   Chapter 22  
05-9 6:30-9:30pm Final Presentation Project 6   Evaluation Form Moodle Link for Final Presentation
Moodle Link Complete Project
>
>
03-29 Project 4 : Phone App, MySql with C++ C++/MySQL tutorials     SQL HW 1
03-31 More on Bootstrap, CSS       SQL HW 2- phpmyadmin
04-03 Discuss approaches for user interface       Project 4 - Part 1, 2 & 3
04-05 In Class work and instructor demos   Link   Project 4 - Part 4
04-07 Personal Character Chapter 33   Chapter 33  
04-10 Project 5: Web Chat with Database Project 5      
04-12 Automatic updating webpages
Project 5 Group formation
Live Monitoring Processes , code     Project 4 - Complete
04-14 A visit to Gund Gallary?     Chapter 15  
04-17 Project 5 Concept presentations Be prepared to demonstrate and talk about your idea     Project 5 Part 1a: Project concept,and design proposal
04-19 Project 5: meetings with professor        
04-21 Using Conditionals Chapter 15     Project 5 Part 1b: Complete Project Design using Metiphoric concepts
04-24 Controlling loops Chapter 16      
04-26 Project 5 presentations Present Architecture in class     Project 5 part 2: Architectural Design
04-28 Unusual Control Structures, Table-Driven Methods Chapter 17, 18   Chapter 17
Chapter 18
 
05-1 Project 5 Working prototype demos       Project 5 Part 3
05-3 The Software-Quality Landscape Chapter 20   Chapter 20  
05-5 Developer Testing Chapter 22   Chapter 22 Project 5 - complete system
05-9 6:30-9:30pm Final Presentation Project 5   Evaluation Form Moodle Link for Final Presentation
Moodle Link Complete Project
 

Software project grading rubric

Criteria Excellent Acceptable Unacceptable
Line: 130 to 144
 
Robust & Correct
(The program provides the correct output for all possible input.)
  • the program works completely as expected
  • the output is displayed to specification for all valid input
  • the program responds appropriately for all invalid input
  • the program works as expected for most input
  • there may be minor errors in output formatting for valid input
  • not all invalid input is handled reasonably
  • the program does not produce correct output for even the sample input
  • the program fails to handle invalid input
  • exceptions are not caught
Efficient & Elegant
(The program uses both time and space on the computer effectively, without losing source code clarity.)
  • no extra variables or definitions are used
  • the code is small, efficient yet still easily understood
  • extra variables do not make the code harder to understand
  • brute-force problem solving approach
  • extra variables are pervasive and confusing
  • the code is unnecessarily long and patched together
  25-20% 19-11% 10-0%
Changed:
<
<
Email: SCMP39100S17@kenyon.edu
>
>
Email: SCMP39100S17@kenyon.edu
 
Jessie Alperin <alperinj@kenyon.edu>, Ghada Bakbouk <bakboukg@kenyon.edu>, Preston Basting <bastingp@kenyon.edu>, Miku Fukuyama <fukuyamam@kenyon.edu>, gavinhannerc@kenyon.edu, grigullb@kenyon.edu, Elizabeth Iduma <iduma1@kenyon.edu>, khanm@kenyon.edu, murphy1@kenyon.edu, Tess Neau <neaut@kenyon.edu>, ogilviethompsonh@kenyon.edu, Daniel Olivieri <olivierid@kenyon.edu>, riveraj@kenyon.edu, Joseph Schutz <schutzj@kenyon.edu>, seavera@kenyon.edu, solorioc@kenyon.edu, twitchelln@kenyon.edu, vances@kenyon.edu, John Wilhelm <wilhelmj@kenyon.edu>, Yanqi Xu <xuy@kenyon.edu>
Line: 151 to 165
 

Changed:
<
<
>
>
 
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback