McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca

Similar documents
COMP-202B: Introduction to Computing 1

COMP-202A: Introduction to Computing 1

COMP-202C: Foundations of Programming

COMP-202A: Introduction to Computing 1

COMP-202B: Foundations of Programming

COMP Foundations of Programming

COMP Foundations of Programming

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Object-Oriented Programming for Managers

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

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

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

COMP-202 Unit 0: Course Details

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

Introduction to Information Technology ITP 101x (4 Units)

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

Course and Unix Intro

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

ESET 369 Embedded Systems Software, Fall 2017

CSC 111 Introduction to Computer Science (Section C)

CS 111: Programming Fundamentals II

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CMPT 126: Introduction to Computing Science and Programming Fall 2007, Harbour Centre

CISC 3130 Data Structures Fall 2018

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

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

Cleveland State University

Data Structures and Algorithms

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

CSC116: Introduction to Computing - Java

Central Washington University Department of Computer Science Course Syllabus

Announcements. 1. Forms to return today after class:

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

CSC116: Introduction to Computing - Java

CS 241 Data Organization using C

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

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

You must pass the final exam to pass the course.

ECE Object-Oriented Programming using C++ and Java

ESET 349 Microcontroller Architecture, Fall 2018

Introduction to Data Structures

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

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

EECE.2160: ECE Application Programming Spring 2017

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

ESET 369 Embedded Systems Software, Spring 2018

Tuesday and Thursday 1:05 pm - 2:25 pm

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction

Object Oriented Programming

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

Introduction to Computer Systems

CSCE 441 Computer Graphics Fall 2018

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

CISC 3130 Data Structures Spring 2018

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

Syllabus Honors Java Programming 1 & 2

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

CS 3270 Mobile Development for Android Syllabus

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

Data Structures and Algorithms

Division of Engineering, Computer Programming, and Technology

COMP250: Introduction to Computer Science. Jérôme Waldispühl & Carlos Oliver Gonzalez School of Computer Science McGill University

CSC 210 COMPUTER SCIENCE II

ISM 324: Information Systems Security Spring 2014

INF 315E Introduction to Databases School of Information Fall 2015

CS 3230 Object Oriented UI Development With Java Syllabus

CS503 Advanced Programming I CS305 Computer Algorithms I

AE Computer Programming for Aerospace Engineers

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

CS 140 Programming with Objects

CSCE 206: Structured Programming in C

CSC116: Introduction to Computing - Java

EECE.2160: ECE Application Programming Spring 2019

Outline. Computer Science 331. Course Information. Assessment. Contact Information Assessment. Introduction to CPSC 331

file:///h:/de/course Production/DE Production/comp_1010_ol/_syllabus...

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

Digital Forensics ITP 375 (3 Units)

3D Graphics Programming Mira Costa High School - Class Syllabus,

Compilers for Modern Architectures Course Syllabus, Spring 2015

CMPS 182: Introduction to Database Management Systems. Instructor: David Martin TA: Avi Kaushik. Syllabus

Course Administration

Sprint 2017, Sul Ross State University

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

Course and Contact Information. Course Description. Course Objectives

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

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

Course specification

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

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

Introduction to UNIX

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

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

Practical Programming Methodology

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

Introduction to Computer Systems

COURSE OUTLINE. Course lecturer(s) Name Office Tel (07-55) Dr Norsham Idris N /

Transcription:

McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca Time and Place * Days and Times: Tuesdays from 2:35-4:25 PM May 02 to May 12 ENGMC 11 Thursdays from 2:35-4:55 PM May 02 to May 12 ENGMC 11 Tuesday from 2:35-4:25 PM May 16 ENGMC 304 Thursday from 2:35-4:55 PM May 18 ENGMC 304 Tuesdays from 2:35-4:25 PM May 22 to Jun 29 ENGMC 11 Thursdays from 2:35-4:55 PM May 22 to Jun 29 ENGMC 11 * Instructor: Carlton Davis Introduction The School of Computer Science would like to welcome you to the COMP-202 course. We intend on making this course very interesting. The course will be taught using the Java programming language. The purpose of this document is to provide you with an overview of what lies ahead in this course. We shall begin with a brief introduction of the course contents followed by some important general information about the course. Please read this document carefully and keep it for reference throughout the term. Course Description This course is intended for those students with little or no background in programming. The main thrust of the course is directed toward learning the fundamental tools in designing and implementing computer programs. In addition, some time will be devoted to learning about the structure of personal computers, networks, and applications of computers in general. The programming problems will be drawn from both scientific and non-scientific applications. All programs must be written in Java. Students will learn to develop programs using the Java Development Kit (JDK) and the Eclipse programming environment on personal computers. The Eclipse environment supports all the tools necessary for the rapid development of Java programs, it lies on top of JDK, making it easier for the students to write, debug and run their Java programs. Although this course is intended to teach students to program in the Java language, the material learned in the course is applicable to programming in other high level programming languages such as C, C++, and Ada. This course will cover both imperative as well as object-oriented programming techniques.

What this course is not about This course is not about how to use a computer. Here we will not teach you how to send e-mail, how to browse the Web, how to set-up and configure a computer, how to use specific software applications, how to design web pages, or how to deal with operating systems problems. BUT, the course does provide some introductory labs that supply some of this kind of help. Course Prerequisites and Texts Course prerequisite: A CEGEP level math course or equivalent. For students who did not attend CEGEP, any upper-level mathematics course is sufficient. Course Text: Java Software Solutions Foundations of Program Design, 5th Edition, Addison-Wesley, by John Lewis, William Loftus. (Note: you may obtain a copy of this textbook from the McGill bookstore. Copies obtained from the bookstore are packaged with a CD) Other References: 1. Computing Concepts with Java Essentials by Horstmann 2. The Java Programming Language, Second Edition by Arnold and Gosling. Course Grading System and Deadline Policy * Assignments 30% * Midterm 20% (2 hours, 6:00 8:00 PM Tuesday June 6) * Final 50% (3 hours, Monday July 3) There will be six assignments, each with equal weight. We will calculate your assignment mark by taking your best 5 of 6 assignments, each counting for 6% of your final mark. We encourage you to complete all of the assignments, as this is the major way in which you learn the material. If, for some reason you cannot complete one assignment, then we will assign a 0 to that assignment, and we will count the other 5 completed assignments. Late assignments will be deducted 5% each day for which they are late. Assignments handed in more than 2 days (including weekend days) after the deadline will not be accepted, nor marked. Solutions to the assignments will be posted on webct a few days after the submission deadline.

Scheduled Labs Lab # Title Contents 1 How to use the lab computers - Get a password, how to login and out - Basic Unix command - How to save data on a diskette - How to use the Internet and web ct 2 The Java Compiler - The IDE, inputting a program - Running & debugging a program - Help with assignment #1 3 Thinking like a programmer - Organizing your thoughts, top-down, steps - Solving problems 4 Midterm Exam Tutorial 5 Programming with Objects - Thinking using encapsulation & Inheritance - Thinking using private, public & protected - Solving problems 6 Final Exam Tutorial Information about Labs on Campus The information in this section is to be used as a general guideline only. We suggest that students contact the work area of their choice, to enquire about the hours, and for any further information needed. Most facilities are available to all McGill students but there are locations with restricted usage permitting access only to those students within the faculty or department indicated. For example, students in the Faculty of Science may want to use the new lab to be set up in Burnside Hall, and Engineering Students may want to use the new Engineering Labs. A usage fee is required by some facilities and it may be a little more for students not from the faculty or department indicated. A student may pay the fee on a per day basis or become a member, i.e., obtain a pass by paying for a full semester or academic year. Becoming a member may have certain advantages such as, for instance, computer reservation privileges. Most areas provide printing, but may have a charge per page. Below, we list the information about the Computer Science Lab that can be used by COMP-202 students, for their course work only. Information about other labs can be obtained via the Computing Center's web pages. Please visit the labs for time changes! Refer to http://www.cs.mcgill.ca/socsinfo/labs/ for more information. NOTE: Using lab ENGTR 3 rd Floor, login as newuser and password as newuser, and then fill out the web form to get your password to our systems. You must be registered for the course.

Usually, the labs are open from 10:00 AM to 8:00 PM Monday to Friday and 10:00 AM to 6:00 PM on Saturdays and Sundays. However, lab ENGTR 3120 or anywhere in the open area on the third floor (the Linux and FreeBSD machines where 202 students normally do their assignments) is open 24 hours a day, 7 days a week, but a consultant will be on duty during the above mentioned times only. The students need to get their student card specially encoded to access the lab area after 5:00 pm on weekdays as well as on weekends. To sum up: if you don't care about a consultant being on duty and if the students have their card properly encoded, they can access the Linux and FreeBSD lab at any time. Personal Computers and Lab Software All programming assignments will be built using the JDK Java compiler on personal computers. You may use the JDK tools directly by editing the files using your favourite text editor. However, if you prefer to use a program development environment, you can use Eclipse, JCreator LE or any other environment. Eclipse: (for Unix) Eclipse is installed on all our lab computers on the 3 rd floor of the Trottier building. During Lab #1, the TA will demonstrate how to use this programming environment. If you have Unix at home, you can download a free copy from the Internet. Just Google it. Teaching Assistants (TAs) All TA's will be available for 2 hour per week, in the ENGTR 3106, to help you with your assignments, and answer questions about the course material. You may ask questions to any TA, not just the one who marks your assignments. TA lab times (office hours) will be posted on WEBCT when they are finalized. How to submit each assignment Each assignment will contain directions on how and what to submit. Predominantly this course will be using WEBCT for receiving, submitting and grading assignments. We will discuss in class how to use it. WEBCT will also have a discussion board that will be used to ask questions about assignments. Students, the instructor and TAs will scan and post answers to questions. Please no assignment answers and no code! Posting of Course Marks The course marks will be posted on the WEB CT. The marks will be updated after each assignment and midterm. It is your responsibility to check that the marks are correct and to notify your instructor of any errors or missing marks.

What comes after this course? Students who enjoyed this course may want to continue with further studies in Computer Science. If you did well in this course (i.e. you got at least a B+, preferably an A), then you may want to continue as a Computer Science Major. Your next course will be COMP-250, Introduction to Computer Science. If you don't want to do a major, but you are still interested in Computer Science, you can continue with a minor in Computer Science. For a minor program, the next course to take is COMP-203, Introduction to Computing II. In planning your academic program, you should always consult with the appropriate advisor. Course Instructor Name: Office Hours: E-mail Address: Carlton Davis Mondays 1:30-3:00 PM and Wednesdays 2:00-3:30 PM (or by appointment) carlton@cs.mcgill.ca (for assignment questions, post on WEBCT) Office: McConnell 104 Telephone: 398-7071 (extension 0764) (for emergencies only, e-mail is preferred) Emailing Rules: Post all your questions about assignments on the WEBCT message boards for all to see both the questions and answers. You are free to answer each other s questions as well. You are only not permitted to provide solution code exception: one or two lines of code are okay. You can email the TA or Instructor directly for private matters of course. You can use the emailing facility provided by WEBCT or McGill. Policy on Assignments and Plagiarism Official Policy: L'université McGill attache une haute importance à l honnêteté académique. Il incombe par conséquent à tous les étudiants de comprendre ce que l'on entend par tricherie, plagiat et autres infractions académiques, ainsi que les conséquences que peuvent avoir de telles actions, selon le Code de conduite de l'étudiant et des procédures disciplinaires (pour de plus amples renseignements, veuillez consulter le site www.mcgill.ca/integrity). McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures (see www.mcgill.ca/integrity for more information). Plagiarism, under any form, will not be tolerated. Assignments must be done individually; you may not work in groups. If you need help with your assignments, please visit the TAs during

their lab hours or the instructor during his office hours. Do not rely on friends or tutors to do your work for you. You may not copy another person's work in any manner (electronically or otherwise). Furthermore, you must not give a copy of your work to another person. You must include your name and student number at the top of each program or module that you have implemented. By doing so you are certifying that the work is entirely your own, and you are accepting responsibility for any bugs in the program. Students who require assistance with their assignments should see the teaching assistants during their lab hours, or students should consult with their instructor during his office hours. If, for some reason beyond your control, you are too busy to complete one assignment by the deadline, just take a 0 for that assignment (see marking policy above). If you have partially finished an assignment, you must document what works and what does not work in your program, and hand it in. Students who put their name on programs or modules that are not entirely their own work will receive a mark of 0 for that assignment, and this mark will be counted as one of the 5 assignments marks included in the final grade. In addition, the students involved may be referred to the appropriate Associate Dean who will assess the need for further disciplinary action. Important Dates Classes Start: Tuesday May 2, 2006 May 16 and 18: Class will be held in ENGMC 304 Classes End: Thursday June 29, 2006 Final Exam Period: Monday July 3, 2006 Course Content (bold words are important key words) Lecture Date Material Readings Events Week 1 - Course Outline & Web CT - The motherboard: CPU, RAM & Bus. - Data & Memory Basics: Binary numbers, Unicode/ASCII, Data as bits & bytes, secondary storage. - Networks and Internet communication - Compilers, Interpreters, editors & IDEs - My first program, bugs & testing Ch 1 Lab 1

Week 2 Week 3 - Java Primitives: Text printing, types, variables, strings (not the class), math expressions, conversions -Thinking like a programmer: code order - Using Objects: Aliases - Java Libraries: Library class, import, Scanner, String, Random, Math, NumberFormat, DecimalFormat, printf, - Special types: enumerated types & wrapper classes - Math Operators & Boolean expressions - If and Switch statements - Thinking like a programmer: input-stepsoutput, Examples - Iteration: While, Do and For statements - Thinking like a programmer: program development, top-down, organizing code, examples - Building your own Classes (public only): anatomy of a class, encapsulation, methods and constructors. 2.0-2.9 3.0-3.9 5.0-5.2 5.3-5.8 4.0-4.5 Ass #1 due Lab 2 Week 4 Week 5 Week 6 - Scope - Thinking like a programmer: Black-box, why objects, more examples organizing code. - Static members and scope. - Class relationships - Overloading - Thinking like a programmer: method decomposition & Parameters. -Interfaces -Polymorphism via Interfaces 6.0-6.4 6.7, 6.8 6.5-6.7 9.3 -Arrays and ArrayList -Review - Inheritance -Thinking like a programmer: designing it 8.1-8.5 Ass #2 due Lab 3 Ass #3 due Lab 4: Tutorial Midterm Week 7 -Polymorphism -Thinking like a programmer: designing it -Exceptions & I/O Streams: reading & writing files 9.0-9.3 9.6 10.0-10.6 Ass#4 due Lab 5 Week 8 -Recursion 11.0-11.3 Ass #5 due Week 9 -Dynamic data structure -Abstract data type -Review 12.0-12.5 Lab 6: Tutorial Ass #6 due