This document provides an introduction to the ECE 250 Algorithms and Data Structures course. It outlines the course content which will include algorithms for solving problems efficiently and data structures for storing and accessing data. It describes the evaluation components of the course which are projects, a midterm exam, and a final exam. Tips are provided for improving performance including reviewing material multiple times and getting adequate sleep. Academic integrity policies are also discussed.
This document outlines the course details for EE337 - Microprocessors Lab. The objectives of the course are to understand and develop applications on a microcontroller, complementing the theory covered in EE309. Students will gain skills in using an IDE for developing, simulating and debugging programs, as well as writing assembly and embedded C programs and interfacing peripherals. The course will involve 8-10 independent lab experiments using a PT-51 development board. Students must maintain a lab book, install the necessary software, and will be graded based on their lab session performance, three exams, and a completed lab book. Assistance is available from TAs and instructors.
This document outlines the requirements for a final project in an object-oriented and concurrent programming course. Students must design and implement a program to simulate creatures completing jobs or tasks over time. The program must include resource pools, creature job threads that can block until required resources are available, and a GUI to display progress. Students will be graded based on their program design, functionality, testing, documentation, and code quality. The project is due by the assigned date and must follow specific formatting and submission guidelines.
The document discusses software project planning and estimation. It covers topics like why planning is important, project planning purpose and context, estimating resources, and software estimation methods like COCOMO. COCOMO models like basic, intermediate and detailed COCOMO are explained. The document also provides an example of using the basic COCOMO model to estimate effort and development time for a project of size 400k LOC across organic, semidetached and embedded modes.
Rajiv Gandhi has over 5 years of experience in various industries including as a Technical Consultant, R&D Engineer, and LabVIEW Engineer. He has strong skills in LabVIEW, Agilent VEE, NI TestStand, and C. He has experience designing and developing test automation systems using these tools. He holds a B.E. in Electrical and Electronics Engineering and certifications in LabVIEW and Windows applications.
This document provides an introduction and overview for a parallel computing course. It outlines course information such as meeting times, assignments, exams and instructor details. The objectives of the course are to learn fundamentals of concurrent and parallel computing including architectures, programming models and analysis of parallel programs. Students will write programs using OpenMP, CUDA and MPI. The document also discusses textbooks, homework assignments, exams and machines available for development. It provides an introduction to parallel computing concepts and examples of applications.
This document provides an overview of an INST 231 PLC Programming course, including objectives, schedule, assignments, and requirements. The key points are:
- The course teaches PLC wiring, programming, and configuration through theory sessions, labwork, exams, and a mastery exam requiring students to program a PLC to control a motor.
- Recommended daily schedules are provided for 4 sections covering PLC contact/coil/counter/timer programming and exams. Assignments include daily questions, lab activities, and optional feedback questions.
- Students must pass all mastery objectives by exam days to pass the course. Failure to do so results in re-takes or a failing grade. Grades are based
This document provides an overview of the ECE 751: Embedded Computing Systems course. Key details include: the class will meet Tuesdays and Thursdays from 2:30-3:45PM in room 2305; it is a 3-credit course with prerequisites of ECE/CS 552; and the goals are to understand embedded systems through examining research papers and a class project. The grading will be based on paper reviews, presentations, a final exam, and a group project on an embedded systems topic. Around 30 research papers will be assigned to read and discuss over the semester.
SE Module 1 New- SE Strategic Overview Spring 2019_kucukozyigit Fixed.pptJoeMayer8
This document provides an overview of a systems engineering course taught by Dr. Joseph Juarez. It begins with introductions from Dr. Juarez and a definition of systems engineering. It then outlines the key topics that will be covered in the course, including systems modeling, cost estimation, managing risk, and decision making under uncertainty. The document provides the course syllabus, listing learning objectives and the modules that will be covered. It also specifies class presentation topics and the grading breakdown. The goal of the course is to provide students with a deep understanding of systems engineering principles and practices.
This document outlines the course details for EE337 - Microprocessors Lab. The objectives of the course are to understand and develop applications on a microcontroller, complementing the theory covered in EE309. Students will gain skills in using an IDE for developing, simulating and debugging programs, as well as writing assembly and embedded C programs and interfacing peripherals. The course will involve 8-10 independent lab experiments using a PT-51 development board. Students must maintain a lab book, install the necessary software, and will be graded based on their lab session performance, three exams, and a completed lab book. Assistance is available from TAs and instructors.
This document outlines the requirements for a final project in an object-oriented and concurrent programming course. Students must design and implement a program to simulate creatures completing jobs or tasks over time. The program must include resource pools, creature job threads that can block until required resources are available, and a GUI to display progress. Students will be graded based on their program design, functionality, testing, documentation, and code quality. The project is due by the assigned date and must follow specific formatting and submission guidelines.
The document discusses software project planning and estimation. It covers topics like why planning is important, project planning purpose and context, estimating resources, and software estimation methods like COCOMO. COCOMO models like basic, intermediate and detailed COCOMO are explained. The document also provides an example of using the basic COCOMO model to estimate effort and development time for a project of size 400k LOC across organic, semidetached and embedded modes.
Rajiv Gandhi has over 5 years of experience in various industries including as a Technical Consultant, R&D Engineer, and LabVIEW Engineer. He has strong skills in LabVIEW, Agilent VEE, NI TestStand, and C. He has experience designing and developing test automation systems using these tools. He holds a B.E. in Electrical and Electronics Engineering and certifications in LabVIEW and Windows applications.
This document provides an introduction and overview for a parallel computing course. It outlines course information such as meeting times, assignments, exams and instructor details. The objectives of the course are to learn fundamentals of concurrent and parallel computing including architectures, programming models and analysis of parallel programs. Students will write programs using OpenMP, CUDA and MPI. The document also discusses textbooks, homework assignments, exams and machines available for development. It provides an introduction to parallel computing concepts and examples of applications.
This document provides an overview of an INST 231 PLC Programming course, including objectives, schedule, assignments, and requirements. The key points are:
- The course teaches PLC wiring, programming, and configuration through theory sessions, labwork, exams, and a mastery exam requiring students to program a PLC to control a motor.
- Recommended daily schedules are provided for 4 sections covering PLC contact/coil/counter/timer programming and exams. Assignments include daily questions, lab activities, and optional feedback questions.
- Students must pass all mastery objectives by exam days to pass the course. Failure to do so results in re-takes or a failing grade. Grades are based
This document provides an overview of the ECE 751: Embedded Computing Systems course. Key details include: the class will meet Tuesdays and Thursdays from 2:30-3:45PM in room 2305; it is a 3-credit course with prerequisites of ECE/CS 552; and the goals are to understand embedded systems through examining research papers and a class project. The grading will be based on paper reviews, presentations, a final exam, and a group project on an embedded systems topic. Around 30 research papers will be assigned to read and discuss over the semester.
SE Module 1 New- SE Strategic Overview Spring 2019_kucukozyigit Fixed.pptJoeMayer8
This document provides an overview of a systems engineering course taught by Dr. Joseph Juarez. It begins with introductions from Dr. Juarez and a definition of systems engineering. It then outlines the key topics that will be covered in the course, including systems modeling, cost estimation, managing risk, and decision making under uncertainty. The document provides the course syllabus, listing learning objectives and the modules that will be covered. It also specifies class presentation topics and the grading breakdown. The goal of the course is to provide students with a deep understanding of systems engineering principles and practices.
The following resources come from the 2009/10 BEng in Electrical Engineering (course number 2ELE0066) from the University of Hertfordshire. All the mini projects are designed as level two modules of the undergraduate programmes.
The objectives of this module are to demonstrate within an industrial environment:
• To use Matlab® (Simulink®)
• To implement an appropriate analogue computer for modelling dynamic systems.
A DC motor model, in specific prototyping stages, is more appropriate to use than the actual DC motor. This project aimed to design and implement a DC motor model by using a simulation package (CAD) such as Matlab and implement the equivalent electronic hardware platform.
This document provides a course syllabus for the Advanced Applied Signal Processing course offered by Blekinge Institute of Technology. The 3 credit, advanced level course aims to provide students practical experience applying signal processing theory. Topics covered include discrete-time signals, sampling theory, the discrete Fourier transform, spectral analysis, system identification methods, digital filter design including FIR and IIR filters, and adaptive filtering using the LMS algorithm. Assessment involves a project graded on a scale of A to F. Prerequisites are completing two introductory signal processing courses. The course is taught in Swedish but may be offered in English.
The document provides details for a networking project. The student has been hired to design the network infrastructure for a new UMUC building in Adelphi, Maryland that will house offices, classrooms, a library and computer labs. The student must submit a network proposal with sections on the physical design, network addressing, and network services. The proposal must meet criteria such as separating student and staff networks, using physical cabling with some wireless access, and assigning IP addresses within the 10.11.12.0/23 range. Floor plans and details about the building layout, including the number of computers in each room, are provided to aid in the network design.
This document outlines the course details for the EE337 Microprocessors Lab course. It includes:
- An overview of the course objectives to understand and develop applications on the 8051 microcontroller and complement the Microprocessor theory course.
- Prerequisites of digital circuits, digital systems, and microprocessors courses. Skills to be gained include using an IDE to develop, simulate and debug programs for the microcontroller and interface peripherals.
- Information on the lab schedule, grading policy based on labs, quizzes and a project, attendance policy, and required software and lab kit to be issued.
- Contact details for the instructors and TAs, as well as the course website for communications and
This document contains the syllabus for the third year Database Management Systems (DBMS) course offered by Savitribai Phule Pune University. The syllabus outlines the course objectives, outcomes, contents, and textbook references. The course aims to provide students with fundamental concepts of database design, languages, and implementation. Key topics covered include entity relationship modeling, relational modeling and normalization, SQL and PL/SQL, database architecture, transaction management, and database applications. The syllabus is intended to equip students with skills in database design, development and programming.
Te computer syllabus 2015 course 3-4-17 3-5-17VishalButkar2
This document contains the syllabus for the third year of the Bachelor of Computer Engineering program offered by Savitribai Phule Pune University. It outlines the courses offered in the third year, including course codes, credit hours, teaching schemes, and examination schemes. It also provides details of individual course contents and learning outcomes. The courses cover topics such as theory of computation, databases, software engineering, computer networks, algorithms, operating systems, embedded systems, and web technologies. Case studies and labs are included across various courses to help students apply concepts in real-world scenarios.
This document is a lecture on programming fundamentals that discusses what a programming language is, innovations in programming like object-oriented programming and the Unified Modeling Language, and the history and basics of C and C++. It provides examples of a simple "Hello World" C++ program and explains each part of the code.
This document provides an overview of a computer programming course that teaches C++. The course aims to introduce programming concepts in C++ and object orientation. It will include weekly lectures and labs. Students will need to complete lab exercises to practice the weekly concepts. Assessment will include assignments, quizzes, a project, midterm exam, and final exam. Recommended resources like books and websites on C++ are also provided.
This document provides an overview of the Energy 211 course at Stanford University, which teaches C++ programming for earth scientists and engineers. The course covers C++ basics and classes, software engineering practices, and special topics. Students' grades will be based on 6 programming projects and a final project. The course uses C++ because it allows both low-level efficiency and high-level abstraction, offering advantages over MATLAB for developing robust, efficient software. Sound programming practices are emphasized to avoid bugs and ensure software reliability.
The COCOMO model is a widely used software cost estimation model that predicts development effort and schedule based on project attributes. It includes basic, intermediate, and detailed models of increasing complexity. The intermediate model estimates effort as a function of source lines of code and cost drivers. The detailed model further incorporates the impact of cost drivers on development phases. COCOMO 2 expands on this with application composition, early design, reuse, and post-architecture models for different project stages.
This document outlines the course details for the EE337 Microprocessors Lab course. The objectives are to understand and develop applications for the 8051 microcontroller and complement the Microprocessor theory course. Students are expected to gain skills in using an IDE for developing, simulating and debugging microcontroller programs as well as writing assembly and embedded C programs. The course involves completing approximately 8 lab experiments independently using a provided microcontroller kit. Students will be graded based on lab sessions, online quizzes, and a comprehensive microcontroller project.
The document summarizes a lecture on enterprise web application architecture and design. It discusses key topics like architectural patterns, object-oriented design principles, UML diagrams, and the .NET framework. Students will work in groups of 3 on a semester-long project to build a web application prototype. They are given examples of possible projects and an overview of the topics that will be covered each lecture day.
You have been hired as part of the networking team After completing orientation and training in your first week, your manager calls you into a meeting to discuss your first project.
The university has recently leased a building in Adelphi, Maryland. The building will house some offices, classrooms, a library, and computer labs. Security is very important for as the university must protect students’ and employees’ data, as well as any intellectual property that has on its servers and computers. As a result, IT management would like to take the time to review some proposals on how best to move forward. As a network engineer, you have been asked to prepare a network proposal on how to set up a secure network infrastructure in this new building to support university operations.
The document discusses various topics related to software development life cycles including waterfall, agile, scrum frameworks. It describes roles in scrum like product owner, scrum master, development team. It also covers 3-tier architecture, MVC pattern, coding best practices, testing strategies and source control.
This document provides information about a course on computer architecture and hardware/software interface including:
- The instructor, their contact information, lecture times and office hours. Required textbooks and the course topics that will be covered over the semester.
- The grading system including exams, homework assignments, projects and their weights.
- A calendar of course topics, assigned readings, exams and homework due dates over the 14 week semester.
This document provides information about a course titled "Introduction to Computer Architecture and Hardware/Software Interface". It outlines the course objectives, topics, textbook, grading system, exam and assignment schedule, and other details. The course introduces computer organization and architecture, addressing methods, instruction set architectures, CPU and memory architecture, I/O organization, and assembly language programming. It includes four exams, four homework assignments, and laboratory projects.
Software_effort_estimation for Software engineering.pdfsnehan789
calculating software effort estimation for subjects like software engineering and software project management all according to your college preference on the subject
How to Add Chatter in the odoo 17 ERP ModuleCeline George
In Odoo, the chatter is like a chat tool that helps you work together on records. You can leave notes and track things, making it easier to talk with your team and partners. Inside chatter, all communication history, activity, and changes will be displayed.
The simplified electron and muon model, Oscillating Spacetime: The Foundation...RitikBhardwaj56
Discover the Simplified Electron and Muon Model: A New Wave-Based Approach to Understanding Particles delves into a groundbreaking theory that presents electrons and muons as rotating soliton waves within oscillating spacetime. Geared towards students, researchers, and science buffs, this book breaks down complex ideas into simple explanations. It covers topics such as electron waves, temporal dynamics, and the implications of this model on particle physics. With clear illustrations and easy-to-follow explanations, readers will gain a new outlook on the universe's fundamental nature.
The following resources come from the 2009/10 BEng in Electrical Engineering (course number 2ELE0066) from the University of Hertfordshire. All the mini projects are designed as level two modules of the undergraduate programmes.
The objectives of this module are to demonstrate within an industrial environment:
• To use Matlab® (Simulink®)
• To implement an appropriate analogue computer for modelling dynamic systems.
A DC motor model, in specific prototyping stages, is more appropriate to use than the actual DC motor. This project aimed to design and implement a DC motor model by using a simulation package (CAD) such as Matlab and implement the equivalent electronic hardware platform.
This document provides a course syllabus for the Advanced Applied Signal Processing course offered by Blekinge Institute of Technology. The 3 credit, advanced level course aims to provide students practical experience applying signal processing theory. Topics covered include discrete-time signals, sampling theory, the discrete Fourier transform, spectral analysis, system identification methods, digital filter design including FIR and IIR filters, and adaptive filtering using the LMS algorithm. Assessment involves a project graded on a scale of A to F. Prerequisites are completing two introductory signal processing courses. The course is taught in Swedish but may be offered in English.
The document provides details for a networking project. The student has been hired to design the network infrastructure for a new UMUC building in Adelphi, Maryland that will house offices, classrooms, a library and computer labs. The student must submit a network proposal with sections on the physical design, network addressing, and network services. The proposal must meet criteria such as separating student and staff networks, using physical cabling with some wireless access, and assigning IP addresses within the 10.11.12.0/23 range. Floor plans and details about the building layout, including the number of computers in each room, are provided to aid in the network design.
This document outlines the course details for the EE337 Microprocessors Lab course. It includes:
- An overview of the course objectives to understand and develop applications on the 8051 microcontroller and complement the Microprocessor theory course.
- Prerequisites of digital circuits, digital systems, and microprocessors courses. Skills to be gained include using an IDE to develop, simulate and debug programs for the microcontroller and interface peripherals.
- Information on the lab schedule, grading policy based on labs, quizzes and a project, attendance policy, and required software and lab kit to be issued.
- Contact details for the instructors and TAs, as well as the course website for communications and
This document contains the syllabus for the third year Database Management Systems (DBMS) course offered by Savitribai Phule Pune University. The syllabus outlines the course objectives, outcomes, contents, and textbook references. The course aims to provide students with fundamental concepts of database design, languages, and implementation. Key topics covered include entity relationship modeling, relational modeling and normalization, SQL and PL/SQL, database architecture, transaction management, and database applications. The syllabus is intended to equip students with skills in database design, development and programming.
Te computer syllabus 2015 course 3-4-17 3-5-17VishalButkar2
This document contains the syllabus for the third year of the Bachelor of Computer Engineering program offered by Savitribai Phule Pune University. It outlines the courses offered in the third year, including course codes, credit hours, teaching schemes, and examination schemes. It also provides details of individual course contents and learning outcomes. The courses cover topics such as theory of computation, databases, software engineering, computer networks, algorithms, operating systems, embedded systems, and web technologies. Case studies and labs are included across various courses to help students apply concepts in real-world scenarios.
This document is a lecture on programming fundamentals that discusses what a programming language is, innovations in programming like object-oriented programming and the Unified Modeling Language, and the history and basics of C and C++. It provides examples of a simple "Hello World" C++ program and explains each part of the code.
This document provides an overview of a computer programming course that teaches C++. The course aims to introduce programming concepts in C++ and object orientation. It will include weekly lectures and labs. Students will need to complete lab exercises to practice the weekly concepts. Assessment will include assignments, quizzes, a project, midterm exam, and final exam. Recommended resources like books and websites on C++ are also provided.
This document provides an overview of the Energy 211 course at Stanford University, which teaches C++ programming for earth scientists and engineers. The course covers C++ basics and classes, software engineering practices, and special topics. Students' grades will be based on 6 programming projects and a final project. The course uses C++ because it allows both low-level efficiency and high-level abstraction, offering advantages over MATLAB for developing robust, efficient software. Sound programming practices are emphasized to avoid bugs and ensure software reliability.
The COCOMO model is a widely used software cost estimation model that predicts development effort and schedule based on project attributes. It includes basic, intermediate, and detailed models of increasing complexity. The intermediate model estimates effort as a function of source lines of code and cost drivers. The detailed model further incorporates the impact of cost drivers on development phases. COCOMO 2 expands on this with application composition, early design, reuse, and post-architecture models for different project stages.
This document outlines the course details for the EE337 Microprocessors Lab course. The objectives are to understand and develop applications for the 8051 microcontroller and complement the Microprocessor theory course. Students are expected to gain skills in using an IDE for developing, simulating and debugging microcontroller programs as well as writing assembly and embedded C programs. The course involves completing approximately 8 lab experiments independently using a provided microcontroller kit. Students will be graded based on lab sessions, online quizzes, and a comprehensive microcontroller project.
The document summarizes a lecture on enterprise web application architecture and design. It discusses key topics like architectural patterns, object-oriented design principles, UML diagrams, and the .NET framework. Students will work in groups of 3 on a semester-long project to build a web application prototype. They are given examples of possible projects and an overview of the topics that will be covered each lecture day.
You have been hired as part of the networking team After completing orientation and training in your first week, your manager calls you into a meeting to discuss your first project.
The university has recently leased a building in Adelphi, Maryland. The building will house some offices, classrooms, a library, and computer labs. Security is very important for as the university must protect students’ and employees’ data, as well as any intellectual property that has on its servers and computers. As a result, IT management would like to take the time to review some proposals on how best to move forward. As a network engineer, you have been asked to prepare a network proposal on how to set up a secure network infrastructure in this new building to support university operations.
The document discusses various topics related to software development life cycles including waterfall, agile, scrum frameworks. It describes roles in scrum like product owner, scrum master, development team. It also covers 3-tier architecture, MVC pattern, coding best practices, testing strategies and source control.
This document provides information about a course on computer architecture and hardware/software interface including:
- The instructor, their contact information, lecture times and office hours. Required textbooks and the course topics that will be covered over the semester.
- The grading system including exams, homework assignments, projects and their weights.
- A calendar of course topics, assigned readings, exams and homework due dates over the 14 week semester.
This document provides information about a course titled "Introduction to Computer Architecture and Hardware/Software Interface". It outlines the course objectives, topics, textbook, grading system, exam and assignment schedule, and other details. The course introduces computer organization and architecture, addressing methods, instruction set architectures, CPU and memory architecture, I/O organization, and assembly language programming. It includes four exams, four homework assignments, and laboratory projects.
Software_effort_estimation for Software engineering.pdfsnehan789
calculating software effort estimation for subjects like software engineering and software project management all according to your college preference on the subject
How to Add Chatter in the odoo 17 ERP ModuleCeline George
In Odoo, the chatter is like a chat tool that helps you work together on records. You can leave notes and track things, making it easier to talk with your team and partners. Inside chatter, all communication history, activity, and changes will be displayed.
The simplified electron and muon model, Oscillating Spacetime: The Foundation...RitikBhardwaj56
Discover the Simplified Electron and Muon Model: A New Wave-Based Approach to Understanding Particles delves into a groundbreaking theory that presents electrons and muons as rotating soliton waves within oscillating spacetime. Geared towards students, researchers, and science buffs, this book breaks down complex ideas into simple explanations. It covers topics such as electron waves, temporal dynamics, and the implications of this model on particle physics. With clear illustrations and easy-to-follow explanations, readers will gain a new outlook on the universe's fundamental nature.
Assessment and Planning in Educational technology.pptxKavitha Krishnan
In an education system, it is understood that assessment is only for the students, but on the other hand, the Assessment of teachers is also an important aspect of the education system that ensures teachers are providing high-quality instruction to students. The assessment process can be used to provide feedback and support for professional development, to inform decisions about teacher retention or promotion, or to evaluate teacher effectiveness for accountability purposes.
Main Java[All of the Base Concepts}.docxadhitya5119
This is part 1 of my Java Learning Journey. This Contains Custom methods, classes, constructors, packages, multithreading , try- catch block, finally block and more.
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
Physiology and chemistry of skin and pigmentation, hairs, scalp, lips and nail, Cleansing cream, Lotions, Face powders, Face packs, Lipsticks, Bath products, soaps and baby product,
Preparation and standardization of the following : Tonic, Bleaches, Dentifrices and Mouth washes & Tooth Pastes, Cosmetics for Nails.
हिंदी वर्णमाला पीपीटी, hindi alphabet PPT presentation, hindi varnamala PPT, Hindi Varnamala pdf, हिंदी स्वर, हिंदी व्यंजन, sikhiye hindi varnmala, dr. mulla adam ali, hindi language and literature, hindi alphabet with drawing, hindi alphabet pdf, hindi varnamala for childrens, hindi language, hindi varnamala practice for kids, https://www.drmullaadamali.com
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
Thinking of getting a dog? Be aware that breeds like Pit Bulls, Rottweilers, and German Shepherds can be loyal and dangerous. Proper training and socialization are crucial to preventing aggressive behaviors. Ensure safety by understanding their needs and always supervising interactions. Stay safe, and enjoy your furry friends!
How to Manage Your Lost Opportunities in Odoo 17 CRMCeline George
Odoo 17 CRM allows us to track why we lose sales opportunities with "Lost Reasons." This helps analyze our sales process and identify areas for improvement. Here's how to configure lost reasons in Odoo 17 CRM
2. 2
Introduction
Support WEEF
Remember that WEEF is one of the few organizations which will
support you throughout your undergraduate career
http://www.weef.uwaterloo.ca/
4. 4
Introduction
ECE 150 Fundamentals of Programming
These were the basics of programming
– The ability to manipulate the computer to perform the required tasks
You saw data storage techniques:
– Arrays, and
– Linked lists (collections were discussed)
You saw array accessing/manipulation techniques:
– Searching, and
– Sorting
5. 5
Introduction
ECE 250 Algorithms and Data Structures
In this course, we will look at:
– Algorithms for solving problems efficiently
– Data structures for efficiently storing, accessing, and modifying data
We will see that all data structures have trade-offs
– There is no ultimate data structure...
– The choice depends on our requirements
6. 6
Introduction
ECE 250 Algorithms and Data Structures
Consider accessing the kth entry in an array or linked list
– In an array, we can access it using an index array[k]
• You will see in ECE 222 that there is a single machine instruction for this
– We must step through the first k – 1 nodes in a linked list
Consider searching for an entry in a sorted array or linked list
– In a sorted array, we use a fast binary search
• Very fast
– Wemuststepthroughallentrieslessthantheentrywe’relookingfor
• Slow
7. 7
Introduction
ECE 250 Algorithms and Data Structures
However, consider inserting a new entry to the start of an array or a
linked list
– An array requires that you copy all the elements in the array over
• Slow for large arrays
– A linked list allows you to make the insertion very quickly
• Very fast regardless of size
8. 8
Introduction
ECE 250 Algorithms and Data Structures
All course-related material on the course web site
http://ece.uwaterloo.ca/~dwharder/aads/
This includes:
– The Course Outline
– Various tutorials
– Lecture Material
– Lecture Topics
– Projects
– Homework
– Tutorial summaries
– Examination Details
10. 10
Introduction
C++
You will be using the C++ programming language in this course
Modified for C++ from http://www.foxtrot.com/
11. 11
Introduction
C++
This course does not teach C++ programming
– You will use C++ to demonstrate your knowledge in this course
One lecture covers:
– Features of C++ and differences with C#
An on-line tutorial is available on the course web site
– It assumes minimal knowledge of programming
Please note: marks in ECE 250 are not strongly correlated with
marks in ECE 150
12. 12
Introduction
C++
Other sources of help in C++ are:
– The Project T.A.s,
– The lab instructor, and
– The instructor
– Other online tutorials: http://www.cplusplus.com/
Laboratories are held every second week
– All laboratory material the course web site
– Laboratories is associated with a project
– Project 0 has no marks but allows you to practice C++
13. 13
Introduction
Unix
You will also be exposed to the Unix environment
– All the projects will be marked in Unix using the g++ compiler
– Its usage is similar to that of the cs command-line compiler for C# used
in ECE 150
A Unix tutorial is also available
You can develop your code on Windows, but you are responsible for
testing your code to Unix
14. 14
Introduction
Evaluation
The course is divided into numerous topics
– Storing ordered and sorted objects
– Storing an arbitrary collection of data
– Sorting objects
– Graphs
– Algorithm Design Techniques
There are two self-study topics:
– Splay trees, and
– Disjoint sets
The self study topics will appear on the final examination as bonus
questions
– A question for each will appear but you may only answer one
15. 15
Introduction
Evaluation
Your evaluation in this course is based on three components:
– Five equally weighted projects
– One mid-term examination
– One final examination
– A commenting bonus (up to 3%)
You must pass both the examination component and the project
component separately in order to pass the course
– If you fail either component, your grade is the lesser of the two
– Handing in no projects will result in a grade of zero
16. 16
Introduction
Evaluation
Your grade G is calculated according to the formula:
where F, M, and P are your marks on your final, mid-term, and
projects, respectively
1 2
3 3
5
1 1
2 4 40
15 7 3
4 2 40
3
1
4 4
Let , , and be marks out of 100 and let ;
min 50 or 50
75 50 60 and
then .
225 50 60 and
60 and 60
P M F E M F
E,P E P
E P EP E E P
G
E P EP P P E
P E E P
18. 18
Introduction
Evaluation
Observations:
– This function is continuous (no threshold marking)
– You must achieve 60% in both the projects and the examinations in
order to have the usual marking scheme of 25% projects, 25% mid-term
examination, and 50% final examination
– You can achieve 100% on both the mid-term and the final examinations
and 50% on the projects, and you will have a grade of 50
19. 19
Introduction
Evaluation
A student who misses either examination must provide:
– A Verification of Illness form indicating a severe illness, or
– Other formal documentation, as appropriate
With proper documentation:
– Missing the mid-term examination sets E = F in the formula
– Missing the final examination results in the opportunity to write with the
next offering of the course
Without proper documentation:
– Missing the mid-term examination results in 0
– Missing the final examination results in DNW and
“RequiredtoWithdrawfromEngineering”
There will be no re-weighting of the mid-term examination under any
circumstances
20. 20
Introduction
Evaluation
Commenting code is necessary for engineers:
– Engineers who do not comment code will not encourage employees and
contracted programmers to comment their code
– This will lead to significant additional costs
The commenting bonus occurs at the end of the term
– Instructions for commenting code are available on the Projects web site
– Quality comments are required in at least three projects for any marks
to be awarded
21. 21
Introduction
Projects
For each of the five projects, you will be required to implement one
or more of the data structures taught in class
We provide an environment in which we test your projects
The times the projects are due is fixed:
– Projects are due Tuesday at 22:00 (10:00 PM) on Learn
– The drop-box will be kept open until midnight for late submissions
– Maximum grade for late submissions is 70
22. 22
Introduction
Projects
We provide a interpreter which you can use to test your software
– We will use the same interpreter to test your software
Your output must perfectly match our output
– Comparisons are done using text comparisons
– Any debugging printouts will cause your project to fail a test
23. 23
Introduction
Projects
What happens if you make a mistake?
– I will be holding one-on-one sessions with any student who got a grade
on a project below 70
– The maximum grade of your resubmission depends on:
Maximum Grade
You can articulate all errors and give fixes 70
You require assistance in correcting one member function 60
You require significant assistance on two member functions 50
24. 24
Introduction
Projects
You are allowed to:
– Make multiple submissions—we take the last
– Declare and define other classes and other member functions not
specified in the project descriptions
– You may even, though be very cautious, overload the given member
function signatures or give the functions extra parameters so long as the
functions as specified may be called with no ambiguity
– Use the following standard library functions (and no others):
#include <iostream> all functions and classes
#include <cassert> assert( predicate )
#include <algorithm> std::max( x, y ) std::min( x, y )
The use of any other standard library function or class will result in an
automatic grade of 0
25. 25
Introduction
You are responsible for the naming convention on the submitted file
uwuserid_pM.tar.gz
where:
uwuserid is your uWaterloo User ID,
M is the number of the project
The execution must always be of the form
tar -cvf uwuserid_pM.tar file1.h file2.h etc.h
gzip uwuserid_pM.tar
Three students failed at life when they submitted
their project with uWaterloo User ID “uwuserid”
Projects
26. 26
Introduction
In Unix, file names are case sensitive:
– The files j99smithP1.tar.gz and j99smith_p1.tar.gz are
different
Also, you must use the tar and gzip utilities on Unix
– Usingzip(evenifyourenameit)doesn’twork
If you cannot submit through uWaterloo LEARN, you must e-mail the
file to the Lab Instructor
– Any penalty is based on the time stamp at which the e-mail is received
(not sent)
– You are responsible for all information on the site
ece.uwaterloo.ca/~dwharder/aads/Projects/
Projects
28. 28
Introduction
The human brain can retain approximately 5-9 independent items of
information in its short-term memory
George Miller, The Magical Number Seven, Plus or Minus Two: Some
Limits on Our Capacity for Processing Information, Psychological
Review, Vol.63 pp.81–97, 1956
The introduction of new information causes the brain to discard an
item currently in your short-term memory
– For example, consider the 12 words which will appear on the next
sequence of screens
Your goal: at the end, write down all twelve words
Improving Your Performance
41. 41
Introduction
Now, write down as many of these words as you can
– Most of you will be able to write down somewhere between 7 through 9
of these
– It may even be possible to remember more new topics, however, you
will note that there is no relationship between these objects
Improving Your Performance
42. 42
Introduction
To transfer information from your short-term memory to your long-
term memory, that information must be imposed on your mind at
least three times
You should always try the following:
– Look at the slides before class
– Attend lectures
• You see the information again with commentary
– Review the lecture during the evening
• Rewrite and summarize the slides in your words
Improving Your Performance
43. 43
Introduction
In addition to this, you should:
– Get a reasonable nights sleep (apparently this is when information is
transferred to your long-term memory), and
– Eat a good breakfast (also apparently good for the memory)
Improving Your Performance
44. 44
Introduction
Improving Your Performance
Like other courses, this course builds on previous information
– I will not answer questions about material which I have either previously
covered or indicated that you are required to read
Also, neither the T.A.s nor myself will be available for help either on
the day of the mid-term or final examinations
– There is no help which can be derived in that time, and therefore, to
impress this upon you, you must study before-hand if you believe you
will need help
45. 45
Introduction
Academic Offences
Academic Offences include, but are not limited to:
– Infringing unreasonably on the work of other members
• E.g., disrupting classes
– Cheating
– Plagiarism
– Misrepresentations
All students must read Policy 71
46. 46
Introduction
Plagiarism
All projects must be done individually:
– You may not copy code directly from any other source
– Plagiarism detection software will be used on all of the projects
– If you viewed another code (from books or lecture notes), you must
include a reference in your project
– You may not share code with any other students by transmitting
completed functions to your peers
• This restriction includes—but is not limited to—electronic and hard-copy
sharing
– You may discuss projects together and help another student debug his
or her code; however, you cannot dictate or give the exact solution
47. 47
Introduction
Plagiarism
Projects will be submitted to MOSS for plagiarism detection
(Measure Of Software Similarity)
This plagiarism-detection software hosted on a Stanford University
server and is based on the paper
Winnowing: Local Algorithms for Document Fingerprinting
by Saul Schleimer, Daniel S. Wilkerson, and Alex Aiken
You are only asked for you uWaterloo User ID in both the project
files and the name of the submitted file
– It is not recommended that you include either your full name or your
uWaterloo Student ID Number
48. 48
Introduction
Plagiarism
Collaboration with other students must be limited to
– Discussions
– High-level pseudocode
– Assistance with debugging (only through the offering of advice)
– Sharing test files
All such collaborations must be documented in your source code
49. 49
Introduction
Plagiarism
When one student copies from another student, both students are
responsible
– Exceptions are made for outright theft
The penalty for plagiarism on a Project is a mark of 0 on the project in
question and a further 5% is subtracted from your final grade
– Regardless if Projects are counted or not
51. 51
Introduction
Plagiarism: Example 1
Alex and Bailey were lab partners in ECE 222
Bailey left herself logged on Unix to allow Alex to complete the lab
AlexcopiedBailey’sECE250project
52. 52
Introduction
Plagiarism: Example 2
Leslie asked if Morgan could send her his code so that she could
look at it (promising, of course, not to copy it)
Morgan sent the code
Leslie copied it and handed it in
53. 53
Introduction
Plagiarism: Example 3
Erin did not chance her default password
FannyloggedontoErin’saccountandtookErin’scode
– Erin is still responsible
54. 54
Introduction
Plagiarism: Example 4
Garry and Harry worked together on a single source file initially and
then worked separately to finish off the details
The result was still noticeably similar with finger-print-like
characteristics which left no doubt that some of the code had a
common source
55. 55
Introduction
Plagiarism: Example 5
Jordan uploaded the projects to GITHUB.com without setting
appropriate permissions. Kasey found this site, downloaded the
projects and submitted them. Both are guilty.
– This applies to any public forum, news group, etc.,notjustgitub.com…
56. 56
Introduction
Plagiarism
The minimum penalty for plagiarism is 0 on the project and –5% on
your final mark for each case of plagiarism
– the penalty is applied regardless of what proportion the Projects are of
your final grade
A student who cheats must receive a grade lower than a student
who did not hand in a project
57. 57
Introduction
Plagiarism
All instances of plagiarism are reported to the Associate Dean of
Undergraduate Studies
The Associate Dean may increase the penalty, including:
– requiring four extra courses in ethics
– a suspension
– expulsion
58. 58
Introduction
Plagiarism
Please note that if you get 70% on:
– all projects,
– the mid-term examination, and
– the final examination
and you are caught once for plagiarism, your course average will be
61.5
59. 59
Introduction
Plagiarism
The best way to avoid plagiarism is:
– review the C++ tutorial
– read the project as soon as it is available
– start the project so that there is sufficient time to contact the T.A. or
myself if you have difficulty
– do not give your code to anyone
60. 60
Introduction
Distribution of Information
Information may be pass to the class through one of two media:
– An announcement in class,
– An e-mail via an e-mail through uWaterloo LEARN
61. 61
Introduction
Summary
In this topic, we have:
– Outlined the course
– Discussed C++ and the projects
– Improving your performance
– Discussed plagiarism and its consequences
62. 62
Introduction
Usage Notes
• These slides are made publicly available on the web for anyone to
use
• If you choose to use them, or a part thereof, for a course at another
institution, I ask only three things:
– that you inform me that you are using the slides,
– that you acknowledge my work, and
– that you alert me of any mistakes which I made or changes which you
make, and allow me the option of incorporating such changes (with an
acknowledgment) in my set of slides
Sincerely,
Douglas Wilhelm Harder, MMath
dwharder@alumni.uwaterloo.ca