CS Data Structures. Email: proper cs. Section Learning Outcomes. CS provides a hands-on introduction to data structures and algorithms. Through programming projects and exams, you learn how to select and implement suitable data structures for various problems, how and when to use recursion, and how to analyze the cost of algorithms, especially sorting and searching algorithms.
Course Materials. Koffnam and Paul A. All CS department machines have Visual Studio installed. Course Format. Please view before class. In addition, work on lab programming assignments will help in making on-line class discussions beneficial. In addition, coding example programs and topic reviews will be part of the class time.
It is very important that students attend class and take careful notes. You will be held responsible for class material as well as the course text. Codes for the attendance quizzes will be announced during class and expire at the end of the following day. Course Assessments. Student evaluation and grading will be three-fold, namely performance-based, formal, and summative assessments.
Programming Assignments. Computer Programming Assignments.
Programming assignments consist of 9 required labs plus 2 bonus labs and are designed to emphasize topics and objectives discussed during class. Output the average score for all students on each exam followed by a list of student's score and grades. Design classes for a school database and output course and student schedules.About Me. Hi, my name's Reece. I grew up in Vancouver, British Columbia.
Since I was young I've had a love for machines and technology and their influence on our world. Sc in Computer Science. I have many passions including software development, technology, videomaking, engineering, public transport and travel and I try to summarize many of them on this site.
Thanks for visiting! Some Software Projects. Users can sign up and create an account and then purchase the burger of their dreams. Photo Tagging and Management App. This Cross-Platform Desktop application allows for mass photo management and sorting.
Users instantly have access to all the photos in their file system and can sort them through tagging. The integration of an Open Source Tensorflow Photo-Classifier allows the application to intelligently suggest tags for the photos based on their content. This prototype fitness application was designed to help motivate users to be active while socializing with others in their social circles as well as their physical area.
The application was iterated on on a weekly basis and taken from a simple problem the difficult task of finding motivation to exerciseto a prototype application. In the process of defining the problem, researching potential solutions, and then designing a solution our project team encountered challenges, however we learned a significant amount in the process and I continue to focus on UX and UI in my work going forward.
Some Places I've Worked. Second Year. Third Year. Fourth Year. Building a successful Youtube Channel where I can share insights, and opinions as well as videos about my interests has always appealed to me. As a longtime hobby videomaker getting back into video editing as well as shooting has been very gratifying.
Lately I've been working on growing my following and I currently have over subscribers, video viewsand videos. Some of my favorite stations are Bloor-Yonge and Davisville.
Inspired by recent successes in using deep reinforcement learning to beat 2D Atari games, we wanted to explore using deep learning in realistic 3D environments.
Subsequently, I designed and built a photo-realistic world simulator in the gaming environment Unreal Engine that we could use to simulate agents in the real world. With the simulator, we have been able to study deep reinforcement learning algorithms that can extract information from simulated sensors and transform it into low-level actions to achieve goals in complex environments.
The simulator architecture and the sensors I built are being used in a variety of research projects in the lab; for example, we are now using deep reinforcement learning in our simulator to teach drones to quickly navigate high-risk environments like forests. I designed and built a new multi-threaded logger process for the BSR.
This project improved logging for the BSR and made it much easier for developers to debug products that were deployed by the government in remote areas. My team designed it to be highly customizable so that it could be used for various customers and builds of the BSR. Our process enables dynamic manipulation of log filters and encrypts the logs. It uses a GUI to help customers and developers easily interact with it. Our project was integrated into the main codebase during my last week; many employees commented that they had never seen an intern project be integrated so quickly!
It also gave me the opportunity to work with many different, highly-skilled engineers across the company who specialize in different areas. My work focused on integrating our back-end services into the user interfaces that make up our websites and applications. The main websites I worked on included byutv. Our team built the platform, CMS, and front-end of these websites using a variety of classic as well as experimental technologies.
Every two weeks, we each had the opportunity to use a planning week to explore new technologies and areas of interest. We also gave and received trainings on the new technologies that we were learning. Working at BYU Broadcasting helped me to do interesting projects like implementing a custom twitter feed, building a server, and even writing my own app.
I had the incredible opportunity to write production-level code in a professional environment using exciting new technologies. In collaboration with Qualtrics and as part of a BYU senior capstone project, 3 students and I designed machine learning and natural language processing tools that automatically identified actionable responses in free-response surveys. This makes it easier for organizations to quickly find and use the most useful responses from many thousands of survey responses.
PerBlue is a startup gaming company that has successfully sold multimillion dollar games, and recently launched a game in collaboration with Disney. As a backend software engineer intern, I worked on a massive multiplayer real time strategy title. I built critical backend server systems and game features using distributed computing techniques to support the large multiplayer world.Thanks for this Peter. This is much simpler :. Thanks for the solution. Line 33,34 Thank you!
Veselka, it is used to find out the length or number of digits of the credit card. The length of the credit card will be stored within the count variable. Veselka, by dividing the credit card number in base 10 repeatedly by 10, it is effectively shifting off the rightmost digit, incrementing the count and then repeating.
When the last digit is shifted, the value becomes 0 and we have the final digit count. I wrote a solution today that used some different methods to do the checksum, but I didn't like the way I did the final validation. This solution is better. Can any body explain me, what is happening in the 5th, 6th and 8th line of below code copied from above. I did it differently but your solution is way more elegant. My problem was that I didn't know how to make the program recognize the position of a diigit in the number and had to find a workaround.
Your "number[i]" looks like what I was looking for. Could you explain to me how you that works? Specifically, it's a duplicate of number with the exception of never defining the character in the 0 position.
Why is that? If the only thing originalnumber is needed for later is to check at most the last two digits first two of cardnumberwhy not only assign those last two digits from number? Hey, you have multiplied all alternate numbers by 2 but you have not added them and also haven't done the next step of adding the other alternate numbers.
Can someone please explain to me very briefly specifically how the Checksum section works? Would really appreciate that. Wouldn't that give you one less number in the originalnumber variable? Basically this counts the number of digits in card number. Digits being divided by 10 unless digits become less than 0 i. Hence is having 4 nos of digits count.CS - Data Structures. Winter - Syllabus.
Instructor: Brother Ercanbrack. Office: BEN Office Phone: Course Objectives:. Schedules, assign me nts, and policies are subject to change. Assign me nts.Create Impressive GitHub Portfolio Tutorial - New Feature
Basic procedural and object-oriented principles are also expected to be understood and the appropriate method applied in all programming assignments. Any deficiencies in these areas are the students responsibility to make up. Programming assignments are given on a regular basis to apply the concepts and data structures discussed in class. The programming assignments vary in time and points. The list of assignments and due dates can be found on the class schedule.
Assignments more than 2 days late will not be accepted unless previous arrangements have been made ahead of time, or in emergency situations. Exams and quizzes. Current plans are for weekly online quizzes and a final exam. Please see the schedule for when these are tentatively scheduled. The final exam is closed book, closed notes.
The final will be given in class.
Special needs. Students that rarely attend class are subject to failure, regardless of test scores and work completed. Grades will be based on a weighted average of the points as indicated above.
Computer Science and Electrical Engineering
The final percentage of this average will determine your grade as follows:. Be responsible for your own education. Take responsibility to complete assign me nts and tests as assigned. Be prepared to accept the consequences if you do not. You may work with your classmates but all submitted work must be original.
Assistance from a classmate should be on par with the help you would expect from a lab assistant. The penalty for copying or plagiarism of assign me nts might be one or more of the following: a 0 on an assign me nt, being asked to withdraw from the class, a failing grade in the class, or disciplinary action by the University.
If assigned to work in pairs, work submitted must be the original work of the two students paired together.Cars enter the train station if the turntable is empty. Train cars exit the train station by moving from the turntable to a vector of outbound cars. A deque also called a double-ended queue is an abstract data type that generalizes a queue, as elements can be added to or removed from either the front head or back tail. There are two restricted type of deques as well:.
An input-restricted deque IRDeque is one where deletion can be made from both ends, but insertion can be made at one end only. An output-restricted deque ORDeque is one where insertion can be made at both ends, but deletion can be made from one end only. The deque is an Abstract Data Type and can be implemented in two ways: contiguous and linked. A modified dynamic array that is contiguous and offers constant time O 1 operations.
They are, however, still inefficient O n with insertion and removal in the middle. A deque can be implemented with a dynamic circular array. The array is resized when an item is added to the array and the array is full. An adapter pattern converts the public face interface of a class into another public face interface that the client expects.
Adapters let classes work together that have incompatible interfaces. A real world example would be a USB to Ethernet adapter. We need this adapter when we have an Ethernet interface on one end and USB on the other.
Since each has a different communication protocol, an adapter can convert one to the other. A "wrapper class" is a de facto term meaning a class that "wraps around" a resource, such as another class. An adapter pattern is often implemented by a class client wrapping another class server and delegating or forwarding member functionality from the client to the server. In other words, delegation refers to evaluating a member property or method of one object the client in the context of another, original object the server.
In the simplest case, an object that simply uses another object is referred to as "aggregation". The ADT deque class can be used to implement a vector, stack, or queue using an adapter design pattern. A vector class can wrap a deque class and use the deque's functionality to define the vector class' behavior. Although this approach has its strengths and weaknesses, it definitely simplifies implementation of the vector and enhances code reuse. In this course, we have been discussing many of the underlying data structures that are used to implement data containers.
The ADT deque class can be used to implement a vector, stack, or queue using an adapter pattern. The class myVector can easily be implemented by "wrapping" the Deque class and using the already-existing functions of the deque's underlying data structure, thus saving ourselves a lot of work. Wrapper classes are a very convenient use of abstraction, especially in rapid software development. Of course, we should care about which type of underlying data structure a container uses and you will make design decisions based on those data structures.
For example, a set implemented with a tree structure will have O log n find-time whereas a set implemented with a hash table will have a O 1 find-time. If find was the most critical function for your set, it would be more efficient to use a set class that wraps a hash table.
Train cars can be warehoused in a queue roundhouse. Cars move to and from the queue and the station turntable. STrain cars can be warehoused in a stack roundhouse. Cars move to and from the stack and the station turntable. The Railroad Station is a container facility for railroad cars.View News.
We offer both a Masters and a PhD program in computer science. If you need help from the CS Department Office please contact us by email: csoffice cs. Menu Undergraduate Courses. Graduate Courses. Employment Job Board Employment Resources. Upcoming Events See all events. Undergraduate Program Learn everything you need to know about our undergraduate program below.
Requirements Courses Scholarships. Masters PhD Scholarships Admissions. Research Projects. Research includes applied machine learning, neural networks and learning algorithms, robotics, data mining, natural language processing, multi-agent learning, and computational creativity. Project Overview. Research includes information retrieval, database applications, data engineering, data mining, data extraction, and natural language processing. Research includes animation, advanced 3D graphics, computer vision, image processing, computer-aided design, isogeometric analysis, hyperdimensional graphics, and family history technology.
Now I am a proficient coder who is ready to enter the workforce!