MW, 11:00am to 12:15pm
Class will not meet on:
Class will meet on:
This course provides an in-depth introduction to some of the fundamental concepts of computer systems, including programming languages and the principles of analysis and design of software systems. The students will learn the material through the combination of class lectures and discussions, in-class demos, homework assignments and work on a term project.
We will start the course with an introduction to programming and study the principles of structured programming and how it can be used for developing business systems. We will use Visual Basic 2010 as the language of choice, but will generalize the covered concepts to other programming languages in order to understand the underlying programming principles. The course does not assume any prior familiarity with programming concepts, and we will start from the very basic concepts in the course. Therefore, if you have not studied any programming languages before, you can still take the course. At the end of this part of the course, the students will develop sufficient familiarity with programming concepts and will acquire basic programming skills required in other parts of this course and possibly other IS courses.
After covering the basic programming concepts and developing basic programming skills, the students will study more advanced programming concepts, including elements of object-oriented programming, files, structures, elements of Web-based application development, and how to access database management systems from within Visual Basic and other programming languages.
Finally, the course will also cover the principles of software design and development of end-to-end business applications. The students will learn the principles of structured and modular software development, the Systems Development Lifecycle (SDLC), how to initiate and plan IT projects and how to analyze, design, implement and support IT systems. In addition, the students will study how business applications are organized into client-server, three-tier and other types of application architectures. Finally, the course will cover the concepts of layered and modular approaches to application development, technology stacks, and Application Programming Interfaces (APIs).
Upon completion of this course, the students will be able to:
The course does not assume any prior familiarity with programming concepts, and we will start studying programming from the very basic concepts. Therefore, if you have not studied any programming languages before, you can still take the course. However, prior familiarity with programming will help because we will move fairly quickly over the basic programming concepts to spend more time studying more advanced programming and other topics.
The course will consist of the following three main parts:
Part I: Introduction to Programming
Basic programming concepts: variables, data types, decision and iteration operations, arrays, strings and string manipulation; compiling, running and debugging programs; Integrated Development Environments (IDE); procedures; designing User Interfaces and overview of different elements of visual programming, including various types of controls. All these concepts will be learned using Visual Basic 2010. Overview of the principles of structured programming and good software design.
Part II: More Advanced Topics in Visual Basic
Elements of object-oriented programming, including classes, objects and inheritance; files and structures; Web-based applications; using BASIC for developing spreadsheet macros. Integration of database systems into business applications; accessing database management systems from within software programs (including Visual Basic) using Open Database Connectivity (ODBC) and other methods. Overview of the .NET framework and how Visual Basic fits into it; overview of other .NET programming languages and their relationships to Visual Basic.
Part III: Elements of System Analysis and Design and Basic Principles of Business Application Development
Overview of basic project management concepts; discussions of principles of successful management of IT projects and the reasons for IT project failures. Systems Development Lifecycle (SDLC) and its main phases: planning, analysis, design, implementation and support; discussion of the key activities associated with each of these phases; discussion of how these phases can be integrated into one cohesive process. Overview of various methodologies, models, tools and techniques that support the systems analysis and design process. Introduction to different types of application architectures, including client-server, three-tier and service-oriented architectures; overview of layered and modular approaches to application development, and of technology stacks. Introduction to Application Programming Interfaces (APIs), mashups and modern distributed application development involving these APIs and mashups.
The following book is required for this course:
There will be a group project in which a team of students will develop a stand-alone business application. The purpose of the project is to put to practice different concepts learned in the course and be able to combine various programming, software design and application development skills developed separately in different parts of the course.
There will be several homework assignments given in the course. They are due at the end of the class on the day specified in the assignment. Late penalty of 10 points will be applied to the assignments handed afterthe end of this class and before the next class. Assignments handed-in after the next class will lose 20 points. Assignments handed-in after two class meetings will get a 0 grade.
A student’s overall combined average score will be calculated based on the following components:
Midterm Exam 25%
Final Exam 25%
Class Participation 5%
All of these items will be graded on a 100-point basis, i.e. you will not be given grades for individual components. These grades will be combined using the weights specified above, and the final grade will be based upon the weighted numerical score.
We will be using Blackboard as an electronic forum for the class. To access Blackboard, go to http://sternclasses.nyu.edu, select this class (C20.0035) and login with your Stern username and password.
There will be a group project in which a team of students will develop a stand-alone business application. The purpose of the project is to put to practice different concepts learned in the course and be able to combine various programming, software design and application development skills developed separately in different parts of the course. The group project will be conducted according to the following guidelines.
Guidelines for Group Projects
Business activities involve group effort. Consequently, learning how to work effectively in a group is a critical part of your business education.
Every member is expected to carry an equal share of the group’s workload. As such, it is in your interest to be involved in all aspects of the project. Even if you divide the work rather than work on each piece together, you are still responsible for each part. The group project will be graded as a whole: its different components will not be graded separately. Your exams may contain questions that are based on aspects of your group projects.
It is recommended that each group establish ground rules early in the process to facilitate your joint work including a problem-solving process for handling conflicts. In the infrequent case where you believe that a group member is not carrying out his or her fair share of work, you are urged not to permit problems to develop to a point where they become serious. If you cannot resolve conflicts internally after your best efforts, they should be brought to my attention and I will work with you to find a resolution.
You will be asked to complete a peer evaluation form to evaluate the contribution of each of your group members (including your own contribution) at the conclusion of each project. If there is consensus that a group member did not contribute a fair share of work to the project, I will consider this feedback during grading.
At NYU Stern we seek to teach challenging courses that allow students to demonstrate their mastery of the subject matter. In general, students in undergraduate core courses can expect a grading distribution where:
Note that while the School uses these ranges as a guide, the actual distribution for this course and your own grade will depend upon how well you actually perform in this course.
The process of assigning grades is intended to be one of unbiased evaluation. Students are encouraged to respect the integrity and authority of the professor’s grading system and are discouraged from pursuing arbitrary challenges to it.
If you believe an inadvertent error has been made in the grading of an individual assignment or in assessing an overall course grade, a request to have the grade re-evaluated may be submitted. You must submit such requests in writing to me within 7 days of receiving the grade, including a brief written statement of why you believe that an error in grading has been made.
Expectations Regarding Class Behavior and Course Norms
1. Code of Conduct. It is expected that the students will follow the official Code of Conduct adopted by the Stern School and posted at www.stern.nyu.edu/uc/codeofconduct.
2. Class Attendance. It is essential for the students in this course to attend the classes because a lot of learning takes place in the classroom.
3. Lateness. I start the classes on time and would like the students to come to the classes on time. If you are late for some reason, please enter the class as quietly and unobtrusively as possible in order to minimize the class disruption. I also discuss some of the important issues and make important announcements at the beginning of the class. Therefore, if you are late, you will miss important discussions and announcements.
4. Homeworks. It goes without saying that I consider the NYU code of integrity to be very important. Discussions with your classmates are acceptable and encouraged as a part of the overall learning process. However, homeworks are expected to be done on an individual bases (unless explicitly stated otherwise), and this policy will be strictly enforced.
5. In-class laptop policy. Laptops, cell phones, Smartphones and other electronic devices are a disturbance to both students and professors. All electronic devices must be turned off prior to the start of each class meeting.
Integrity is critical to the learning process and to all that we do here at NYU Stern. As members of our community, all students agree to abide by the NYU Stern Student Code of Conduct, which includes a commitment to:
The entire Stern Student Code of Conduct applies to all students enrolled in Stern courses and can be found here:
Undergraduate College: http://www.stern.nyu.edu/uc/codeofconduct
Graduate Programs: http://w4.stern.nyu.edu/studentactivities/involved.cfm?doc_id=102505
To help ensure the integrity of our learning community, prose assignments you submit to Blackboard will be submitted to Turnitin. Turnitin will compare your submission to a database of prior submissions to Turnitin, current and archived Web pages, periodicals, journals, and publications. Additionally, your document will become part of the Turnitin database.
Your class may be recorded for educational purposes
If you have a qualified disability and will require academic accommodation of any kind during this course, you must notify me at the beginning of the course and provide a letter from the Moses Center for Students with Disabilities (CSD, 998-4980, www.nyu.edu/csd) verifying your registration and outlining the accommodations they recommend. If you will need to take an exam at the CSD, you must submit a completed Exam Accommodations Form to them at least one week prior to the scheduled exam time to be guaranteed accommodation.
The School expects that students will conduct themselves with respect and professionalism toward faculty, students, and others present in class and will follow the rules laid down by the instructor for classroom behavior. Students who fail to do so may be asked to leave the classroom.
Collaboration on Graded Assignments
Students may not work together on graded assignment unless the instructor gives express permission.
Course evaluations are important to us and to students who come after you. Please complete them thoughtfully.