Comp 401 Concluding Remarks

Slides:



Advertisements
Similar presentations
CS Body of Knowledge (ACM) Discrete Structures Programming Fundamentals Algorithms & Complexity Operating Systems Architecture & Organization Social &
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
CMSC 132: Object-Oriented Programming II
Lecture 23: Software Architectures
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Reasons to study concepts of PL
Programming Languages Structure
Comp 14 Introduction to Programming Instructor: Prasun Dewan (Pr  sün Divän)
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
1 Object Oriented Programming Computer Systems Engineering (D2) and Programming (P)
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
CSCA48 Course Summary.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
Real Time Programming Language. Intro A programming language represents the nexus of design and structure. But misuse of the programming language can.
Design Patterns. OO-Concepts Don’t rewrite code Encapsulation Inheritance Write flexible code.
CS 151: Object-Oriented Design October 15 Class Meeting Department of Computer Science San Jose State University Fall 2013 Instructor: Ron Mak
C OMP 401 C ONCLUDING R EMARKS Instructor: Prasun Dewan.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
C OMP 401 G RAPH VS. D AG VS. T REE O BJECT S TRUCTURES Instructor: Prasun Dewan.
CASE Tools CSC 532 : Advance Topics CSC 532 : Advance Topics Software Engineering Software Engineering Dr. box Dr. box Moayad Almohaishi Moayad Almohaishi.
12-Jun-16 Event loops. 2 Programming in prehistoric times Earliest programs were all “batch” processing There was no interaction with the user Input Output.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Intro to ASP.NET CS-422 Dick Steflik. What is.NET As applications in the Enterprise become more and more netcentric and less and less standalone.NET is.
Principles of Programming & Software Engineering
Software Engineering “Practical Approach”
Prof. Bhushan Trivedi Director GLS Institute of Computer Technology
CSC 222: Object-Oriented Programming
CST 1101 Problem Solving Using Computers
CSC207 Fall 2016.
Introduction: From Nand to Tetris
Event loops 16-Jun-18.
Introduction to Design Patterns
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Lecture 2 of Computer Science II
Object-Orientated Programming
CMPE419 Mobile Application Development
Ap computer science 2 AP COMPUTER SCIENCE A EXAM SPRING OF EVERY YEAR
Object-oriented design for multiple classes
Event loops.
Comp 401 Concluding Remarks
CMPE 152: Compiler Design August 23 Class Meeting
Introduction to Computer Science for Majors II
CSE 341 Programming Languages Autumn 2003
Event loops 17-Jan-19.
Event loops 17-Jan-19.
CSE 341 Programming Languages Spring 2003
PPT and video are due no later than February 15, 2019
(Computer fundamental Lab)
CS5103 Software Engineering
Event loops 8-Apr-19.
CSE 341 Programming Languages Autumn 2003
Java History, Editions, Version Features
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
CMPE 152: Compiler Design January 29 Class Meeting
Chapter 2. Problem Solving and Software Engineering
11. MVC SE2811 Software Component Design
11. MVC SE2811 Software Component Design
Event loops.
CMPE419 Mobile Application Development
Event loops.
CSCE156: Introduction to Computer Science II
Computer Science Courses in the Major
Event loops 19-Aug-19.
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

Comp 401 Concluding Remarks Instructor: Prasun Dewan

Course  Future Project Advanced Courses Topics LAship Praxes Internships Diaries Research Quizzes Building an app Exam(s)

Topics Advanced Algorithms Design Patterns Advanced Java Features Scanning Objects Overloading Properties Interfaces Shape objects Composite objects Collections Inheritance MVC, Observer Toolkits Graphics (painting) views Assertions Animation Command Objects Threads Synchronized Methods Wait and Notify Abstract Classes Recursive Parsing and Grammars Trees, DAGs Generics Factories, Adapter, Delegation Exceptions Advanced Algorithms Design Patterns Advanced Java Features Complex Data Structures

Quick Review of Design Patterns The design patterns taught in Comp 401 Prasun Dewan, Teaching Inter-Object Design Patterns to Freshmen. Proceedings of ACM SIGCSE. 2005 PPT

Future Optional Courses Topics Scanning Objects Overloading Properties Interfaces Shape objects Composite objects Collections Inheritance MVC, Observer Toolkits Graphics (painting) views Assertions Animation Command Objects Threads Synchronized Methods Wait and Notify Abstract Classes Recursive Parsing and Grammars Trees, DAGs Generics Factories, Adapter, Delegation Exceptions Human Computer Interaction Software Engineering (Design Patterns) Operating Systems Compilers/PL/Internet Protocols

Large-Scale Object-Oriented Programming! Large in terms of number of number of classes/types Defined by you (Programmer-defined) Count them! Army of “paint listeners” Largest (in terms of components) you may write at UNC or elsewhere Refactoring

Programming Process and Tools Class path and libraries (Eclipse) Following Requirements Using a Test Suite (JUnit) Debugging (Eclipse)

Style Checks (Check Style)  Security

Praxis: Active Learning, Maintenance, Version Control Sharing code and version control (GIT)

Interpreter of Programming Language

Beginning programmers learn how to use Alice Use Methods Drag method names from the details window Methods area to world.my first method Can Group Methods Do in order One after the other Or Do together At the same time You built an Alice-like visual programming environment that can be used by others to program Beginning programmers learn how to use Alice Barbara Ericson ericson@cc.gatech.edu Georgia Institute of Technology

Building an app Handling of User and Internal Errors Concurrency Flexible, Multiple User Interface Scanning Parsing Geometry Processing Use of Window Systems and Toolkits

Logical Data Structure Visualizer, Style-based Tool, Training Wheels (ObjectEditor) public Line getXAxis() {return xAxis;} public Line getYAxis() {return yAxis;} public StringShape getXLabel() {return xLabel;} public StringShape getYLabel() {return yLabel;} public int getAxesLength() {return axesLength;} public void setAxesLength(int anAxesLength) { axesLength = anAxesLength; xAxis.setWidth(axesLength); yAxis.setHeight(axesLength); xAxis.setX(toXAxisX()); xAxis.setY(toXAxisY()); yAxis.setX(toYAxisX()); … }

Written and oral skills Diaries and Q/A Written and oral skills Abstraction

Make you (and me) think about and identify what you have programmed Quizzes and Exams Make you (and me) think about and identify what you have programmed

Modularity Class Decomposition into Methods: Recursive descent programming Program Decomposition into Classes: Design Patterns Process Decomposition into Threads: wait, notify, synchronized methods, command objectys

Proving things about what your program can (not) do What did you not Learn Distributed Systems Efficient and Complex Data Structures and Algorithms (Implemented by Java) How a computer system works on regular and mobile computing (Architecture, OS, Compilers) Proving things about what your program can (not) do Team Programming