Presentation is loading. Please wait.

Presentation is loading. Please wait.

CISC/CMPE320 - Prof. McLeod

Similar presentations


Presentation on theme: "CISC/CMPE320 - Prof. McLeod"— Presentation transcript:

1 CISC/CMPE320 - Prof. McLeod
Fall 2018 CISC/CMPE320 2/19/2019 CISC/CMPE320 “Fundamentals of Software Development” Course Web Site: Lecture notes, voice recordings, and other stuff will be, and is posted. Welcome! Fall 2018 CISC/CMPE320 - Prof. McLeod Prof. Alan McLeod

2 CISC/CMPE320 - Prof. McLeod
CISC/CMPE320, Cont. A C++ course. Discussion of several software engineering topics will aid in the completion of a team project. ISO C++11 is emphasized and some time will be spent on C++/CLI. Fall 2018 CISC/CMPE320 - Prof. McLeod

3 CISC/CMPE320 Introduction
Me: Prof. Alan McLeod GOO542 (office hours Tuesdays 9:30 to 1pm) Also, post questions in onQ forums. TAs: Gopi Rajbahadur Wenjie Li Gideon Feldberg Zainab Bello Kenny Patel No scheduled lab in this course. Fall 2018 CISC/CMPE320 - Prof. McLeod

4 CISC/CMPE320 - Prof. McLeod
Two Hour Tutorial Time Tuesdays 9:30am to 11:30am in Ellis Rooms 321 and 333. This class is too large for just one of the active learning classroom in Ellis. No tutorial next week. (Next week is “week 1”). Tutorials probably will not start until week 3. Fall 2018 CISC/CMPE320 - Prof. McLeod

5 CISC/CMPE320 - Prof. McLeod
Three Things… Manually refresh the main page of the course web site each time you view it. is the best way to contact me – don’t call me. Use the cs.queensu address. Don’t Prof. David McLeod does not want to hear from you! When ing do not use your hotmail or gmail or non-queensu address. Fall 2018 CISC/CMPE320 - Prof. McLeod

6 CISC/CMPE320 Introduction, Cont.
Grading scheme 25% - five assignments, (due weeks 4, 6, 8, 10 and 12) 35% - one project 40% - one final exam Assignments - electronic submission through onQ. One assignment submission per person. Use ISO C++ and you can use any IDE for the GUI assignment (#3). Fall 2018 CISC/CMPE320 - Prof. McLeod

7 CISC/CMPE320 - Prof. McLeod
Assignment Rules Assignments are graded out of 20 – marks and comments will be uploaded to onQ by your TA. Late submission: You can submit up to five days after the deadline, but: Your mark will be reduced by 2 marks per day late, unless you can prove extenuating circumstances, such as a serious illness or a Queen’s activity. Minimum of 2 marks removed. If you cannot re-submit, let me know. Fall 2018 CISC/CMPE320 - Prof. McLeod

8 CISC/CMPE320 - Prof. McLeod
Assignment Rules, Cont. “Group Efforts”: I encourage you to discuss your difficulties with your peers, myself and your TA. You may look at other people’s code. You cannot copy other people’s code! Fall 2018 CISC/CMPE320 - Prof. McLeod

9 CISC/CMPE320 - Prof. McLeod
C++ Team Project Read more details on the course web site. You will be assigned to agile teams by me. I need to know who is in the course and you need to have filled out the onQ survey (that onQ calls a quiz) “Programming and Teamwork Background”. Each team member will write code and adopt other roles as needed. Right now, you need to fill out the survey, read what is on the course web site and start thinking about possible projects. You should know what team you are in by week 3. Fall 2018 CISC/CMPE320 - Prof. McLeod

10 CISC/CMPE320 - Prof. McLeod
C++ Project, Cont. I will expect some leadership from those of you with C++ experience and teamwork experience. But, at some point you will have to JUMP IN! You will have to start writing unfamiliar, advanced code with tools that are new to you. You will have to learn things with only your team’s support in a short time. You will have to learn to pull your own weight on a team, and be responsible for your own work. Your work will be examined and criticized by your peers. Sounds like a real job! Fall 2018 CISC/CMPE320 - Prof. McLeod

11 CISC/CMPE320 - Prof. McLeod
Grading the Project Your team will present once in week 12. You will create two reports – Requirements Analysis Document (or “RAD”) in week 5 and System Design Document (or “SDD”) in week 8. You must use the supplied CASE tools. Your team will maintain careful records. You will maintain your own page – a “diary” - listing what you have completed and when. Your team will be assigned a grade. Your grade will decrease if you did not contribute your fair share of the work. Fall 2018 CISC/CMPE320 - Prof. McLeod

12 Grading the Project, Cont.
See the course web site’s project page for a detailed breakdown of how marks are assigned to the project. A component of the grade will result from your TA grading your attendance and progress in the tutorial. You will also have a chance to grade the other teams’ documents and presentations. Fall 2018 CISC/CMPE320 - Prof. McLeod

13 CISC/CMPE320 - Prof. McLeod
JIRA We have our own server space for this course. This system will give each team a SCRUM planning tool (JIRA), a document creation and sharing tool (Confluence), a git repository (Bitbucket) and a chat tool (Slack) – each of which you must use. Don’t use facebook… Fall 2018 CISC/CMPE320 - Prof. McLeod

14 CISC/CMPE320 - Prof. McLeod
JIRA, Cont. I mean it: (Not for your teamwork, anyways…) Don’t use Facebook! Fall 2018 CISC/CMPE320 - Prof. McLeod

15 CISC/CMPE320 - Prof. McLeod
Course Goals To give you solid proficiency coding in ISO standard C++. Expose you to coding in C++/CLI in Visual Studio. To give you some experience about what it is like to develop software as part of a team. Learn some “software carpentry” and software engineering. Good stuff for your resume! Fall 2018 CISC/CMPE320 - Prof. McLeod

16 CISC/CMPE320 - Prof. McLeod
Learning C++ If you have not coded in C++, your Java experience will help – any C experience might be more of a hindrance! C++ is not a “safe” language like Java – you can create problems in many different ways! Even if you are strong in C++ it does not hurt to be really solid on the fundamentals. I will emphasize the “Gotchas” whenever possible. Fall 2018 CISC/CMPE320 - Prof. McLeod

17 CISC/CMPE320 - Prof. McLeod
Resources Recommended Textbook: Many good web links, too – see the Resources web page. Fall 2018 CISC/CMPE320 - Prof. McLeod

18 CISC/CMPE320 - Prof. McLeod
Fall 2018 CISC/CMPE320 - Prof. McLeod

19 CISC/CMPE320 - Prof. McLeod
Resources, Cont. One ISO C++ development environment, that is fine for console programs: Available from with the CDT. See the Resources web page. Fall 2018 CISC/CMPE320 - Prof. McLeod

20 CISC/CMPE320 - Prof. McLeod
Resources, Cont. Another tool: From codeblocks.org. Current version is 17.12 Used for console or GUI. Multiplatform. Well designed. Fall 2018 CISC/CMPE320 - Prof. McLeod

21 CISC/CMPE320 - Prof. McLeod
Visual Studio .NET You don’t have to use this tool for C++/CLI if you don’t want to. (see MonoDevelop, for example). You can get the Express Edition for free from Microsoft or get the whole shebang from Microsoft DreamSpark. Another way to develop GUIs. Not multi-platform! Fall 2018 CISC/CMPE320 - Prof. McLeod

22 CISC/CMPE320 - Prof. McLeod
Qt Creator ???? – From qt.io Fall 2018 CISC/CMPE320 - Prof. McLeod

23 CISC/CMPE320 - Prof. McLeod
Tool Chain Did you have to think about this with Java? There is a language standard for C++ - the latest developed by the ISO committee is C++17. The previous standard is mostly implemented by now: C++14. But – anyone can write their own C++ compiler and follow the standards or not! As a result, there are dozens of compilers. For this course, for console I/O, I recommend MinGW, which is a port of the GCC toolchain. Fall 2018 CISC/CMPE320 - Prof. McLeod

24 CISC/CMPE320 - Prof. McLeod
Things for You to Do Look over the course web site – read the project page carefully. Start thinking about a possible project. Check your onQ login – if the course does not show up for you, let me know. (If you have just registered for this course, it will take a day for you to be registered in onQ.) Fill out the programming/teamwork experience survey! Fall 2018 CISC/CMPE320 - Prof. McLeod

25 CISC/CMPE320 - Prof. McLeod
More For You To Do Decide on and install your C++ IDE. Focus on console apps first. Get it working! Once you have to get coding you won’t have any more time to fiddle with your IDE. Your team may very well decide on a different IDE for the project! Fall 2018 CISC/CMPE320 - Prof. McLeod

26 Aside – Attend Class Or Not?...
At some point most of you will decide on whether or not to attend lectures. Consider: You will not be there to ask questions. The slides are just to keep me on track and to lead discussion. They don’t contain everything! Not all lectures get recorded (technical difficulties…). Lecture videos are not edited at all. You will not hear questions in the videos. You will not know what I’m pointing at, what code I am focused on or what I am writing on the board. Fall 2018 CISC/CMPE320 - Prof. McLeod

27 Demo - “Hello World” Ritual!
For simple console demos I’m going to use the Eclipse CDT. A few notes: Make sure your project has the proper “Includes” links. You should provide the extension “.cpp” for a source code file, or “.h” for a header, or declaration file. Suggest that you turn off automatic building. (Off by default…) But, don’t forget to save, then build before you run. Fall 2018 CISC/CMPE320 - Prof. McLeod

28 CISC/CMPE320 - Prof. McLeod
Some Explanation #include is a preprocessor directive that is used to include external code into your program. iostream is a library of I/O streams (makes sense!). A namespace is a collection of name definitions. (The same name can be used in separate namespaces). using namespace std; says that your program is using names from the std (or “standard”) namespace. Another way to do this is to use the :: “scope resolution operator”, as in std::cout (but this gets to be a pain of you are using a lot of names…) Fall 2018 CISC/CMPE320 - Prof. McLeod

29 CISC/CMPE320 - Prof. McLeod
Some Explanation, Cont. int main() is a function header. Code within the function is contained between { } cout is an object from the iostream library that represents the console output stream. << is the “insertion operator” and is used to insert the supplied string literal into the cout object. endl stands in for a line feed character. In ISO C++ the return 0; is supposed to be optional, but some older compilers still require it. Fall 2018 CISC/CMPE320 - Prof. McLeod

30 Some More Explanation…
Note that older style C libraries still use the “.h” extension, as in stdio.h. The newer library uses cstdio instead. Sometimes you just don’t know, so you have to experiment. For example, from the STL, you could try: Vector vector.h vector One of them should work! I will always try to use the latest library names. Fall 2018 CISC/CMPE320 - Prof. McLeod

31 Aside:How to Run C++11 or C++14 Code in Eclipse
Assuming the MinGW (or GCC) compiler. To change for just a project: C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags. Put “-std=c++11” (or “-std=c++14”) at the end (after a space). Or choose “Dialect” and the C++11 option. (Don’t do both of the above.) Click on “Apply” after the change. Fall 2018 CISC/CMPE320 - Prof. McLeod


Download ppt "CISC/CMPE320 - Prof. McLeod"

Similar presentations


Ads by Google